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

FreeBSD Manual Pages

  
 
  

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 mes-
	      sage.

       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.

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 Jo-
       han 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_Errno(3)

				  2002-11-07		     JAM_AddMessage(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLES | AUTHOR | SEE ALSO

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

home | help