Yate
Public Member Functions | Protected Member Functions | Friends
Message Class Reference

A message container class. More...

#include <yatengine.h>

Inheritance diagram for Message:
NamedList String GenObject

List of all members.

Public Member Functions

 Message (const char *name, const char *retval=0, bool broadcast=false)
 Message (const Message &original)
 Message (const Message &original, bool broadcast)
 ~Message ()
virtual void * getObject (const String &name) const
StringretValue ()
const StringretValue () const
RefObjectuserData () const
void userData (RefObject *data)
void * userObject (const String &name) const
void setNotify (bool notify=true)
bool broadcast () const
TimemsgTime ()
const TimemsgTime () const
Messageoperator= (const char *value)
String encode (const char *id) const
String encode (bool received, const char *id) const
int decode (const char *str, String &id)
int decode (const char *str, bool &received, const char *id)

Protected Member Functions

virtual void dispatched (bool accepted)

Friends

class MessageDispatcher

Detailed Description

A message container class.

This class holds the messages that are moved around in the engine.


Constructor & Destructor Documentation

Message ( const char *  name,
const char *  retval = 0,
bool  broadcast = false 
) [explicit]

Creates a new message.

Parameters:
nameName of the message - must not be NULL or empty
retvalDefault return value
broadcastBroadcast flag, true if handling the mesage must not stop it
Message ( const Message original)

Copy constructor. Note that user data and notification are not copied

Parameters:
originalMessage we are copying from
Message ( const Message original,
bool  broadcast 
)

Copy constructor that can alter the broadcast flag. Note that user data and notification are not copied

Parameters:
originalMessage we are copying from
broadcastBroadcast flag, true if handling the mesage must not stop it
~Message ( )

Destruct the message and dereferences any user data


Member Function Documentation

bool broadcast ( ) const [inline]

Retrieve the broadcast flag

Returns:
True if the message is a broadcast (handling does not stop it)
int decode ( const char *  str,
String id 
)

Decode a string from an external communication interface for processing in the engine. The message is modified accordingly.

Parameters:
strString to decode
idA String object in which the identifier is stored
Returns:
-2 for success, -1 if the string was not a text form of a message, index of first erroneous character if failed
int decode ( const char *  str,
bool &  received,
const char *  id 
)

Decode a string from an external communication interface that is an answer to a specific external processing request.

Parameters:
strString to decode
receivedPointer to variable to store the dispatch return value
idThe identifier expected
Returns:
-2 for success, -1 if the string was not the expected answer, index of first erroneous character if failed
virtual void dispatched ( bool  accepted) [protected, virtual]

Notify the message it has been dispatched. The default behaviour is to call the dispatched() method of the user data if it implements MessageNotifier

Parameters:
acceptedTrue if one handler accepted the message
String encode ( const char *  id) const

Encode the message into a string adequate for sending for processing to an external communication interface

Parameters:
idUnique identifier to add to the string
String encode ( bool  received,
const char *  id 
) const

Encode the message into a string adequate for sending as answer to an external communication interface

Parameters:
receivedTrue if message was processed locally
idUnique identifier to add to the string
virtual void* getObject ( const String name) const [virtual]

Get a pointer to a derived class given that class name

Parameters:
nameName of the class we are asking for
Returns:
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from NamedList.

Time& msgTime ( ) [inline]

Retrieve a reference to the creation time of the message.

Returns:
A reference to the Time when the message was created
const Time& msgTime ( ) const [inline]

Retrieve a const reference to the creation time of the message.

Returns:
A reference to the Time when the message was created
Message& operator= ( const char *  value) [inline]

Name assignment operator

Reimplemented from String.

References String::operator=().

String& retValue ( ) [inline]

Retrieve a reference to the value returned by the message.

Returns:
A reference to the value the message will return
const String& retValue ( ) const [inline]

Retrieve a const reference to the value returned by the message.

Returns:
A reference to the value the message will return
void setNotify ( bool  notify = true) [inline]

Enable or disable notification of any MessageNotifier that was set as user data. This method must be called after userData()

Parameters:
notifyTrue to have the message call the notifier
RefObject* userData ( ) const [inline]

Retrieve the object associated with the message

Returns:
Pointer to arbitrary user RefObject
void userData ( RefObject data)

Set obscure data associated with the message. The user data is reference counted to avoid stray pointers. Note that setting new user data will disable any notification.

Parameters:
dataPointer to arbitrary user data
void* userObject ( const String name) const [inline]

Get a pointer to a derived class of user data given that class name

Parameters:
nameName of the class we are asking for
Returns:
Pointer to the requested class or NULL if user object id NULL or doesn't implement it

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