msg.h
Go to the documentation of this file.
/****************************************************************************
* This file is part of the project Gwenhywfar.
* Gwenhywfar (c) by 2023 Martin Preuss, all rights reserved.
*
* The license for this file can be found in the file COPYING which you
* should have received along with this file.
****************************************************************************/
#ifndef GWEN_MSG_MSG_H
#define GWEN_MSG_MSG_H
#include <gwenhywfar/list.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/buffer.h>
#include <gwenhywfar/db.h>
#define GWEN_MSG_FLAGS_PAYLOADINFO_SET 0x80000000u
typedef struct GWEN_MSG GWEN_MSG;
GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_MSG, GWEN_Msg, GWENHYWFAR_API)
GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_MSG, GWENHYWFAR_API)
GWENHYWFAR_API GWEN_MSG *GWEN_Msg_new(uint32_t bufferSize);
GWENHYWFAR_API GWEN_MSG *GWEN_Msg_fromBytes(const uint8_t *ptr, uint32_t len);
GWENHYWFAR_API void GWEN_Msg_Attach(GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_free(GWEN_MSG *msg);
GWENHYWFAR_API GWEN_MSG *GWEN_Msg_dup(const GWEN_MSG *srcMsg);
GWENHYWFAR_API int GWEN_Msg_GetGroupId(const GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_SetGroupId(GWEN_MSG *msg, int groupId);
GWENHYWFAR_API uint32_t GWEN_Msg_GetMaxSize(const GWEN_MSG *msg);
GWENHYWFAR_API uint8_t *GWEN_Msg_GetBuffer(GWEN_MSG *msg);
GWENHYWFAR_API const uint8_t *GWEN_Msg_GetConstBuffer(const GWEN_MSG *msg);
GWENHYWFAR_API uint32_t GWEN_Msg_GetBytesInBuffer(const GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_SetBytesInBuffer(GWEN_MSG *msg, uint32_t i);
GWENHYWFAR_API uint32_t GWEN_Msg_GetCurrentPos(const GWEN_MSG *msg);
GWENHYWFAR_API int GWEN_Msg_AddByte(GWEN_MSG *msg, uint8_t b);
GWENHYWFAR_API int GWEN_Msg_AddBytes(GWEN_MSG *msg, const uint8_t *bufferPtr, uint32_t bufferLen);
GWENHYWFAR_API int GWEN_Msg_ReadNextByte(GWEN_MSG *msg);
GWENHYWFAR_API int GWEN_Msg_IncCurrentPos(GWEN_MSG *msg, uint32_t i);
GWENHYWFAR_API int GWEN_Msg_GetRemainingBytes(const GWEN_MSG *msg);
GWENHYWFAR_API int GWEN_Msg_RewindCurrentPos(GWEN_MSG *msg);
GWENHYWFAR_API uint32_t GWEN_Msg_GetParsedPayloadSize(const GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_SetParsedPayloadSize(GWEN_MSG *msg, uint32_t v);
GWENHYWFAR_API uint32_t GWEN_Msg_GetParsedPayloadOffset(const GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_SetParsedPayloadOffset(GWEN_MSG *msg, uint32_t v);
GWENHYWFAR_API GWEN_DB_NODE *GWEN_Msg_GetDbParsedInfo(const GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_SetDbParsedInfo(GWEN_MSG *msg, GWEN_DB_NODE *db);
GWENHYWFAR_API uint32_t GWEN_Msg_GetFlags(const GWEN_MSG *msg);
GWENHYWFAR_API void GWEN_Msg_SetFlags(GWEN_MSG *msg, uint32_t f);
GWENHYWFAR_API void GWEN_Msg_AddFlags(GWEN_MSG *msg, uint32_t f);
GWENHYWFAR_API void GWEN_Msg_DelFlags(GWEN_MSG *msg, uint32_t f);
GWENHYWFAR_API uint64_t GWEN_Msg_GetUint64At(const GWEN_MSG *msg, int offs, uint64_t defaultValue);
GWENHYWFAR_API uint32_t GWEN_Msg_GetUint32At(const GWEN_MSG *msg, int offs, uint32_t defaultValue);
GWENHYWFAR_API uint16_t GWEN_Msg_GetUint16At(const GWEN_MSG *msg, int offs, uint16_t defaultValue);
GWENHYWFAR_API uint8_t GWEN_Msg_GetUint8At(const GWEN_MSG *msg, int offs, uint8_t defaultValue);
GWENHYWFAR_API int GWEN_Msg_WriteUint64At(GWEN_MSG *msg, uint32_t pos, uint64_t v);
GWENHYWFAR_API int GWEN_Msg_WriteUint32At(GWEN_MSG *msg, uint32_t pos, uint32_t v);
GWENHYWFAR_API int GWEN_Msg_WriteUint16At(GWEN_MSG *msg, uint32_t pos, uint16_t v);
GWENHYWFAR_API int GWEN_Msg_WriteUint8At(GWEN_MSG *msg, uint32_t pos, uint8_t v);
GWENHYWFAR_API int GWEN_Msg_WriteBytesAt(GWEN_MSG *msg, uint32_t pos, const uint8_t *bufferPtr, uint32_t bufferLen);
GWENHYWFAR_API int GWEN_Msg_AddUint64(GWEN_MSG *msg, uint64_t v);
GWENHYWFAR_API int GWEN_Msg_AddUint32(GWEN_MSG *msg, uint32_t v);
GWENHYWFAR_API int GWEN_Msg_AddUint16(GWEN_MSG *msg, uint16_t v);
GWENHYWFAR_API int GWEN_Msg_AddUint8(GWEN_MSG *msg, uint8_t v);
GWENHYWFAR_API int GWEN_Msg_AddString(GWEN_MSG *msg, const char *s, uint32_t maxSize, uint8_t filler);
GWENHYWFAR_API int GWEN_Msg_AddStringWithTrailingNull(GWEN_MSG *msg, const char *s, uint32_t maxSize, uint8_t filler);
GWENHYWFAR_API void GWEN_Msg_Dump(const GWEN_MSG *msg, GWEN_BUFFER *buf);
#endif
buffer.h
db.h
GWEN_DB_NODE
struct GWEN_DB_NODE GWEN_DB_NODE
Definition db.h:228
GWEN_BUFFER
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
GWENHYWFAR_API
#define GWENHYWFAR_API
Definition gwenhywfarapi.h:67
inherit.h
GWEN_INHERIT_FUNCTION_LIB_DEFS
#define GWEN_INHERIT_FUNCTION_LIB_DEFS(t, decl)
Definition inherit.h:125
GWEN_LIST_FUNCTION_LIB_DEFS
#define GWEN_LIST_FUNCTION_LIB_DEFS(t, pr, decl)
Definition list1.h:349
list.h
GWEN_Msg_SetBytesInBuffer
GWENHYWFAR_API void GWEN_Msg_SetBytesInBuffer(GWEN_MSG *msg, uint32_t i)
GWEN_Msg_WriteUint8At
GWENHYWFAR_API int GWEN_Msg_WriteUint8At(GWEN_MSG *msg, uint32_t pos, uint8_t v)
GWEN_Msg_AddString
GWENHYWFAR_API int GWEN_Msg_AddString(GWEN_MSG *msg, const char *s, uint32_t maxSize, uint8_t filler)
GWEN_Msg_RewindCurrentPos
GWENHYWFAR_API int GWEN_Msg_RewindCurrentPos(GWEN_MSG *msg)
GWEN_Msg_AddBytes
GWENHYWFAR_API int GWEN_Msg_AddBytes(GWEN_MSG *msg, const uint8_t *bufferPtr, uint32_t bufferLen)
GWEN_Msg_ReadNextByte
GWENHYWFAR_API int GWEN_Msg_ReadNextByte(GWEN_MSG *msg)
GWEN_Msg_GetCurrentPos
GWENHYWFAR_API uint32_t GWEN_Msg_GetCurrentPos(const GWEN_MSG *msg)
GWEN_Msg_IncCurrentPos
GWENHYWFAR_API int GWEN_Msg_IncCurrentPos(GWEN_MSG *msg, uint32_t i)
GWEN_Msg_WriteUint32At
GWENHYWFAR_API int GWEN_Msg_WriteUint32At(GWEN_MSG *msg, uint32_t pos, uint32_t v)
GWEN_Msg_GetUint64At
GWENHYWFAR_API uint64_t GWEN_Msg_GetUint64At(const GWEN_MSG *msg, int offs, uint64_t defaultValue)
GWEN_Msg_AddUint64
GWENHYWFAR_API int GWEN_Msg_AddUint64(GWEN_MSG *msg, uint64_t v)
GWEN_Msg_GetParsedPayloadSize
GWENHYWFAR_API uint32_t GWEN_Msg_GetParsedPayloadSize(const GWEN_MSG *msg)
GWEN_Msg_WriteUint16At
GWENHYWFAR_API int GWEN_Msg_WriteUint16At(GWEN_MSG *msg, uint32_t pos, uint16_t v)
GWEN_Msg_SetDbParsedInfo
GWENHYWFAR_API void GWEN_Msg_SetDbParsedInfo(GWEN_MSG *msg, GWEN_DB_NODE *db)
GWEN_Msg_GetUint16At
GWENHYWFAR_API uint16_t GWEN_Msg_GetUint16At(const GWEN_MSG *msg, int offs, uint16_t defaultValue)
GWEN_Msg_new
GWENHYWFAR_API GWEN_MSG * GWEN_Msg_new(uint32_t bufferSize)
GWEN_Msg_GetDbParsedInfo
GWENHYWFAR_API GWEN_DB_NODE * GWEN_Msg_GetDbParsedInfo(const GWEN_MSG *msg)
GWEN_Msg_Dump
GWENHYWFAR_API void GWEN_Msg_Dump(const GWEN_MSG *msg, GWEN_BUFFER *buf)
GWEN_Msg_GetFlags
GWENHYWFAR_API uint32_t GWEN_Msg_GetFlags(const GWEN_MSG *msg)
GWEN_Msg_WriteUint64At
GWENHYWFAR_API int GWEN_Msg_WriteUint64At(GWEN_MSG *msg, uint32_t pos, uint64_t v)
GWEN_Msg_AddUint32
GWENHYWFAR_API int GWEN_Msg_AddUint32(GWEN_MSG *msg, uint32_t v)
GWEN_Msg_fromBytes
GWENHYWFAR_API GWEN_MSG * GWEN_Msg_fromBytes(const uint8_t *ptr, uint32_t len)
GWEN_Msg_AddByte
GWENHYWFAR_API int GWEN_Msg_AddByte(GWEN_MSG *msg, uint8_t b)
GWEN_Msg_AddUint8
GWENHYWFAR_API int GWEN_Msg_AddUint8(GWEN_MSG *msg, uint8_t v)
GWEN_Msg_GetMaxSize
GWENHYWFAR_API uint32_t GWEN_Msg_GetMaxSize(const GWEN_MSG *msg)
GWEN_Msg_GetGroupId
GWENHYWFAR_API int GWEN_Msg_GetGroupId(const GWEN_MSG *msg)
GWEN_Msg_GetUint8At
GWENHYWFAR_API uint8_t GWEN_Msg_GetUint8At(const GWEN_MSG *msg, int offs, uint8_t defaultValue)
GWEN_Msg_GetParsedPayloadOffset
GWENHYWFAR_API uint32_t GWEN_Msg_GetParsedPayloadOffset(const GWEN_MSG *msg)
GWEN_Msg_GetUint32At
GWENHYWFAR_API uint32_t GWEN_Msg_GetUint32At(const GWEN_MSG *msg, int offs, uint32_t defaultValue)
GWEN_Msg_SetGroupId
GWENHYWFAR_API void GWEN_Msg_SetGroupId(GWEN_MSG *msg, int groupId)
GWEN_Msg_GetBuffer
GWENHYWFAR_API uint8_t * GWEN_Msg_GetBuffer(GWEN_MSG *msg)
GWEN_Msg_DelFlags
GWENHYWFAR_API void GWEN_Msg_DelFlags(GWEN_MSG *msg, uint32_t f)
GWEN_MSG
struct GWEN_MSG GWEN_MSG
Definition msg.h:24
GWEN_Msg_AddStringWithTrailingNull
GWENHYWFAR_API int GWEN_Msg_AddStringWithTrailingNull(GWEN_MSG *msg, const char *s, uint32_t maxSize, uint8_t filler)
GWEN_Msg_dup
GWENHYWFAR_API GWEN_MSG * GWEN_Msg_dup(const GWEN_MSG *srcMsg)
GWEN_Msg_GetConstBuffer
GWENHYWFAR_API const uint8_t * GWEN_Msg_GetConstBuffer(const GWEN_MSG *msg)
GWEN_Msg_WriteBytesAt
GWENHYWFAR_API int GWEN_Msg_WriteBytesAt(GWEN_MSG *msg, uint32_t pos, const uint8_t *bufferPtr, uint32_t bufferLen)
GWEN_Msg_GetRemainingBytes
GWENHYWFAR_API int GWEN_Msg_GetRemainingBytes(const GWEN_MSG *msg)
GWEN_Msg_free
GWENHYWFAR_API void GWEN_Msg_free(GWEN_MSG *msg)
GWEN_Msg_AddFlags
GWENHYWFAR_API void GWEN_Msg_AddFlags(GWEN_MSG *msg, uint32_t f)
GWEN_Msg_Attach
GWENHYWFAR_API void GWEN_Msg_Attach(GWEN_MSG *msg)
GWEN_Msg_SetParsedPayloadOffset
GWENHYWFAR_API void GWEN_Msg_SetParsedPayloadOffset(GWEN_MSG *msg, uint32_t v)
GWEN_Msg_GetBytesInBuffer
GWENHYWFAR_API uint32_t GWEN_Msg_GetBytesInBuffer(const GWEN_MSG *msg)
GWEN_Msg_SetFlags
GWENHYWFAR_API void GWEN_Msg_SetFlags(GWEN_MSG *msg, uint32_t f)
GWEN_Msg_SetParsedPayloadSize
GWENHYWFAR_API void GWEN_Msg_SetParsedPayloadSize(GWEN_MSG *msg, uint32_t v)
GWEN_Msg_AddUint16
GWENHYWFAR_API int GWEN_Msg_AddUint16(GWEN_MSG *msg, uint16_t v)