summaryrefslogtreecommitdiff
path: root/ACE/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.h')
-rw-r--r--ACE/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/ACE/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.h b/ACE/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.h
new file mode 100644
index 00000000000..9aa13150f4e
--- /dev/null
+++ b/ACE/TAO/performance-tests/CSD_Strategy/TestApps/ServerApp.h
@@ -0,0 +1,94 @@
+// This may look like C, but it's really -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ServerApp.h
+ *
+ * $Id$
+ *
+ * @author Tim Bradley <bradley_t@ociweb.com>
+ */
+//=============================================================================
+#ifndef SERVERAPP_H
+#define SERVERAPP_H
+
+#include "TestInf/TestAppBase.h"
+#include "TestInf/ServantList_T.h"
+#include "TestInf/ClientTask.h"
+#include "TestServant/Foo_i.h"
+#include "TestServant/Foo_Statistics.h"
+#include "tao/CSD_ThreadPool/CSD_TP_Strategy.h"
+#include "ace/SString.h"
+
+
+class ServerApp : public TestAppBase
+{
+ public:
+
+ ServerApp();
+ virtual ~ServerApp();
+
+
+ protected:
+
+ virtual int run_i(int argc, ACE_TCHAR* argv[]);
+
+
+ private:
+
+ // These are all called, in order, by the run_i() method.
+ int init(int argc, ACE_TCHAR* argv[]);
+ void poa_setup(void);
+ void csd_setup(void);
+ void servant_setup(void);
+ void collocated_setup();
+ void poa_activate(void);
+ void run_collocated_clients(void);
+ void run_orb_event_loop(void);
+ bool check_results();
+ void cleanup();
+
+
+ // Helper methods used by the methods above.
+ int parse_args(int argc, ACE_TCHAR* argv[]);
+
+ int set_arg(unsigned& value,
+ const ACE_TCHAR* arg,
+ char opt,
+ const char* name,
+ int min = 0);
+
+ void usage_statement();
+ int arg_dependency_checks();
+
+
+ PortableServer::POA_ptr create_poa(CORBA::ORB_ptr orb,
+ const char* poa_name);
+
+ typedef ServantList<Foo_i> ServantListType;
+
+ CORBA::ORB_var orb_;
+ PortableServer::POA_var poa_;
+ TAO::CSD::TP_Strategy_Handle tp_strategy_;
+
+ ServantListType servants_;
+
+ ClientTask collocated_client_task_;
+
+ ACE_TString exe_name_;
+ ACE_TString ior_filename_prefix_;
+ unsigned num_servants_;
+ unsigned num_csd_threads_;
+ unsigned num_orb_threads_;
+ unsigned num_remote_clients_;
+ unsigned num_collocated_clients_;
+ unsigned num_loops_;
+ unsigned use_csd_;
+
+ ACE_CString scenario_id_;
+ unsigned trial_id_;
+
+ Foo_Statistics stats_;
+};
+
+#endif