our C++ client library has now a protocol plugin which uses our native xmlBlaster SOCKET protocol to talk to the Java xmlBlaster server, see
http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.cpp.socket.html
The SOCKET protocol is described here:
http://www.xmlblaster.org/xmlBlaster/doc/requirements/protocol.socket.html
The C++ plugin wraps the C-client SOCKET implementation which is described in detail here:
http://www.xmlblaster.org/xmlBlaster/doc/requirements/client.c.socket.html
The C++ plugin code is available with cvs.
FEATURES: ========= o You can compile the C++ client library to contain the SOCKET and the CORBA plugin simultaneously or only one of them.
o The SOCKET protocol tunnels callbacks through the same TCP/IP socket which eliminates some firewall problems.
TODO: ===== The plugin has the limitations as described in the above client.c.socket requirement:
o Invoking xmlBlaster from within the callback thread (in update() function) will deadlock, a thread pool implementation will be added to resolve this issue. o publishOneway() and publishArr() are not yet implemented (They are useful for higher performance only)
COMPATIBILITY: ============== o The C and the C++ client API has minor changes, please read the xmlBlaster/CHANGES file on how to adapt your existing C/C++ clients.
http://www.xmlblaster.org/xmlBlaster/CHANGES
COMPILE example (SOCKET only): ======== cd xmlBlaster
Edit build.properties to only contain these settings: COMPILE_SOCKET_PLUGIN=1 COMPILE_CORBA_PLUGIN=1 corba.product = NONE plus the xerces XML settings
build cpp
EXAMPLE: ======== Try (xmlBlaster/demo/c++/bin)
HelloWorld2 -help
for a list of command line arguments
If you have compiled for example the CORBA and SOCKET plugin you can switch the protocol used on the fly:
HelloWorld2 -protocol IOR
HelloWorld2 -protocol SOCKET
enjoy
Marcel
PS: The plugin is currently tested with g++ 2.x, g++ 3.x and icc 7.x,
Windows follows.-- http://www.xmlBlaster.org
