NAME

IvyInit, IvyStart, IvyStop, IvyBindMsg, IvyUnbindMsg, IvyBindDirectMsg, IvySendMsg, IvySendDirectMsg, IvySendDieMsg, IvySendError, IvyGetApplicationName, IvyGetApplicationHost, IvyGetApplication, IvyGetApplicationList, IvyGetApplicationMessages, IvyDefaultApplicationCallback, IvyClasses, IvyChannelInit, IvyChannelSetUp, IvyMainLoop, IvyChannelClose, IvyChannelDelete, IvyChannelHandleRead, IvyChannelHandleExcpt, IvyXtChannelInit, IvyXtChannelSetUp IvyXtChannelClose, IvyXtHandleChannelRead, IvyXtHandleChannelDelete, IvyXtChannelAppContext,

SYNOPSIS

useful library functions for communicating through a sofware bus

IvyInit(AppName, ready, callback, data, die_callback, die_data)

void IvyStart(bus)

void IvyStop()

MsgRcvPtr IvyBindMsg(callback, user_data, regexp, ...)

void IvyUnbindMsg(id)

void IvyBindDirectMsg(callback, user_data)

int IvySendMsg(fmt_message, ...)

void IvySendDirectMsg(app, id, msg)

void IvySendDieMsg(app)

void IvySendError(app, id, fmt, ...)

char* IvyGetApplicationName(app)

char* IvyGetApplicationHost(app)

char* IvyGetApplication(name)

char* IvyGetApplicationList()

char** IvyGetApplicationMessages(\fapp)

char* IvyDefaultApplicationCallback(app, user_data, Event) char* IvyClasses(argc, argv)

void IvyChannelInit(void)

Channel IvyChannelSetUp(fd, data, handle_delete, handle_read)

void IvyMainLoop(hook)

void IvyChannelClose(channel)

static void IvyChannelDelete(channel)

static void IvyChannelHandleRead(current)

static void IvyChannelHandleExcpt(current)

static void IvyXtChannelInit(void)

static void IvyXtChannelSetUp(fd, data, handle_delete, handle_read)

void IvyXtChannelClose(channel)

static void IvyXtHandleChannelRead(closure, source, id)

static void IvyXtHandleChannelDelete(closure, source, id)

void IvyChannelAppContext(cntx)

ARGUMENTS

IvyInit: Initialisation of a connection

const_char *AppName (in)
Application Name
const_char *ready (in)
Ready Message (can be NULL)
IvyApplicationCallback callback (in)
Callback to be called on a connexion/deconnexion of an application
void *data (in)
user data
IvyDieCallback die_callback (in)
last change callback before die
void *die_data (in)
user data

IvyStart: Initialisation of TCP/UPD port and sending of a broadcast handshake on every network
const_char *bus (in)
Bus (format : network list followed by broadcast port) example : 123.231,123.123:2000 or 123.231 or :2000 If no argument specified, check the environment variable IVYBUS, else use the default value : 127.255.255.255:2010

IvyBindMsg: Message binding
MsgCallback callback (in)
void *user_data (in)
const_char *regexp (in)
MsgRcvPtr id (out)

IvyUnbindMsg: Message unbinding
MsgRcvPtr id (in)

IvyChannelSetUp:
HANDLE fd (in)
void *data (in)
ChannelHandleDelete handle_delete (in)
ChannelHandleRead handle_read (in)
Channel out (out)


DESCRIPTION

These procedures provide facilities for connecting applications on a software bus and managing messages exchanges among them.

EXAMPLES

Simple C code:


#include "ivyloop.h"
#include "ivysocket.h"
#include "ivy.h"

 int main (int argc, char* argv[]){
	IvyInit ("IVYPROBE",
		 bport,
		 "IVYPROBE READY",
		 ApplicationCallback,
		 NULL,
		 NULL,
		 NULL)
	IvyChannelSetUp(0, NULL, NULL, HandleStdin);
	IvyStart (domains);
	IvyMainLoop(0)
};

FILES

/usr/include/ivy.h /usr/include/ivyloop.h /usr/include/ivysocket.h

ENVIRONMENT

IVYDOMAINS IVYBUS

DIAGNOSTICS

error messages displayed

BUGS

none !

AUTHORS

Francois-Regis Colin <fcolin@cenatoulouse.dgac.fr> Stephane Chatty <chatty@cenatoulouse.dgac.fr>

SEE ALSO

ivyprobe (1)

For further details, please refer to the Ivy html page at http://www.cenatls.cena.dgac.fr/pii/produits/Ivy.html

NOTES

In case of any comment or bug report on this library, please contact fcolin@cenatoulouse.dgac.fr, chatty@cenatoulouse.dgac.fr, jacomi@cenatoulouse.dgac.fr