summaryrefslogtreecommitdiff
path: root/TAO/tests/Big_Oneways/Session_Control.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Big_Oneways/Session_Control.h')
-rw-r--r--TAO/tests/Big_Oneways/Session_Control.h45
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 */