X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fatalk%2Ffce_api.h;h=d11a2d4927a4752da0593fb3e54c2acc976cf57e;hb=3a84db87064922ad10ac10cc1d6833380e575995;hp=0e2f572dd299e5afdaf9a9c32c3c57adac5b700d;hpb=8d863e719b3670e3e9db3001da875d085f4d93f1;p=netatalk.git diff --git a/include/atalk/fce_api.h b/include/atalk/fce_api.h index 0e2f572d..d11a2d49 100755 --- a/include/atalk/fce_api.h +++ b/include/atalk/fce_api.h @@ -10,16 +10,50 @@ #ifndef _FCE_API_H #define _FCE_API_H +#include + +/* fce_packet.mode */ +#define FCE_FILE_MODIFY 1 +#define FCE_FILE_DELETE 2 +#define FCE_DIR_DELETE 3 +#define FCE_FILE_CREATE 4 +#define FCE_DIR_CREATE 5 +#define FCE_CONN_START 42 +#define FCE_CONN_BROKEN 99 + +#define FCE_FIRST_EVENT FCE_FILE_MODIFY /* keep in sync with last file event above */ +#define FCE_LAST_EVENT FCE_DIR_CREATE /* keep in sync with last file event above */ + +/* fce_packet.fce_magic */ +#define FCE_PACKET_MAGIC "at_fcapi" + +/* This packet goes over the network, so we want to + * be shure about datastructs and type sizes between platforms. + * Format is network byte order. + */ +#define FCE_PACKET_HEADER_SIZE 8+1+1+4+2 + +struct fce_packet +{ + char magic[8]; + unsigned char version; + unsigned char mode; + uint32_t event_id; + uint16_t datalen; + char data[MAXPATHLEN]; +}; + +typedef uint32_t fce_ev_t; +typedef enum { fce_file, fce_dir } fce_obj_t; + struct path; struct ofork; -int fce_register_delete_file( struct path *path ); -int fce_register_delete_dir( char *name ); -int fce_register_new_dir( struct path *path ); -int fce_register_new_file( struct path *path ); -int fce_register_file_modification( struct ofork *ofork ); +void fce_pending_events(AFPObj *obj); +int fce_register(fce_ev_t event, const char *path, const char *oldpath, fce_obj_t type); int fce_add_udp_socket(const char *target ); // IP or IP:Port -int fce_set_coalesce( char *coalesce_opt ); // all|delete|create +int fce_set_coalesce(const char *coalesce_opt ); // all|delete|create +int fce_set_events(const char *events); /* fmod,fdel,ddel,fcre,dcre */ #define FCE_DEFAULT_PORT 12250 #define FCE_DEFAULT_PORT_STRING "12250"