summaryrefslogtreecommitdiff
path: root/TAO/tao/CurrentS.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/CurrentS.cpp')
-rw-r--r--TAO/tao/CurrentS.cpp47
1 files changed, 46 insertions, 1 deletions
diff --git a/TAO/tao/CurrentS.cpp b/TAO/tao/CurrentS.cpp
index faa403a31aa..21c556940be 100644
--- a/TAO/tao/CurrentS.cpp
+++ b/TAO/tao/CurrentS.cpp
@@ -16,14 +16,59 @@
ACE_RCSID(tao, CurrentS, "$Id$")
+static const TAO_operation_db_entry CORBA_Current_operations [] = {
+ {"_is_a", &POA_CORBA::Current::_is_a_skel}
+};
+
+static const CORBA::Long _tao_CORBA_Current_optable_size = sizeof (ACE_Hash_Map_Entry<const char *, TAO_Skeleton>) * (3);
+static char _tao_CORBA_Current_optable_pool [_tao_CORBA_Current_optable_size];
+static ACE_Static_Allocator_Base _tao_CORBA_Current_allocator (_tao_CORBA_Current_optable_pool, _tao_CORBA_Current_optable_size);
+TAO_Dynamic_Hash_OpTable tao_CORBA_Current_optable (CORBA_Current_operations, 1, 2, &_tao_CORBA_Current_allocator);
+// skeleton constructor
POA_CORBA::Current::Current (void)
{
+ this->optable_ = &tao_CORBA_Current_optable;
}
// skeleton destructor
POA_CORBA::Current::~Current (void)
{
}
+void POA_CORBA::Current::_is_a_skel (
+ CORBA::ServerRequest &_tao_server_request,
+ void * _tao_object_reference,
+ void * /*context*/,
+ CORBA::Environment &_tao_environment
+ )
+{
+ static const TAO_Param_Data_Skel CORBA_Current_is_a_paramdata [] =
+ {
+ {CORBA::_tc_boolean, 0, 0},
+ {CORBA::_tc_string, CORBA::ARG_IN, 0}
+ };
+ static const TAO_Call_Data_Skel CORBA_Current_is_a_calldata =
+ {"_is_a", 1, 2, CORBA_Current_is_a_paramdata};
+ // CORBA::Environment _tao_skel_environment;
+ POA_CORBA::Current_ptr _tao_impl = (POA_CORBA::Current_ptr) _tao_object_reference;
+ CORBA::Boolean _tao_retval;
+ char *_tao_value = 0;
+ _tao_server_request.demarshal (
+ _tao_environment,
+ &CORBA_Current_is_a_calldata,
+ &_tao_retval,
+ &_tao_value
+ );
+ if (_tao_environment.exception () != 0) return;
+ _tao_retval = _tao_impl->_is_a (_tao_value, _tao_environment);
+ _tao_server_request.marshal (
+ _tao_environment,
+ // _tao_skel_environment,
+ &CORBA_Current_is_a_calldata,
+ &_tao_retval,
+ &_tao_value
+ );
+ CORBA::string_free (_tao_value);
+}
CORBA::Boolean POA_CORBA::Current::_is_a (
const char* value,
@@ -56,7 +101,7 @@ void POA_CORBA::Current::_dispatch (CORBA::ServerRequest &req, void *context, CO
// find the skeleton corresponding to this opname
if (this->_find (opname, skel) == -1)
{
- env.exception (new CORBA_BAD_OPERATION ());
+ env.exception (new CORBA_BAD_OPERATION (CORBA::COMPLETED_NO));
ACE_ERROR ((LM_ERROR, "Bad operation <%s>\n", opname));
}
else