#pragma once // IvyApplication.h : header file // #include "BufferedSocket.h" #include "Ivy.h" class Regexp; ///////////////////////////////////////////////////////////////////////////// // IvyApplication command target class IvyApplication : public CBufferedSocket { // Attributes public: typedef enum { Bye, /* quit l'application ( non utilise ) */ AddRegexp, /* expression reguliere d'un client */ Msg, /* message reel */ Error, /* error message */ DelRegexp, /* Remove expression reguliere */ EndRegexp, /* end of the regexp list */ StartRegexp, /* debut des expressions */ DirectMsg, /* message direct a destination de l'appli */ Die /* demande de terminaison de l'appli */ }MsgType; // Operations public: IvyApplication(Ivy *bus); virtual ~IvyApplication(); // Overrides public: BOOL SameApplication( IvyApplication *app ); UINT remoteService; const char *GetName(void); inline Ivy *GetBus(void){ return bus;}; int SendMsg( const char *message ); void SendMsg( MsgType msg, int id, const char * arg = NULL); UINT Create(); void OnReceive( char *line ); void Create( const char * host, UINT &port ); virtual void OnAccept(int nErrorCode); virtual void OnClose(int nErrorCode); // Implementation protected: string appname; bool AppConnectedCallbackCalled; Ivy *bus; /* liste des souscriptions remote */ typedef vector RegexpVector; RegexpVector regexp_in; friend class Ivy; };