00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef TAO_CEC_DISPATCHING_H
00015 #define TAO_CEC_DISPATCHING_H
00016
00017 #include "ace/pre.h"
00018
00019 #include "orbsvcs/CosEventCommC.h"
00020
00021 #include "orbsvcs/CosEvent/event_serv_export.h"
00022
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif
00026
00027 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00028
00029 class TAO_CEC_ProxyPushSupplier;
00030 #if defined (TAO_HAS_TYPED_EVENT_CHANNEL)
00031 class TAO_CEC_TypedEvent;
00032 #endif
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 class TAO_Event_Serv_Export TAO_CEC_Dispatching
00046 {
00047 public:
00048
00049 virtual ~TAO_CEC_Dispatching (void);
00050
00051
00052
00053 virtual void activate (void) = 0;
00054
00055
00056
00057
00058
00059
00060 virtual void shutdown (void) = 0;
00061
00062
00063 virtual void push (TAO_CEC_ProxyPushSupplier *proxy,
00064 const CORBA::Any &event) = 0;
00065 virtual void push_nocopy (TAO_CEC_ProxyPushSupplier *proxy,
00066 CORBA::Any &event) = 0;
00067 #if defined (TAO_HAS_TYPED_EVENT_CHANNEL)
00068 virtual void invoke (TAO_CEC_ProxyPushSupplier *proxy,
00069 const TAO_CEC_TypedEvent &typed_event) = 0;
00070 virtual void invoke_nocopy (TAO_CEC_ProxyPushSupplier *proxy,
00071 TAO_CEC_TypedEvent &typed_event) = 0;
00072 #endif
00073 };
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085 class TAO_Event_Serv_Export TAO_CEC_Reactive_Dispatching : public TAO_CEC_Dispatching
00086 {
00087 public:
00088
00089
00090 TAO_CEC_Reactive_Dispatching (void);
00091
00092
00093 virtual void activate (void);
00094 virtual void shutdown (void);
00095 virtual void push (TAO_CEC_ProxyPushSupplier *proxy,
00096 const CORBA::Any &event);
00097 virtual void push_nocopy (TAO_CEC_ProxyPushSupplier *proxy,
00098 CORBA::Any &event);
00099 #if defined (TAO_HAS_TYPED_EVENT_CHANNEL)
00100 virtual void invoke (TAO_CEC_ProxyPushSupplier *proxy,
00101 const TAO_CEC_TypedEvent &typed_event);
00102 virtual void invoke_nocopy (TAO_CEC_ProxyPushSupplier *proxy,
00103 TAO_CEC_TypedEvent &typed_event);
00104 #endif
00105 };
00106
00107 TAO_END_VERSIONED_NAMESPACE_DECL
00108
00109 #include "ace/post.h"
00110
00111 #endif