summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorjacomi1999-03-30 12:59:36 +0000
committerjacomi1999-03-30 12:59:36 +0000
commit1f28a586dfc64b7c021eb3e3894a72b4b84482af (patch)
treec879f0e65b2d417be825f7843679f36e6b925418 /doc
parent62f392c51cecf41ccbc9b9bbcd8c12700f7b744a (diff)
downloadivy-c-1f28a586dfc64b7c021eb3e3894a72b4b84482af.zip
ivy-c-1f28a586dfc64b7c021eb3e3894a72b4b84482af.tar.gz
ivy-c-1f28a586dfc64b7c021eb3e3894a72b4b84482af.tar.bz2
ivy-c-1f28a586dfc64b7c021eb3e3894a72b4b84482af.tar.xz
*** empty log message ***
Diffstat (limited to 'doc')
-rw-r--r--doc/ivy-c-functions.1280
-rw-r--r--doc/ivy-c.1218
-rw-r--r--doc/ivy-c.htm228
3 files changed, 313 insertions, 413 deletions
diff --git a/doc/ivy-c-functions.1 b/doc/ivy-c-functions.1
new file mode 100644
index 0000000..4912340
--- /dev/null
+++ b/doc/ivy-c-functions.1
@@ -0,0 +1,280 @@
+'\"
+'\" Ivy, C interface \- library managing connexions to a software bus
+'\"
+'\" Copyright (C) 1997-1999
+'\" Centre d'Études de la Navigation Aérienne
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\"
+'\" # Start an argument description
+.de AP
+.ie !"\\$4"" .TP \\$4
+.el \{\
+. ie !"\\$2"" .TP \\n()Cu
+. el .TP 15
+.\}
+.ie !"\\$3"" \{\
+.ta \\n()Au \\n()Bu
+\&\\$1 \\fI\\$2\\fP (\\$3)
+.\".b
+.\}
+.el \{\
+.br
+.ie !"\\$2"" \{\
+\&\\$1 \\fI\\$2\\fP
+.\}
+.el \{\
+\&\\fI\\$1\\fP
+.\}
+.\}
+..
+'\" # define tabbing values for .AP
+.de AS
+.nr )A 10n
+.if !"\\$1"" .nr )A \\w'\\$1'u+3n
+.nr )B \\n()Au+15n
+.\"
+.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
+.nr )C \\n()Bu+\\w'(in/out)'u+2n
+..
+'\" # BS - start boxed text
+'\" # ^y = starting y location
+'\" # ^b = 1
+.TH Ivy-c-3.0 1 3.0 "Ivy-c-3.0 Library Functions"
+.SH 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,
+.SH SYNOPSIS
+useful set of library functions for communicating between different
+processes through a software bus
+.nf
+.sp
+\fBIvyInit(\fIAppName, ready, callback, data, die_callback, die_data\fB)\fR
+.sp
+void
+\fBIvyStart(\fIbus\fB)\fR
+.sp
+void
+\fBIvyStop()\fR
+.sp
+MsgRcvPtr
+\fBIvyBindMsg(\fIcallback, user_data, regexp, ...\fB)\fR
+.sp
+void
+\fBIvyUnbindMsg(\fIid\fB)\fR
+.sp
+void
+\fBIvyBindDirectMsg(\fIcallback, user_data\fB)\fR
+.sp
+int
+\fBIvySendMsg(\fIfmt_message, ...\fB)\fR
+.sp
+void
+\fBIvySendDirectMsg(\fIapp, id, msg\fB)\fR
+.sp
+void
+\fBIvySendDieMsg(\fIapp\fB)\fR
+.sp
+void
+\fBIvySendError(\fIapp, id, fmt, ...\fB)\fR
+.sp
+char*
+\fBIvyGetApplicationName(\fIapp\fB)\fR
+.sp
+char*
+\fBIvyGetApplicationHost(\fIapp\fB)\fR
+.sp
+char*
+\fBIvyGetApplication(\fIname\fB)\fR
+.sp
+char*
+\fBIvyGetApplicationList()\fR
+.sp
+char**
+\fBIvyGetApplicationMessages(\fapp\fB)\fR
+.sp
+char*
+\fBIvyDefaultApplicationCallback(\fIapp, user_data, Event\fB)\fR
+char*
+\fBIvyClasses(\fIargc, argv\fB)\fR
+.sp
+void
+\fBIvyChannelInit(\fIvoid\fB)\fR
+.sp
+Channel
+\fBIvyChannelSetUp(\fIfd, data, handle_delete, handle_read\fB)\fR
+.sp
+void
+\fBIvyMainLoop(\fIhook\fB)\fR
+.sp
+void
+\fBIvyChannelClose(\fIchannel\fB)\fR
+.sp
+static void
+\fBIvyChannelDelete(\fIchannel\fB)\fR
+.sp
+static void
+\fBIvyChannelHandleRead(\fIcurrent\fB)\fR
+.sp
+static void
+\fBIvyChannelHandleExcpt(\fIcurrent\fB)\fR
+.sp
+static void
+\fBIvyXtChannelInit(\fIvoid\fB)\fR
+.sp
+static void
+\fBIvyXtChannelSetUp(\fIfd, data, handle_delete, handle_read\fB)\fR
+.sp
+void
+\fBIvyXtChannelClose(\fIchannel\fB)\fR
+.sp
+static void
+\fBIvyXtHandleChannelRead(\fIclosure, source, id\fB)\fR
+.sp
+static void
+\fBIvyXtHandleChannelDelete(\fIclosure, source, id\fB)\fR
+.sp
+void
+\fBIvyChannelAppContext(\fIcntx\fB)\fR
+.SH ARGUMENTS
+Only main functions are detailed in this section
+.SH
+\fBIvyInit\fR:
+Initialisation of a connection
+.sp
+.AS "MaxSize" die_callback
+.AP const_char *AppName in
+Application Name
+.AP const_char *ready in
+Ready Message (can be NULL)
+.AP IvyApplicationCallback callback in
+Callback to be called on a connexion/deconnexion of an application
+.AP void *data in
+user data
+.AP IvyDieCallback die_callback in
+last change callback before die
+.AP void *die_data in
+user data
+.SH Example:
+\fBIvyInit ("PLN-SERVER", "PLN-READY", NULL, NULL, NULL);\fR
+.SH
+\fBIvyStart\fR:
+Initialisation of TCP/UPD port and sending of a broadcast handshake on every network
+.AP const_char *bus in
+Bus to be used (format : network list followed by broadcast port).
+.SH Example:
+the given bus can be a string like 123.231,123.123:2000 or 123.231 or
+:2000. If no argument is specified, then the environment variable
+\fBIVYBUS\fR is checked, else the default value : 127.255.255.255:2010
+is used (broadcast on the local machine).
+.nf
+\fBIvyStart ("143.196.53.255:2001");\fR
+.SH
+\fBIvyBindMsg\fR:
+Message binding
+.AP MsgCallback callback in
+.AP void *user_data in
+.AP const_char *regexp in
+.AP MsgRcvPtr id out
+.SH Example:
+\fBIvyBindMsg (StartTimeCallback, 0, "^CLOCK Start time=(.*)");\fR
+.nf
+In this example the function \fBStartTimeCallback\fR will be called
+each time the string \fBCLOCK Start time=(.*)\fR will be emitted on
+the bus.
+.SH
+\fBIvyUnbindMsg\fR:
+Message unbinding
+.AP MsgRcvPtr id in
+ident of the message to unbind
+.SH
+\fBIvySendMsg\fR:
+Sending a message
+.AP const_char* fmt in
+String to be sent on the bus
+.SH Example:
+\fBIvySendMsg ("SECTOR:%s.AIRCRAFT:%s Entered", sectorname, pln->indicatif);\fR
+.SH
+\fBIvyChannelSetUp\fR:
+.AP HANDLE fd in
+.AP void *data in
+.AP ChannelHandleDelete handle_delete in
+.AP ChannelHandleRead handle_read in
+.AP Channel out out
+.SH Example:
+\fBIvyChannelSetUp (0, NULL, NULL, HandleStdin);\fR:
+.VE
+.BE
+.SH DESCRIPTION
+.PP
+These functions provide facilities for connecting applications on a
+software bus and managing messages exchanges among them.
+Each time an application initializes a connection on the bus, a
+"ready" message is sent to all other applications already connected, and the
+list of the messages subscribed by this application is dispatched.
+The format for the messages is free.
+
+.SH EXAMPLE
+Connection of the application \fBIVYPROBE\fR on a given bus
+.nf
+
+.DS
+
+#include "ivyloop.h"
+#include "ivysocket.h"
+#include "ivy.h"
+
+ int main (int argc, char* argv[]){
+/* bus domain and port number to be used */
+ const char* bus="127.255.255.255:2010";
+/* initialisation of the connection */
+ IvyInit ("IVYPROBE",
+ bport,
+ "IVYPROBE READY",
+ ApplicationCallback,
+ NULL,
+ NULL,
+ NULL);
+/* keyboard's inputs management */
+ IvyChannelSetUp(0, NULL, NULL, HandleStdin);
+/* starting the connection */
+ IvyStart (bus);
+/* Main loop */
+ IvyMainLoop(0);
+};
+.DE
+
+.SH FILES
+.I /usr/include/ivy.h
+.nf
+.I /usr/include/ivyloop.h
+.nf
+.I /usr/include/ivysocket.h
+.SH ENVIRONMENT
+.I IVYBUS
+.nf
+.I IVYDOMAINS
+.SH DIAGNOSTICS
+error messages displayed
+.SH BUGS
+none reported yet!
+.SH AUTHORS
+Francois-Regis Colin <fcolin@cenatoulouse.dgac.fr>
+Stephane Chatty <chatty@cenatoulouse.dgac.fr>
+.SH SEE ALSO
+ivyprobe (1)
+.sp
+For further details, please refer to the Ivy html page at http://www.cenatls.cena.dgac.fr/pii/produits/Ivy.html
+.SH 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
+
diff --git a/doc/ivy-c.1 b/doc/ivy-c.1
index 4912340..14aed08 100644
--- a/doc/ivy-c.1
+++ b/doc/ivy-c.1
@@ -42,216 +42,29 @@
'\" # BS - start boxed text
'\" # ^y = starting y location
'\" # ^b = 1
-.TH Ivy-c-3.0 1 3.0 "Ivy-c-3.0 Library Functions"
+.TH Ivy-c-3.0 1 3.0 "Ivy-c-3.0 Interface"
.SH 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,
+ivy-c - a software bus library
.SH SYNOPSIS
-useful set of library functions for communicating between different
+Ivy-c provides a useful set of C library functions for communicating between different
processes through a software bus
-.nf
-.sp
-\fBIvyInit(\fIAppName, ready, callback, data, die_callback, die_data\fB)\fR
-.sp
-void
-\fBIvyStart(\fIbus\fB)\fR
-.sp
-void
-\fBIvyStop()\fR
-.sp
-MsgRcvPtr
-\fBIvyBindMsg(\fIcallback, user_data, regexp, ...\fB)\fR
-.sp
-void
-\fBIvyUnbindMsg(\fIid\fB)\fR
-.sp
-void
-\fBIvyBindDirectMsg(\fIcallback, user_data\fB)\fR
-.sp
-int
-\fBIvySendMsg(\fIfmt_message, ...\fB)\fR
-.sp
-void
-\fBIvySendDirectMsg(\fIapp, id, msg\fB)\fR
-.sp
-void
-\fBIvySendDieMsg(\fIapp\fB)\fR
-.sp
-void
-\fBIvySendError(\fIapp, id, fmt, ...\fB)\fR
-.sp
-char*
-\fBIvyGetApplicationName(\fIapp\fB)\fR
-.sp
-char*
-\fBIvyGetApplicationHost(\fIapp\fB)\fR
-.sp
-char*
-\fBIvyGetApplication(\fIname\fB)\fR
-.sp
-char*
-\fBIvyGetApplicationList()\fR
-.sp
-char**
-\fBIvyGetApplicationMessages(\fapp\fB)\fR
-.sp
-char*
-\fBIvyDefaultApplicationCallback(\fIapp, user_data, Event\fB)\fR
-char*
-\fBIvyClasses(\fIargc, argv\fB)\fR
-.sp
-void
-\fBIvyChannelInit(\fIvoid\fB)\fR
-.sp
-Channel
-\fBIvyChannelSetUp(\fIfd, data, handle_delete, handle_read\fB)\fR
-.sp
-void
-\fBIvyMainLoop(\fIhook\fB)\fR
-.sp
-void
-\fBIvyChannelClose(\fIchannel\fB)\fR
-.sp
-static void
-\fBIvyChannelDelete(\fIchannel\fB)\fR
-.sp
-static void
-\fBIvyChannelHandleRead(\fIcurrent\fB)\fR
-.sp
-static void
-\fBIvyChannelHandleExcpt(\fIcurrent\fB)\fR
-.sp
-static void
-\fBIvyXtChannelInit(\fIvoid\fB)\fR
-.sp
-static void
-\fBIvyXtChannelSetUp(\fIfd, data, handle_delete, handle_read\fB)\fR
-.sp
-void
-\fBIvyXtChannelClose(\fIchannel\fB)\fR
-.sp
-static void
-\fBIvyXtHandleChannelRead(\fIclosure, source, id\fB)\fR
-.sp
-static void
-\fBIvyXtHandleChannelDelete(\fIclosure, source, id\fB)\fR
-.sp
-void
-\fBIvyChannelAppContext(\fIcntx\fB)\fR
-.SH ARGUMENTS
-Only main functions are detailed in this section
-.SH
-\fBIvyInit\fR:
-Initialisation of a connection
-.sp
-.AS "MaxSize" die_callback
-.AP const_char *AppName in
-Application Name
-.AP const_char *ready in
-Ready Message (can be NULL)
-.AP IvyApplicationCallback callback in
-Callback to be called on a connexion/deconnexion of an application
-.AP void *data in
-user data
-.AP IvyDieCallback die_callback in
-last change callback before die
-.AP void *die_data in
-user data
-.SH Example:
-\fBIvyInit ("PLN-SERVER", "PLN-READY", NULL, NULL, NULL);\fR
-.SH
-\fBIvyStart\fR:
-Initialisation of TCP/UPD port and sending of a broadcast handshake on every network
-.AP const_char *bus in
-Bus to be used (format : network list followed by broadcast port).
-.SH Example:
-the given bus can be a string like 123.231,123.123:2000 or 123.231 or
-:2000. If no argument is specified, then the environment variable
-\fBIVYBUS\fR is checked, else the default value : 127.255.255.255:2010
-is used (broadcast on the local machine).
-.nf
-\fBIvyStart ("143.196.53.255:2001");\fR
-.SH
-\fBIvyBindMsg\fR:
-Message binding
-.AP MsgCallback callback in
-.AP void *user_data in
-.AP const_char *regexp in
-.AP MsgRcvPtr id out
-.SH Example:
-\fBIvyBindMsg (StartTimeCallback, 0, "^CLOCK Start time=(.*)");\fR
-.nf
-In this example the function \fBStartTimeCallback\fR will be called
-each time the string \fBCLOCK Start time=(.*)\fR will be emitted on
-the bus.
-.SH
-\fBIvyUnbindMsg\fR:
-Message unbinding
-.AP MsgRcvPtr id in
-ident of the message to unbind
-.SH
-\fBIvySendMsg\fR:
-Sending a message
-.AP const_char* fmt in
-String to be sent on the bus
-.SH Example:
-\fBIvySendMsg ("SECTOR:%s.AIRCRAFT:%s Entered", sectorname, pln->indicatif);\fR
-.SH
-\fBIvyChannelSetUp\fR:
-.AP HANDLE fd in
-.AP void *data in
-.AP ChannelHandleDelete handle_delete in
-.AP ChannelHandleRead handle_read in
-.AP Channel out out
-.SH Example:
-\fBIvyChannelSetUp (0, NULL, NULL, HandleStdin);\fR:
-.VE
-.BE
.SH DESCRIPTION
-.PP
-These functions provide facilities for connecting applications on a
-software bus and managing messages exchanges among them.
+Ivy is a software bus, ie a system that allows any software component to freely exchange data.
+The basic principle of a software bus is to ease the rapid implementation of new agents, and to manage a dynamic collection of agents on the bus: agents connect, send and receive messages, and disconnect without perturbing the overall functionment of the bus.
Each time an application initializes a connection on the bus, a
"ready" message is sent to all other applications already connected, and the
list of the messages subscribed by this application is dispatched.
The format for the messages is free.
-
-.SH EXAMPLE
-Connection of the application \fBIVYPROBE\fR on a given bus
.nf
-
-.DS
-
-#include "ivyloop.h"
-#include "ivysocket.h"
-#include "ivy.h"
-
- int main (int argc, char* argv[]){
-/* bus domain and port number to be used */
- const char* bus="127.255.255.255:2010";
-/* initialisation of the connection */
- IvyInit ("IVYPROBE",
- bport,
- "IVYPROBE READY",
- ApplicationCallback,
- NULL,
- NULL,
- NULL);
-/* keyboard's inputs management */
- IvyChannelSetUp(0, NULL, NULL, HandleStdin);
-/* starting the connection */
- IvyStart (bus);
-/* Main loop */
- IvyMainLoop(0);
-};
-.DE
+The essential functions of Ivy are:
+.nf
+.I Connexion
+.nf
+.I Message sending
+.nf
+.I Message subscription
+.nf
+.I Main loop
.SH FILES
.I /usr/include/ivy.h
@@ -268,10 +81,13 @@ error messages displayed
.SH BUGS
none reported yet!
.SH AUTHORS
+.nf
Francois-Regis Colin <fcolin@cenatoulouse.dgac.fr>
+.nf
Stephane Chatty <chatty@cenatoulouse.dgac.fr>
.SH SEE ALSO
ivyprobe (1)
+ivy-c-functions (1)
.sp
For further details, please refer to the Ivy html page at http://www.cenatls.cena.dgac.fr/pii/produits/Ivy.html
.SH NOTES
diff --git a/doc/ivy-c.htm b/doc/ivy-c.htm
index 8256c39..067350a 100644
--- a/doc/ivy-c.htm
+++ b/doc/ivy-c.htm
@@ -1,5 +1,6 @@
<HTML>
<HEAD>
+<TITLE>c - a software bus library</TITLE>
</HEAD>
<BODY>
<!-- Ivy, C interface \- library managing connexions to a software bus-->
@@ -15,227 +16,27 @@
<!-- # ^y = starting y location-->
<!-- # ^b = 1-->
<H2><A NAME=NAME>NAME</A></H2>
-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,
+ivy-c - a software bus library
<H2><A NAME=SYNOPSIS>SYNOPSIS</A></H2>
-useful set of library functions for communicating between different
+Ivy-c provides a useful set of C library functions for communicating between different
processes through a software bus
-<BR>
-<P>
-<B>IvyInit(</B><I>AppName, ready, callback, data, die_callback, die_data</I><B>)</B>
-<P>
-void
-<B>IvyStart(</B><I>bus</I><B>)</B>
-<P>
-void
-<B>IvyStop()</B>
-<P>
-MsgRcvPtr
-<B>IvyBindMsg(</B><I>callback, user_data, regexp, ...</I><B>)</B>
-<P>
-void
-<B>IvyUnbindMsg(</B><I>id</I><B>)</B>
-<P>
-void
-<B>IvyBindDirectMsg(</B><I>callback, user_data</I><B>)</B>
-<P>
-int
-<B>IvySendMsg(</B><I>fmt_message, ...</I><B>)</B>
-<P>
-void
-<B>IvySendDirectMsg(</B><I>app, id, msg</I><B>)</B>
-<P>
-void
-<B>IvySendDieMsg(</B><I>app</I><B>)</B>
-<P>
-void
-<B>IvySendError(</B><I>app, id, fmt, ...</I><B>)</B>
-<P>
-char*
-<B>IvyGetApplicationName(</B><I>app</I><B>)</B>
-<P>
-char*
-<B>IvyGetApplicationHost(</B><I>app</I><B>)</B>
-<P>
-char*
-<B>IvyGetApplication(</B><I>name</I><B>)</B>
-<P>
-char*
-<B>IvyGetApplicationList()</B>
-<P>
-char**
-<B>IvyGetApplicationMessages(</B>\fapp<B>)</B>
-<P>
-char*
-<B>IvyDefaultApplicationCallback(</B><I>app, user_data, Event</I><B>)</B>
-char*
-<B>IvyClasses(</B><I>argc, argv</I><B>)</B>
-<P>
-void
-<B>IvyChannelInit(</B><I>void</I><B>)</B>
-<P>
-Channel
-<B>IvyChannelSetUp(</B><I>fd, data, handle_delete, handle_read</I><B>)</B>
-<P>
-void
-<B>IvyMainLoop(</B><I>hook</I><B>)</B>
-<P>
-void
-<B>IvyChannelClose(</B><I>channel</I><B>)</B>
-<P>
-static void
-<B>IvyChannelDelete(</B><I>channel</I><B>)</B>
-<P>
-static void
-<B>IvyChannelHandleRead(</B><I>current</I><B>)</B>
-<P>
-static void
-<B>IvyChannelHandleExcpt(</B><I>current</I><B>)</B>
-<P>
-static void
-<B>IvyXtChannelInit(</B><I>void</I><B>)</B>
-<P>
-static void
-<B>IvyXtChannelSetUp(</B><I>fd, data, handle_delete, handle_read</I><B>)</B>
-<P>
-void
-<B>IvyXtChannelClose(</B><I>channel</I><B>)</B>
-<P>
-static void
-<B>IvyXtHandleChannelRead(</B><I>closure, source, id</I><B>)</B>
-<P>
-static void
-<B>IvyXtHandleChannelDelete(</B><I>closure, source, id</I><B>)</B>
-<P>
-void
-<B>IvyChannelAppContext(</B><I>cntx</I><B>)</B>
-<H2><A NAME=ARGUMENTS>ARGUMENTS</A></H2>
-Only main functions are detailed in this section
-<H2><A NAME=Section0></A></H2>
-<B>IvyInit</B>:
-Initialisation of a connection
-<P>
-<DL>
-<DT><CODE>const_char *AppName</CODE>
-(in) <DD>Application Name
-<DT><CODE>const_char *ready</CODE>
-(in) <DD>Ready Message (can be NULL)
-<DT><CODE>IvyApplicationCallback callback</CODE>
-(in) <DD>Callback to be called on a connexion/deconnexion of an application
-<DT><CODE>void *data</CODE>
-(in) <DD>user data
-<DT><CODE>IvyDieCallback die_callback</CODE>
-(in) <DD>last change callback before die
-<DT><CODE>void *die_data</CODE>
-(in) <DD>user data
-</DL>
-<H2><A NAME=Section1>Example:</A></H2>
-<B>IvyInit ("PLN-SERVER", "PLN-READY", NULL, NULL, NULL);</B>
-<H2><A NAME=Section0></A></H2>
-<B>IvyStart</B>:
-Initialisation of TCP/UPD port and sending of a broadcast handshake on every network
-<DL>
-<DT><CODE>const_char *bus</CODE>
-(in) <DD>Bus to be used (format : network list followed by broadcast port).
-</DL>
-<H2><A NAME=Section1>Example:</A></H2>
-the given bus can be a string like 123.231,123.123:2000 or 123.231 or
-:2000. If no argument is specified, then the environment variable
-<B>IVYBUS</B> is checked, else the default value : 127.255.255.255:2010
-is used (broadcast on the local machine).
-<BR>
-<B>IvyStart ("143.196.53.255:2001");</B>
-<H2><A NAME=Section0></A></H2>
-<B>IvyBindMsg</B>:
-Message binding
-<DL>
-<DT><CODE>MsgCallback callback</CODE>
-(in) <DD><DT><CODE>void *user_data</CODE>
-(in) <DD><DT><CODE>const_char *regexp</CODE>
-(in) <DD><DT><CODE>MsgRcvPtr id</CODE>
-(out) <DD></DL>
-<H2><A NAME=Section1>Example:</A></H2>
-<B>IvyBindMsg (StartTimeCallback, 0, "^CLOCK Start time=(.*)");</B>
-<BR>
-In this example the function <B>StartTimeCallback</B> will be called
-each time the string <B>CLOCK Start time=(.*)</B> will be emitted on
-the bus.
-<H2><A NAME=Section0></A></H2>
-<B>IvyUnbindMsg</B>:
-Message unbinding
-<DL>
-<DT><CODE>MsgRcvPtr id</CODE>
-(in) <DD>ident of the message to unbind
-</DL>
-<H2><A NAME=Section0></A></H2>
-<B>IvySendMsg</B>:
-Sending a message
-<DL>
-<DT><CODE>const_char* fmt</CODE>
-(in) <DD>String to be sent on the bus
-</DL>
-<H2><A NAME=Section1>Example:</A></H2>
-<B>IvySendMsg ("SECTOR:%s.AIRCRAFT:%s Entered", sectorname, pln-&gt;indicatif);</B>
-<H2><A NAME=Section0></A></H2>
-<B>IvyChannelSetUp</B>:
-<DL>
-<DT><CODE>HANDLE fd</CODE>
-(in) <DD><DT><CODE>void *data</CODE>
-(in) <DD><DT><CODE>ChannelHandleDelete handle_delete</CODE>
-(in) <DD><DT><CODE>ChannelHandleRead handle_read</CODE>
-(in) <DD><DT><CODE>Channel out</CODE>
-(out) <DD></DL>
-<H2><A NAME=Section1>Example:</A></H2>
-<B>IvyChannelSetUp (0, NULL, NULL, HandleStdin);</B>:
-<HR>
-<BR>
<H2><A NAME=DESCRIPTION>DESCRIPTION</A></H2>
-<P>
-These functions provide facilities for connecting applications on a
-software bus and managing messages exchanges among them.
+Ivy is a software bus, ie a system that allows any software component to freely exchange data.
+The basic principle of a software bus is to ease the rapid implementation of new agents, and to manage a dynamic collection of agents on the bus: agents connect, send and receive messages, and disconnect without perturbing the overall functionment of the bus.
Each time an application initializes a connection on the bus, a
"ready" message is sent to all other applications already connected, and the
list of the messages subscribed by this application is dispatched.
The format for the messages is free.
-
-<H2><A NAME=EXAMPLE>EXAMPLE</A></H2>
-Connection of the application <B>IVYPROBE</B> on a given bus
<BR>
-
+The essential functions of Ivy are:
<BR>
-<PRE>
-
-#include "ivyloop.h"
-#include "ivysocket.h"
-#include "ivy.h"
-
- int main (int argc, char* argv[]){
-/* bus domain and port number to be used */
- const char* bus="127.255.255.255:2010";
-/* initialisation of the connection */
- IvyInit ("IVYPROBE",
- bport,
- "IVYPROBE READY",
- ApplicationCallback,
- NULL,
- NULL,
- NULL);
-/* keyboard's inputs management */
- IvyChannelSetUp(0, NULL, NULL, HandleStdin);
-/* starting the connection */
- IvyStart (bus);
-/* Main loop */
- IvyMainLoop(0);
-};
+<I>Connexion</I>
+<BR>
+<I>Message</I>
+<BR>
+<I>Message</I>
<BR>
-</PRE>
+<I>Main</I>
<H2><A NAME=FILES>FILES</A></H2>
<I>/usr/include/ivy.h</I>
@@ -252,10 +53,13 @@ error messages displayed
<H2><A NAME=BUGS>BUGS</A></H2>
none reported yet!
<H2><A NAME=AUTHORS>AUTHORS</A></H2>
+<BR>
Francois-Regis Colin &lt;fcolin@cenatoulouse.dgac.fr&gt;
+<BR>
Stephane Chatty &lt;chatty@cenatoulouse.dgac.fr&gt;
-<H2><A NAME=Section2>SEE ALSO</A></H2>
+<H2><A NAME=Section0>SEE ALSO</A></H2>
ivyprobe (1)
+ivy-c-functions (1)
<P>
For further details, please refer to the Ivy html page at http://www.cenatls.cena.dgac.fr/pii/produits/Ivy.html
<H2><A NAME=NOTES>NOTES</A></H2>