Message Class Reference

#include <source/ariba/utility/messages/Message.h>

Inheritance diagram for Message:

Inheritance graph
[legend]
Collaboration diagram for Message:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Message ()
 Message (const Data &data)
void dropPayload ()
void setReleasePayload (bool release)
Data getPayload () const
void setPayload (const Data &payload)
virtual ~Message ()
std::string toString () const
void setDestinationAddress (const Address *addr)
const AddressgetDestinationAddress () const
void setSourceAddress (const Address *addr)
const AddressgetSourceAddress () const
virtual const char * getDescription () const
virtual MessagecreateReturnMessage () const
void encapsulate (Message *message, int variant=DEFAULT_V)
template<class T>
T * decapsulate ()
template<class T>
T * convert ()

Protected Member Functions

finline PayloadSerializer Payload (size_t length=~0)

Protected Attributes

shared_array< uint8_t > root
bool releasePayload
Data payload
const AddresssrcAddr
const AddressdestAddr

Private Attributes

 VSERIALIZEABLE

Friends

std::ostream & operator<< (std::ostream &stream, const ariba::utility::Message &msg)

Classes

class  PayloadSerializer


Detailed Description

This class implements an abstract message format.

Author:
Sebastian Mies

Definition at line 78 of file Message.h.


Constructor & Destructor Documentation

Message::Message (  )  [inline]

Constructor initializing name of message to the given one

Definition at line 99 of file Message.h.

Message::Message ( const Data data  )  [inline]

Constructs a new "root" message by copying the data described by data.

Definition at line 107 of file Message.h.

References DataTpl< T, DataModel >::clone(), and payload.

Message::~Message (  )  [virtual]

Default destructor.

Definition at line 53 of file Message.cpp.


Member Function Documentation

void Message::dropPayload (  )  [inline]

Definition at line 113 of file Message.h.

References payload, DataTpl< T, DataModel >::release(), and releasePayload.

Referenced by encapsulate().

void Message::setReleasePayload ( bool  release  )  [inline]

Definition at line 117 of file Message.h.

References releasePayload.

Data Message::getPayload (  )  const [inline]

Definition at line 121 of file Message.h.

References payload.

void Message::setPayload ( const Data payload  )  [inline]

Definition at line 125 of file Message.h.

std::string Message::toString (  )  const

Definition at line 75 of file Message.cpp.

void Message::setDestinationAddress ( const Address addr  )  [inline]

Sets the destination address

Parameters:
An abstract address representation

Definition at line 141 of file Message.h.

References destAddr.

Referenced by ariba::communication::AribaBaseMsg::AribaBaseMsg().

const Address* Message::getDestinationAddress (  )  const [inline]

Returns the optional abstract destination address or NULL

Returns:
the abstract destination address

Definition at line 150 of file Message.h.

References destAddr.

Referenced by ariba::communication::AribaOmnetModule::sendMessage().

void Message::setSourceAddress ( const Address addr  )  [inline]

Set the source address of the message

Parameters:
addr The abstract source address

Definition at line 159 of file Message.h.

References srcAddr.

Referenced by ariba::communication::AribaOmnetModule::socketDataArrived().

const Address* Message::getSourceAddress (  )  const [inline]

Returns the optional abstract source address or NULL

Returns:
The abstract source address

Definition at line 168 of file Message.h.

References srcAddr.

const char * Message::getDescription (  )  const [virtual]

Returns a short human-readable description of this message

Returns:
A short human-readable description of this message

Definition at line 62 of file Message.cpp.

Message * Message::createReturnMessage (  )  const [virtual]

Returns a return message, that can be used to send a message back to the recipient or NULL if no message can be returned. The default implementation returns NULL.

Returns:
Return message.

Definition at line 71 of file Message.cpp.

void Message::encapsulate ( Message message,
int  variant = DEFAULT_V 
) [inline]

Encapsulate a message into the payload.

Parameters:
message The message to be encapsulated.

Definition at line 193 of file Message.h.

References data_serialize(), dropPayload(), DataTpl< T, DataModel >::isUnspecified(), and payload.

Referenced by ariba::communication::BaseCommunication::sendMessage().

template<class T>
T* Message::decapsulate (  )  [inline]

Decapsulates message. In case the message has not been deserialized, this method class serialization to get an object.

Returns:
The message object or NULL if a deserialization

Definition at line 207 of file Message.h.

References data_deserialize(), DataTpl< T, DataModel >::isUnspecified(), and payload.

template<class T>
T* Message::convert (  )  [inline]

The same as decapsulate, but this function is used in the samples to make the semantics easier to understand. The semantics is shown to be: you get a message and convert it to your type. Not as: you get a message and have to extract your message from it.

Definition at line 224 of file Message.h.

finline PayloadSerializer Message::Payload ( size_t  length = ~0  )  [inline, protected]

Returns a serializer of the messages payload/encapsulated message.

Parameters:
length The length of the payload
Returns:
A explicit payload serializer

Definition at line 264 of file Message.h.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  stream,
const ariba::utility::Message &  msg 
) [friend]

Definition at line 83 of file Message.cpp.


Member Data Documentation

Reimplemented in ariba::communication::AribaBaseMsg.

Definition at line 79 of file Message.h.

shared_array<uint8_t> Message::root [protected]

Definition at line 85 of file Message.h.

bool Message::releasePayload [protected]

Data Message::payload [protected]

const Address* Message::srcAddr [protected]

Definition at line 92 of file Message.h.

Referenced by getSourceAddress(), and setSourceAddress().

const Address* Message::destAddr [protected]

Definition at line 93 of file Message.h.

Referenced by getDestinationAddress(), and setDestinationAddress().


The documentation for this class was generated from the following files:

Generated on Wed May 27 18:23:42 2009 for Ariba by  doxygen 1.5.6