summaryrefslogtreecommitdiff
path: root/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp')
-rw-r--r--TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp b/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp
new file mode 100644
index 00000000000..40ffbf190f9
--- /dev/null
+++ b/TAO/tests/CSD_Strategy_Tests/TP_Foo_C/Foo_C_cust_op2.cpp
@@ -0,0 +1,62 @@
+// $Id$
+#include "Foo_C_cust_op2.h"
+#include "Foo_C_i.h"
+#include "CancelledExceptionC.h"
+
+
+Foo_C_cust_op2::Foo_C_cust_op2(Foo_C_i* servant, long arg)
+ : TAO::CSD::TP_Custom_Request_Operation(servant),
+ arg_(arg),
+ cancelled_(false),
+ servant_(servant)
+{
+ // This try-catch block is not really necessary, but we have to add it to
+ // satisfy the non-exception builds. Since there is actually no exception
+ // raised from _add_ref, we just ignore the exception here.
+ try
+ {
+ servant_->_add_ref ();
+ }
+ catch (...)
+ {
+ }
+}
+
+
+Foo_C_cust_op2::~Foo_C_cust_op2()
+{
+ // This try-catch block is not really necessary, but we have to add it to
+ // satisfy the non-exception builds. Since there is actually no exception
+ // raised from _add_ref, we just ignore the exception here.
+ try
+ {
+ servant_->_remove_ref ();
+ }
+ catch (...)
+ {
+ }
+}
+
+
+void
+Foo_C_cust_op2::result(void)
+{
+ if (this->cancelled_)
+ {
+ throw CancelledException();
+ }
+}
+
+
+void
+Foo_C_cust_op2::execute_i()
+{
+ this->servant_->cust_op2(this->arg_);
+}
+
+
+void
+Foo_C_cust_op2::cancel_i()
+{
+ this->cancelled_ = true;
+}