diff --git a/aqhome/ipc2/message.c b/aqhome/ipc2/message.c index 587d85b..58bb1ed 100644 --- a/aqhome/ipc2/message.c +++ b/aqhome/ipc2/message.c @@ -51,6 +51,24 @@ AQH_MESSAGE *AQH_Message_new(void) +AQH_MESSAGE *AQH_Message_dup(const AQH_MESSAGE *origMsg) +{ + if (origMsg) { + AQH_MESSAGE *msg; + + msg=AQH_Message_new(); + if (origMsg->msgPointer && origMsg->msgSize) { + AQH_Message_SetData(msg, origMsg->msgPointer, origMsg->msgSize); + msg->usedSize=origMsg->usedSize; + } + return msg; + } + else + return NULL; +} + + + void AQH_Message_IncRef(AQH_MESSAGE *msg) { if (msg && msg->refCount) diff --git a/aqhome/ipc2/message.h b/aqhome/ipc2/message.h index 2f15b7e..f39d47d 100644 --- a/aqhome/ipc2/message.h +++ b/aqhome/ipc2/message.h @@ -25,6 +25,7 @@ GWEN_INHERIT_FUNCTION_LIB_DEFS(AQH_MESSAGE, AQHOME_API) AQHOME_API AQH_MESSAGE *AQH_Message_new(void); +AQHOME_API AQH_MESSAGE *AQH_Message_dup(const AQH_MESSAGE *origMsg); AQHOME_API void AQH_Message_IncRef(AQH_MESSAGE *msg); AQHOME_API void AQH_Message_free(AQH_MESSAGE *msg);