summaryrefslogtreecommitdiff
path: root/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp')
-rw-r--r--TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp
new file mode 100644
index 00000000000..bb0d1cf1bf7
--- /dev/null
+++ b/TAO/tests/CSD_Strategy_Tests/TP_Foo_A/Foo_A_ClientEngine.cpp
@@ -0,0 +1,94 @@
+// $Id$
+#include "Foo_A_ClientEngine.h"
+#include "Foo_A_Statistics.h"
+#include "TestAppExceptionC.h"
+#include "AppHelper.h"
+#include "ace/Log_Msg.h"
+
+Foo_A_ClientEngine::Foo_A_ClientEngine(Foo_A_ptr obj,
+ unsigned client_id,
+ bool collocated)
+ : obj_(Foo_A::_duplicate(obj)),
+ client_id_ (client_id),
+ collocated_ (collocated)
+{
+}
+
+
+Foo_A_ClientEngine::~Foo_A_ClientEngine()
+{
+}
+
+
+bool
+Foo_A_ClientEngine::execute(ACE_ENV_SINGLE_ARG_DECL)
+{
+ // 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;
+ }
+
+ // Verify the return values and return the results.
+ bool check_validity = true;
+
+ 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_A_ClientEngine::expected_results(Foo_A_Statistics& stats)
+{
+ stats.expected(1, 1);
+ stats.expected(2, 1);
+ stats.expected(3, 1);
+ stats.expected(4, 5);
+ stats.expected(5, 1);
+}