1 /*----------------------------------------------------------------------------
  2 Name:      HelloWorld.c
  3 Project:   xmlBlaster.org
  4 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file
  5 Comment:   HelloWorld connects with raw socket to xmlBlaster
  6 Author:    "Marcel Ruff" <xmlBlaster@marcelruff.info>
  7 Compile:
  8   Linux C: 
  9    gcc -Wall -g -Wno-long-long -D_REENTRANT -I. -o HelloWorld HelloWorld.c util/helper.c util/msgUtil.c
 10    util/Properties.c socket/xmlBlasterSocket.c socket/xmlBlasterZlib.c socket/XmlBlasterConnectionUnparsed.c
 11 
 12    With zlib compression:
 13    gcc -Wall -pedantic -Wno-long-long -D_REENTRANT -g -DXMLBLASTER_ZLIB=1 -I. -o HelloWorld HelloWorld.c util/helper.c
 14       util/msgUtil.c util/Properties.c socket/xmlBlasterSocket.c socket/xmlBlasterZlib.c socket/XmlBlasterConnectionUnparsed.c
 15       -I/opt/zlib/include -L/opt/zlib/lib -lz
 16    
 17    Start with: "HelloWorld -plugin/socket/compress/type zlib:stream"
 18 
 19   Linux C++: g++ -Wall -g -D_REENTRANT -I. -o HelloWorld HelloWorld.c util/helper.c util/msgUtil.c
 20    util/Properties.c socket/xmlBlasterSocket.c socket/xmlBlasterZlib.c socket/XmlBlasterConnectionUnparsed.c
 21             -DXMLBLASTER_C_COMPILE_AS_CPP
 22   
 23   Linux Intel compiler:
 24         icc -g -D_REENTRANT -I. -o HelloWorld HelloWorld.c util/helper.c util/msgUtil.c
 25    util/Properties.c socket/xmlBlasterSocket.c socket/xmlBlasterZlib.c socket/XmlBlasterConnectionUnparsed.c
 26   
 27   Win:  cl /MT /W3 /Wp64 -D_WINDOWS -DDLL_IGNORE -DXB_NO_PTHREADS -I. HelloWorld.c util\helper.c util\msgUtil.c
 28         util\Properties.c socket\xmlBlasterSocket.c socket\xmlBlasterZlib.c socket\XmlBlasterConnectionUnparsed.c ws2_32.lib
 29   
 30   WinCE: -DWINCE ...
 31 
 32   Sun:  cc -g -D_REENTRANT -I. -o HelloWorld HelloWorld.c util/helper.c util/msgUtil.c
 33         util/Properties.c socket/xmlBlasterSocket.c socket/xmlBlasterZlib.c
 34         socket/XmlBlasterConnectionUnparsed.c -lsocket -lnsl
 35 
 36   Linux with shared lib:
 37         gcc -o HelloWorld HelloWorld.c -L../../lib -lxmlBlasterClientC -I.
 38             -Wl,-rpath=../../lib -lpthread
 39 
 40   HP-UX 11 with gcc. 2.8.1:
 41         gcc -g -I. -UXB_USE_PTHREADS -o HelloWorld HelloWorld.c util/helper.c util/msgUtil.c util/Properties.c
 42         socket/xmlBlasterSocket.c socket/XmlBlasterConnectionUnparsed.c socket/xmlBlasterZlib.c
 43 Date:      05/2003
 44 -----------------------------------------------------------------------------*/
 45 #include <stdio.h>
 46 #include <stdlib.h>
 47 #include <string.h>
 48 #include <XmlBlasterConnectionUnparsed.h>
 49 
 50 #if defined(WINCE)
 51 #include "HelloWorldCE/stdafx.h"
 52 #endif
 53 
 54 /**
 55  * Access the free memory in the server. 
 56  */
 57 #if defined(WINCE)
 58 int _tmain(int argc, _TCHAR** argv_wcs) { /* wchar_t==_TCHAR */
 59    char **argv = convertWcsArgv(argv_wcs, argc);
 60 #else
 61 int main(int argc, const char* const* argv) {
 62 #endif
 63    MsgUnitArr *msgUnitArr;
 64    XmlBlasterException exception;
 65    char *connectQos, *response;
 66    
 67    XmlBlasterConnectionUnparsed *xb = getXmlBlasterConnectionUnparsed(argc, argv);
 68 
 69    connectQos =   "<qos>"
 70                   " <securityService type='htpasswd' version='1.0'>"
 71                   "   <user>fritz</user>"
 72                   "   <passwd>secret</passwd>"
 73                   " </securityService>"
 74                   "</qos>";
 75    response = xb->connect(xb, connectQos, &exception);
 76    free(response);
 77    if (*exception.errorCode != '\0') {
 78       printf("[client] Caught exception during connect, errorCode=%s, message=%s\n",
 79              exception.errorCode, exception.message);
 80       freeXmlBlasterConnectionUnparsed(&xb);
 81       exit(1);
 82    }
 83 
 84    printf("[HelloWorld] Connected to xmlBlaster, invoking now get() ...\n");
 85    
 86    msgUnitArr = xb->get(xb, "<key oid='__cmd:?freeMem'/>", 0, &exception);
 87    if (*exception.errorCode != '\0') {
 88       printf("[HelloWorld] Caught exception in get errorCode=%s, message=%s\n",
 89              exception.errorCode, exception.message);
 90       freeXmlBlasterConnectionUnparsed(&xb);
 91       exit(1);
 92    }
 93    if (msgUnitArr != (MsgUnitArr *)0 && msgUnitArr->len > 0) {
 94       char *contentStr = strFromBlobAlloc(msgUnitArr->msgUnitArr[0].content,
 95                                           msgUnitArr->msgUnitArr[0].contentLen);
 96       printf("[HelloWorld] xmlBlaster has %s bytes of free memory\n", contentStr);
 97       free(contentStr);
 98    }
 99    freeMsgUnitArr(msgUnitArr);
100    
101    (void)xb->disconnect(xb, 0, &exception);
102 
103    freeXmlBlasterConnectionUnparsed(&xb);
104    printf("[HelloWorld] Good bye.\n");
105 #  if defined(WINCE)
106       freeArgv(argv, argc);
107 #  endif
108    return 0;
109 }


syntax highlighted by Code2HTML, v. 0.9.1