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