Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
JAM_AddMessage(3)	     JAM subroutine library	       JAM_AddMessage(3)

NAME
     JAM_AddMessage - Add a message to message base

SYNOPSIS
     #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);

DESCRIPTION
     Adds a message to the message base. Fully automatic.

   Arguments
     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 char-
	    acters.

RETURN VALUE
     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

EXAMPLES
     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);

AUTHOR
     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>.

SEE ALSO
     jamlib(3),   JAM_AddEmptyMessage(3),   JAM_DeleteMessage(3),    JAM_DelSub-
     Packet(3),  JAM_NewSubPacket(3), JAM_PutSubfield(3), JAM_LockMB(3), JAM_Er-
     rno(3)

				   2002-11-07		       JAM_AddMessage(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=JAM_AddMessage&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help