summaryrefslogtreecommitdiff
path: root/trunk/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp')
-rw-r--r--trunk/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/trunk/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp b/trunk/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp
new file mode 100644
index 00000000000..fdd8b4e2671
--- /dev/null
+++ b/trunk/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_ClientEngine.cpp
@@ -0,0 +1,92 @@
+// $Id$
+#include "Foo_C_ClientEngine.h"
+#include "AppHelper.h"
+#include "ace/Log_Msg.h"
+
+
+Foo_C_ClientEngine::Foo_C_ClientEngine(Foo_C_ptr obj,
+ unsigned client_id)
+ : obj_(Foo_C::_duplicate(obj)),
+ client_id_ (client_id)
+{
+}
+
+
+Foo_C_ClientEngine::~Foo_C_ClientEngine()
+{
+}
+
+
+bool
+Foo_C_ClientEngine::execute(ACE_ENV_SINGLE_ARG_DECL)
+{
+ // Verify the return values and return the results.
+ bool check_validity = true;
+
+ // Make sure the connection is established before making
+ // remote invocations.
+ if (AppHelper::validate_connection (this->obj_.in ()) == false)
+ {
+ ACE_ERROR((LM_ERROR, "(%P|%t)Foo_A_ClientEngine::execute " \
+ "client %d connect failed.\n", this->client_id_));
+ return false;
+ }
+
+ CORBA::Long i = this->client_id_;
+
+ this->obj_->op1(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (false);
+
+ this->obj_->op2(i ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (false);
+
+ CORBA::Long value = this->obj_->op3(i ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (false);
+
+ if (value != i)
+ {
+ check_validity = false;
+ }
+
+ for (CORBA::Long j = 1; j <= 5; j++)
+ {
+ this->obj_->op4(495 + (i * 5) + j ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (false);
+ }
+
+ bool caught_exception = false;
+
+ ACE_TRY
+ {
+ this->obj_->op5(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCH (FooException, ex)
+ {
+ // Expected
+ caught_exception = true;
+ }
+ ACE_ENDTRY;
+
+ if (! caught_exception)
+ {
+ check_validity = false;
+ }
+
+ this->obj_->done(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (false);
+
+ return check_validity;
+}
+
+
+void
+Foo_C_ClientEngine::expected_results(Foo_C_Statistics& stats)
+{
+ // This ClientEngine is used by remote clients.
+ stats.expected(1, 1, true);
+ stats.expected(2, 1, true);
+ stats.expected(3, 1, true);
+ stats.expected(4, 5, true);
+ stats.expected(5, 1, true);
+}