summaryrefslogtreecommitdiff
path: root/TAO/tao/operation_details.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/operation_details.cpp')
-rw-r--r--TAO/tao/operation_details.cpp58
1 files changed, 56 insertions, 2 deletions
diff --git a/TAO/tao/operation_details.cpp b/TAO/tao/operation_details.cpp
index 5f932f8da23..7b64ca00a7a 100644
--- a/TAO/tao/operation_details.cpp
+++ b/TAO/tao/operation_details.cpp
@@ -1,6 +1,7 @@
//$Id$
-#include "tao/operation_details.h"
-#include "tao/Stub.h"
+#include "operation_details.h"
+#include "Stub.h"
+#include "Argument.h"
#if !defined (__ACE_INLINE__)
# include "tao/operation_details.i"
@@ -39,3 +40,56 @@ TAO_Operation_Details::corba_exception (const char *id
CORBA::COMPLETED_YES),
0);
}
+
+
+bool
+TAO_Operation_Details::marshal_args (TAO_OutputCDR &cdr)
+{
+ for (int i = 0; i != this->num_args_; ++i)
+ {
+ if (!((*this->args_[i]).marshal (cdr)))
+ return false;
+ }
+
+ return true;
+}
+
+bool
+TAO_Operation_Details::demarshal_args (TAO_InputCDR &cdr)
+{
+ for (int i = 0; i != this->num_args_; ++i)
+ {
+ if (!((*this->args_[i]).demarshal (cdr)))
+ return false;
+ }
+
+ return true;
+}
+
+bool
+TAO_Operation_Details::parameter_list (Dynamic::ParameterList &list)
+{
+ list.length (this->num_args_);
+
+ for (int i = 0; i != this->num_args_; ++i)
+ (*this->args_[i]).interceptor_param (list[i]);
+
+ return true;
+}
+
+
+bool
+TAO_Operation_Details::exception_list (Dynamic::ExceptionList &list)
+{
+ /*if (this->ex_count_)
+ {
+ list.length (this->ex_count_);
+
+ for (int i = 0; i != this->ex_count_; ++i)
+ {
+ if (!((*this->args_[i]).interceptor_param (list[i])))
+ return false;
+ }
+ }*/
+ return true;
+}