1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#ifndef _BUS_H
#define _BUS_H
#ifdef __cplusplus
extern "C" {
#endif
/* numero par default du bus */
#define DEFAULT_BUS 2010
typedef struct _clnt_lst *BusClientPtr;
typedef enum { BusApplicationConnected, BusApplicationDisconnected } BusApplicationEvent;
extern void BusDefaultApplicationCallback( BusClientPtr app, void *user_data, BusApplicationEvent event ) ;
/* callback callback appele sur connection deconnection d'une appli */
typedef void (*BusApplicationCallback)( BusClientPtr app, void *user_data, BusApplicationEvent event ) ;
/* callback appele sur reception de die */
typedef void (*BusDieCallback)( BusClientPtr app, void *user_data, int id ) ;
/* callback appele sur reception de messages normaux */
typedef void (*MsgCallback)( BusClientPtr app, void *user_data, int argc, char **argv ) ;
/* callback appele sur reception de messages directs */
typedef void (*MsgDirectCallback)( BusClientPtr app, void *user_data, int id, char *msg ) ;
/* identifiant d'une expression reguliere ( Bind/Unbind ) */
typedef struct _msg_rcv *MsgRcvPtr;
/* filtrage des regexps */
void BusClasses( int argc, char **argv);
void BusInit(
const char *AppName, /* nom de l'application */
unsigned short busnumber, /* numero de bus ( port UDP ) */
const char *ready, /* ready Message peut etre NULL */
BusApplicationCallback callback, /* callback appele sur connection deconnection d'une appli */
void *data, /* user data passe au callback */
BusDieCallback die_callback, /* last change callback before die */
void *die_data ); /* user data */
void BusStart(); /* emission du bonjour */
void BusLoop(); /* boucle principale */
/* query sur les applications connectees */
char *GetApplicationName( BusClientPtr app );
char *GetApplicationHost( BusClientPtr app );
BusClientPtr GetApplication( char *name );
char *GetApplicationList();
char **GetApplicationMessages( BusClientPtr app);
/* demande de reception d'un message */
MsgRcvPtr BindMsg( MsgCallback callback, void *user_data, const char *fmt_regexp, ... ); /* avec sprintf prealable */
void UnbindMsg( MsgRcvPtr id );
/* emmission d'un message d'erreur */
void SendError( BusClientPtr app, int id, const char *fmt, ... );
/* emmission d'un message die pour terminer l'application */
void SendDieMsg( BusClientPtr app );
/* emmission d'un message retourne le nb effectivement emis */
int SendMsg( const char *fmt_message, ... ); /* avec sprintf prealable */
/* Message Direct Inter-application */
void BindDirectMsg( MsgDirectCallback callback, void *user_data);
void SendDirectMsg( BusClientPtr app, int id, char *msg );
#ifdef __cplusplus
}
#endif
#endif
|