/* -*- C++ -*- */ // $Id$ // // ============================================================================ // // = LIBRARY // ORBSVCS Real-time Event Channel examples // // = FILENAME // Consumer // // = AUTHOR // Carlos O'Ryan (coryan@cs.wustl.edu) // // ============================================================================ #ifndef CONSUMER_H #define CONSUMER_H #include "orbsvcs/RtecEventCommS.h" #include "orbsvcs/RtecEventChannelAdminC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ class Consumer : public POA_RtecEventComm::PushConsumer { // = TITLE // Simple consumer object // // = DESCRIPTION // This class is a consumer of events. // It simply subscribes to one event type. // public: Consumer (void); // Constructor void connect (RtecEventChannelAdmin::ConsumerAdmin_ptr consumer_admin ACE_ENV_ARG_DECL); // Connect to the Event Channel void disconnect (ACE_ENV_SINGLE_ARG_DECL); // Disconnect from the event channel // = The RtecEventComm::PushConsumer methods virtual void push (const RtecEventComm::EventSet& events ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); virtual void disconnect_push_consumer (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException)); // The skeleton methods. private: CORBA::ULong event_count_; // Keep track of the number of events received. RtecEventChannelAdmin::ProxyPushSupplier_var proxy_; // The proxy }; #endif /* CONSUMER_H */