diff options
Diffstat (limited to 'TAO/tao/operation_details.cpp')
-rw-r--r-- | TAO/tao/operation_details.cpp | 58 |
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; +} |