Api for sending messages
| Namespace: | dmMessage |
| Include: | #include <dmsdk/dlib/message.h> |
| TYPES | |
|---|---|
| dmMMessage::MessageDestroyCallback | A callback for messages that needs cleanup after b... |
| HSocket | Socket handle |
| ENUMS | |
|---|---|
| dmMessage::Result | Result enum |
| STRUCTS | |
|---|---|
| struct dmMessage::StringURL | Helper struct for parsing a string of the form "so... |
| struct dmMessage::URL | URL specifying a sender/receiver of messages |
| struct Message | |
| struct Message | Message data desc used at dispatch callback. When ... |
dmhash_t GetFragment(dmMessage::URL url)
Get the message fragment
PARAMETERS
dmMessage::URL |
url |
url |
RETURNS
dmhash_t |
dmhash_t GetPath(dmMessage::URL url)
Get the message path
PARAMETERS
dmMessage::URL |
url |
url |
RETURNS
dmhash_t |
dmMessage::HSocket GetSocket(dmMessage::URL url)
Get the message socket
PARAMETERS
dmMessage::URL |
url |
url |
RETURNS
dmMessage::HSocket |
const char* GetSocketName(dmMessage::HSocket socket)
Get socket name
PARAMETERS
dmMessage::HSocket |
socket |
Socket |
RETURNS
const char* |
socket name. 0 if it was not found |
dmhash_t GetSocketNameHash(dmMessage::HSocket socket)
Get socket name hash
PARAMETERS
dmMessage::HSocket |
socket |
Socket |
RETURNS
dmhash_t |
socket name hash. 0 if it was not found |
bool IsSocketValid(dmMessage::HSocket socket)
Tests if a socket is valid (not deleted).
PARAMETERS
dmMessage::HSocket |
socket |
Socket |
RETURNS
bool |
if the socket is valid or not |
ParseUrl(const char* uri, dmMessage::StringUrl out)
Convert a string to a URL struct
PARAMETERS
const char* |
uri |
string of the format ][path[#fragment] |
dmMessage::StringUrl |
out |
url in string format, must not be 0x0 |
RETURNS
|
RESULT_OK on success - RESULT_MALFORMED_URL if the uri could not be parsed |
Post(dmMessage::URL* sender, dmMessage::URL* receiver, dmhash_t message_id, uintptr_t user_data1, uintptr_t user_data2, uintptr_t descriptor, void* message_data, uint32_t message_data_size, dmMessage::MessageDestroyCallback destroy_callback)
Post an message to a socket
PARAMETERS
dmMessage::URL* |
sender |
The sender URL if the receiver wants to respond. 0x0 is accepted |
dmMessage::URL* |
receiver |
The receiver URL, must not be 0x0 |
dmhash_t |
message_id |
Message id |
uintptr_t |
user_data1 |
User data that can be used when both the sender and receiver are known |
uintptr_t |
user_data2 |
User data that can be used when both the sender and receiver are known. |
uintptr_t |
descriptor |
User specified descriptor of the message data |
void* |
message_data |
Message data reference |
uint32_t |
message_data_size |
Message data size in bytes |
dmMessage::MessageDestroyCallback |
destroy_callback |
if set, will be called after each message dispatch |
RETURNS
|
if the message was posted |
PostDDF(T* message, dmMessage::URL* sender, dmMessage::URL* receiver, uintptr_t user_data1, uintptr_t user_data2, dmMessage::MessageDestroyCallback destroy_callback)
Post a DDF message to a socket. A helper wrapper for Post()'ing a DDF message
PARAMETERS
T* |
message |
Message data reference |
dmMessage::URL* |
sender |
The sender URL if the receiver wants to respond. 0x0 is accepted |
dmMessage::URL* |
receiver |
The receiver URL, must not be 0x0 |
uintptr_t |
user_data1 |
User data that can be used when both the sender and receiver are known |
uintptr_t |
user_data2 |
User data that can be used when both the sender and receiver are known. |
dmMessage::MessageDestroyCallback |
destroy_callback |
if set, will be called after each message dispatch |
RETURNS
|
if the message was posted |
EXAMPLES
// dmMessage::URL sender, receiver;
// dmGameObject::HInstance go;
dmGameSystemDDF::PlayAnimation msg;
msg.m_Id = animation_id;
msg.m_Offset = params.m_CursorStart;
msg.m_PlaybackRate = params.m_PlaybackRate;
dmMessage::Result result = dmMessage::Post(&msg, &sender, &receiver, (uintptr_t)go, 0, 0));
void ResetUrl(dmMessage::URL url)
Resets the given URL to default values.
PARAMETERS
dmMessage::URL |
url |
URL to reset |
void SetFragment(dmMessage::URL url, dmhash_t fragment)
Set the message fragment
PARAMETERS
dmMessage::URL |
url |
url |
dmhash_t |
fragment |
void SetPath(dmMessage::URL url, dmhash_t path)
Set the message path
PARAMETERS
dmMessage::URL |
url |
url |
dmhash_t |
path |
void SetSocket(dmMessage::URL url, dmMessage::HSocket socket)
Set the socket
PARAMETERS
dmMessage::URL |
url |
url |
dmMessage::HSocket |
socket |
TYPE
struct dmMessage::StringURLHelper struct for parsing a string of the form "socket:path#fragment"
MEMBERS
const char* |
m_Socket |
The socket |
uint32_t |
m_SocketSize |
The socket length |
const char* |
m_Path |
The path |
uint32_t |
m_PathSize |
The path length |
const char* |
m_Fragment |
The fragment |
uint32_t |
m_FragmentSize |
The fragment length |
TYPE
struct MessageMessage data desc used at dispatch callback. When a message is posted, the actual object is copied into the sockets internal buffer.
MEMBERS
dmMessage::URL |
m_Sender |
Sender uri |
dmMessage::URL |
m_Receiver |
Receiver uri |
dmhash_t |
m_Id |
Unique id of message |
uintptr_t |
m_UserData1 |
User data pointer |
uintptr_t |
m_UserData2 |
User data pointer |
uintptr_t |
m_Descriptor |
User specified descriptor of the message data |
uint32_t |
m_DataSize |
Size of message data in bytes |
dmMessage::Message* |
m_Next |
Ptr to next message (or 0 if last) |
dmMessage::MessageDestroyCallback |
m_DestroyCallback |
If set, will be called after each dispatch |
uint8_t* |
m_Data |
Payload |
void dmMMessage::MessageDestroyCallback()
A callback for messages that needs cleanup after being dispatched. E.g. for freeing resources/memory.
PARAMETERS
void HSocket()
Socket handle
PARAMETERS
Result enum
RESULT_OK |
= 0 |
RESULT_SOCKET_EXISTS |
= -1 |
RESULT_SOCKET_NOT_FOUND |
= -2 |
RESULT_SOCKET_OUT_OF_RESOURCES |
= -3 |
RESULT_INVALID_SOCKET_NAME |
= -4 |
RESULT_MALFORMED_URL |
= -5 |
RESULT_NAME_OK_SOCKET_NOT_FOUND |
= -6 |