00001
00043 #ifndef __LIB3195_BEEPMESSAGE_H_INCLUDED__
00044 #define __LIB3195_BEEPMESSAGE_H_INCLUDED__ 1
00045
00046 #include "beepchannel.h"
00047 #include "beepsession.h"
00048 #define sbMesgCHECKVALIDOBJECT(x) {assert(x != NULL); assert(x->OID == OIDsbMesg);}
00049
00050 struct sbFramObject;
00051 struct sbMesgObject
00055 {
00056 srObjID OID;
00057 BEEPHdrID idHdr;
00058 SBmsgno uMsgno;
00059 SBseqno uSeqno;
00060 SBseqno uNxtSeqno;
00061 char* szRawBuf;
00062 char* szMIMEHdr;
00063 char* szActualPayload;
00069 int bRawDirty;
00077 int iPayloadSize;
00078 int iMIMEHdrSize;
00079 int iOverallSize;
00080 };
00081 typedef struct sbMesgObject sbMesgObj;
00082
00083 char* sbMesgGetRawBuf(sbMesgObj* pThis);
00084 int sbMesgGetMIMEHdrSize(sbMesgObj* pThis);
00085 int sbMesgGetPayloadSize(sbMesgObj* pThis);
00086 int sbMesgGetOverallSize(sbMesgObj* pThis);
00095 sbMesgObj* sbMesgConstrFromFrame(struct sbFramObject* psbFram);
00096
00109 sbMesgObj* sbMesgConstruct(char* pszMIMEHdr, char *pszPayload);
00110
00120 sbMesgObj* sbMesgRecvMesg(sbChanObj*);
00121
00122
00145 srRetVal sbMIMEExtract(char *pszInBuf, int iInBufLen, char **pszMIMEHdr, char** pszPayload);
00146
00147
00160 srRetVal sbMesgSendMesgWithCallback(sbMesgObj* pThis, sbChanObj* pChan, char *pszCmd, SBansno uAnsno, void (*OnFramDestroy)(struct sbFramObject*), void* pUsr);
00161
00166 srRetVal sbMesgSendMesg(sbMesgObj* pThis, sbChanObj* pChan, char *pszCmd, SBansno);
00167
00172 void sbMesgDestroy(sbMesgObj *pThis);
00173
00174 #endif