JAM_AddMessage - Add a message to message base
#include <jamlib/jam.h>
int JAM_AddMessage(s_JamBase* Base_PS,
s_JamMsgHeader* Header_PS,
s_JamSubPacket* SubPack_PS,
uchar* Text_PC,
ulong TextLen_I);
Adds a message to the message base. Fully automatic.
- Base_PS
- The message base to use
- Header_PS
- A pointer to the message header struct. The function will set the
following header fields: Signature, Revision,
TxtOffset, TxtLen, SubfieldLen and MsgNum.
Whatever you set these fields to will be overwritten.
- SubPack_PS
- A subfield packet handler, containing all subfields for the message.
- Text_PC
- A pointer to the first byte of the message text.
- TextLen_I
- The length of the message text, excluding any zero termination
characters.
- 0
- if successful
- JAM_IO_ERROR
- if an I/O error occured. See JAM_Errno(3)
- JAM_NOT_LOCKED
- if the message base is not locked
s_JamSubPacket* SubPacket_PS;
s_JamSubfield Subfield_S;
s_JamMsgHeader Header_S;
uchar Text_AC[64];
uchar Field_AC[64];
/*
** Fix message header
*/
JAM_ClearMsgHeader(&Header_S);
Header_S.DateWritten = time(NULL);
/*
** Create subfield packet
*/
SubPacket_PS = JAM_NewSubPacket();
if (!SubPacket_PS) {
printf("JAM_NewSubPacket returned NULL.\n");
return;
}
/* set up subfield 1 */
strcpy(Field_AC, "This is field #1");
Subfield_S.LoID = JAMSFLD_SENDERNAME;
Subfield_S.HiID = 0;
Subfield_S.DatLen = strlen(Field_AC);
Subfield_S.Buffer = Field_AC;
JAM_PutSubfield(SubPacket_PS, &Subfield_S);
/* set up subfield 2 */
strcpy(Field_AC, "This is field #2");
Subfield_S.LoID = JAMSFLD_RECVRNAME;
Subfield_S.HiID = 0;
Subfield_S.DatLen = strlen(Field_AC);
Subfield_S.Buffer = Field_AC;
JAM_PutSubfield(SubPacket_PS, &Subfield_S);
/*
** Add message
*/
strcpy(Text_AC, "Hello world!\rThis is a test.");
/* [lock the message base] */
Result_I = JAM_AddMessage(Base_PS, &Header_S, SubPacket_PS,
Text_AC, strlen(Text_AC));
if (Result_I) {
printf("JAM_AddMessage returned %d.\n", Result_I);
return;
}
/* [unlock the message base] */
JAM_DelSubPacket(SubPacket_PS);
This manual page was created by Sir Raorn <raorn@altlinux.ru>, based on
original JAMlib documentation by Bjorn Stenberg <bjorn@haxx.nu> and
Johan Billing <billing@df.lth.se>.
jamlib(3), JAM_AddEmptyMessage(3), JAM_DeleteMessage(3),
JAM_DelSubPacket(3), JAM_NewSubPacket(3),
JAM_PutSubfield(3), JAM_LockMB(3), JAM_Errno(3)