diff options
author | bustico | 2006-06-01 12:08:21 +0000 |
---|---|---|
committer | bustico | 2006-06-01 12:08:21 +0000 |
commit | 0af51dbec459d2555a5597dc092c7d012f3df250 (patch) | |
tree | 5a4a4c69c439dc9508bac72bb3f1c533389482f1 /IvyCallback.h | |
parent | 9ac55df54fbcf5b17f53e38a18d538e9af074488 (diff) | |
download | ivy-cplusplus-0af51dbec459d2555a5597dc092c7d012f3df250.zip ivy-cplusplus-0af51dbec459d2555a5597dc092c7d012f3df250.tar.gz ivy-cplusplus-0af51dbec459d2555a5597dc092c7d012f3df250.tar.bz2 ivy-cplusplus-0af51dbec459d2555a5597dc092c7d012f3df250.tar.xz |
ajout du filtrage statique des classes de message
Diffstat (limited to 'IvyCallback.h')
-rw-r--r-- | IvyCallback.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/IvyCallback.h b/IvyCallback.h index 1d47dc4..aa866b8 100644 --- a/IvyCallback.h +++ b/IvyCallback.h @@ -120,6 +120,65 @@ public: /* raccourci d'ecriture */ #define BUS_APPLICATION_CALLBACK( conn, disconn ) new IvyApplicationCallbackFunction( conn, disconn ) }; + +/* Binding Callback */ + +class IvyBindingCallback { +public: + virtual void OnAddBind (IvyApplication *app, int id, const char * regexp) = 0; + virtual void OnRemoveBind (IvyApplication *app, int id, const char * regexp) = 0; + virtual void OnFilterBind (IvyApplication *app, int id, const char * regexp) = 0; + virtual ~IvyBindingCallback() + { + } +}; + +class IvyBindingNullCallback : public IvyBindingCallback { +public: + virtual void OnAddBind (IvyApplication *app, int id, const char * regexp) + {}; + virtual void OnRemoveBind (IvyApplication *app, int id, const char * regexp) + {}; + virtual void OnFilterBind (IvyApplication *app, int id, const char * regexp) + {}; + virtual ~IvyBindingNullCallback() + { + } +}; +// Static function CB +class IvyBindingCallbackFunction: public IvyBindingCallback { +public: + typedef void ( *IvyBindingCallback_fun )( IvyApplication *app, int id, const char * regexp ); + IvyBindingCallback_fun BindingAddCb; + IvyBindingCallback_fun BindingRemoveCb; + IvyBindingCallback_fun BindingFilterCb; + +public: + IvyBindingCallbackFunction ( IvyBindingCallback_fun add_cb, IvyBindingCallback_fun remove_cb, IvyBindingCallback_fun filter_cb ) + : BindingAddCb( add_cb ), BindingRemoveCb( remove_cb ), BindingFilterCb( filter_cb ) + { + } + ~IvyBindingCallbackFunction () + { + } + virtual void OnAddBind (IvyApplication *app, int id, const char * regexp) + { + if(BindingAddCb) (*BindingAddCb) (app, id, regexp); + }; + virtual void OnRemoveBind (IvyApplication *app, int id, const char * regexp) + { + if (BindingRemoveCb) (*BindingRemoveCb) (app, id, regexp); + }; + virtual void OnFilterBind (IvyApplication *app, int id, const char * regexp) + { + if(BindingFilterCb ) (*BindingFilterCb) (app, id, regexp); + }; + +/* raccourci d'ecriture */ +#define BUS_BINDING_CALLBACK( add, remove, filter ) new IvyBindingCallbackFunction( add, remove, filter ) +}; + + /* Callback for the die Message */ class IvyDieCallback { public: @@ -130,3 +189,4 @@ public: }; #endif // __IVYXTLOOP_H__ + |