summaryrefslogtreecommitdiff
path: root/TAO/performance-tests/Latency/Thread_Pool/Client_Task.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/performance-tests/Latency/Thread_Pool/Client_Task.h')
-rw-r--r--TAO/performance-tests/Latency/Thread_Pool/Client_Task.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/TAO/performance-tests/Latency/Thread_Pool/Client_Task.h b/TAO/performance-tests/Latency/Thread_Pool/Client_Task.h
new file mode 100644
index 00000000000..d9d933840c3
--- /dev/null
+++ b/TAO/performance-tests/Latency/Thread_Pool/Client_Task.h
@@ -0,0 +1,46 @@
+//
+// $Id$
+//
+
+#ifndef CLIENT_TASK_H
+#define CLIENT_TASK_H
+#include /**/ "ace/pre.h"
+
+#include "TestC.h"
+#include "ace/Task.h"
+#include "ace/Basic_Stats.h"
+
+/// Implement the Test::Client_Task interface
+class Client_Task : public ACE_Task_Base
+{
+public:
+ /// Constructor
+ Client_Task (Test::Roundtrip_ptr roundtrip,
+ int niterations);
+
+ /// Add this thread results to the global numbers and print the
+ /// per-thread results.
+ void accumulate_and_dump (ACE_Basic_Stats &totals,
+ const char *msg,
+ ACE_UINT32 gsf);
+
+ /// The service method
+ virtual int svc (void);
+
+private:
+ /// Make sure that the current thread has a connection available.
+ void validate_connection (void);
+
+private:
+ /// The object reference used for this test
+ Test::Roundtrip_var roundtrip_;
+
+ /// The number of iterations
+ int niterations_;
+
+ /// Keep track of the latency (minimum, average, maximum and jitter)
+ ACE_Basic_Stats latency_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* CLIENT_TASK_H */