diff options
Diffstat (limited to 'TAO/tests/Big_Oneways/Session_Control.h')
-rw-r--r-- | TAO/tests/Big_Oneways/Session_Control.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/TAO/tests/Big_Oneways/Session_Control.h b/TAO/tests/Big_Oneways/Session_Control.h new file mode 100644 index 00000000000..2f0232be6d8 --- /dev/null +++ b/TAO/tests/Big_Oneways/Session_Control.h @@ -0,0 +1,45 @@ +// +// $Id$ +// + +#ifndef BIG_ONEWAYS_SESSION_CONTROL_H +#define BIG_ONEWAYS_SESSION_CONTROL_H +#include /**/ "ace/pre.h" + +#include "TestS.h" + +/// Implement the Test::Session_Control interface +class Session_Control + : public virtual POA_Test::Session_Control +{ +public: + /// Constructor + /** + * @param session_count Number of session objects in the experiment. + */ + Session_Control (CORBA::ULong session_count); + + /// Destructor + virtual ~Session_Control (void); + + /// Return 1 when all sessions have finished + int all_sessions_finished (void) const; + + // = The skeleton methods + virtual void session_finished (CORBA::Boolean success + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + /// Synchronize the internal state + ACE_SYNCH_MUTEX mutex_; + + /// The type of test + CORBA::ULong session_count_; + + /// Set to falso if any session reported a failure + CORBA::Boolean success_; +}; + +#include /**/ "ace/post.h" +#endif /* BIG_ONEWAYS_SESSION_CONTROL_H */ |