summaryrefslogtreecommitdiff
path: root/DAnCE/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'DAnCE/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp')
-rw-r--r--DAnCE/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp141
1 files changed, 0 insertions, 141 deletions
diff --git a/DAnCE/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp b/DAnCE/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
deleted file mode 100644
index 5f92f94f67b..00000000000
--- a/DAnCE/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "DynStruct_Handler.h"
-#include "DynAny_Handler.h"
-#include "dance/Logger/Log_Macros.h"
-#include "Basic_Deployment_Data.hpp"
-#include "Common.h"
-
-#include "ace/Null_Mutex.h"
-#include "tao/IFR_Client/IFR_BasicC.h"
-#include "tao/AnyTypeCode/Struct_TypeCode.h"
-
-namespace DAnCE
-{
- namespace Config_Handlers
- {
- void create_type_map (const DataType &type,
- std::map <std::basic_string <ACE_TCHAR>,
- DataType const *> &dt_map)
- {
- DANCE_TRACE("Config_Handlers::create_type_map");
-
- for (StructType::member_const_iterator i =
- type.struct_ ().begin_member ();
- i != type.struct_ ().end_member (); ++i)
- {
- dt_map[(*i)->name ()] = &((*i)->type ());
- }
- }
-
- DynamicAny::DynAny_ptr
- DynStruct_Handler::extract_into_dynany (const DataType &type,
- const DataValue &value,
- CORBA::TypeCode_ptr req_tc)
- {
- DANCE_TRACE("DynStruct_Handler::extract_into_dynany");
-
- try
- {
- CORBA::TypeCode_var tc;
-
- if (req_tc)
- tc = req_tc;
- else
- tc = DynStruct_Handler::create_typecode (type);
-
- std::map <std::basic_string<ACE_TCHAR>, DataType const*> dt_map;
- create_type_map (type, dt_map);
-
- // Make the actual DynStruct
- DynamicAny::DynAny_var temp =
- DYNANY_HANDLER->daf ()->create_dyn_any_from_type_code (tc);
- DynamicAny::DynStruct_var retval =
- DynamicAny::DynStruct::_narrow (temp.in ());
-
- CORBA::ULong pos (0);
- DynamicAny::NameDynAnyPairSeq values;
- values.length (value.count_member ());
-
- for (DataValue::member_const_iterator i = value.begin_member ();
- i != value.end_member (); ++i)
- {
- values[pos].id =
- ACE_TEXT_ALWAYS_CHAR ((*i)->name ().c_str ());
- values[pos].value =
- DYNANY_HANDLER->extract_into_dynany (*dt_map[(*i)->name ()],
- (*i)->value ());
- ++pos;
- }
-
- retval->set_members_as_dyn_any (values);
-
- return retval._retn ();
- }
- catch (Config_Error &ex)
- {
- if (type.struct_p ())
- ex.add_name (type.struct_ ().typeId ());
- throw ex;
- }
- catch (...)
- {
- throw Config_Error (type.struct_ ().typeId (),
- ACE_TEXT ("Unknown exception"));
- }
- }
-
-
- void
- DynStruct_Handler::extract_out_of_dynany (const DynamicAny::DynAny_ptr)
- {
- DANCE_TRACE("DynStruct_Handler::extract_out_of_dynany");
-
- DANCE_DEBUG (DANCE_LOG_NONFATAL_ERROR,
- (LM_ERROR, ACE_TEXT ("Extracting Structs not yet supported\n")));
- }
-
- CORBA::TypeCode_ptr
- DynStruct_Handler::create_typecode (const DataType &type)
- {
- DANCE_TRACE("DynStruct_Handler::create_typecode");
-
- if (!type.struct_p ())
- {
- DANCE_DEBUG (DANCE_LOG_TERMINAL_ERROR,
- (LM_ERROR,
- ACE_TEXT ("ERROR: Struct type description required\n")));
- throw Config_Error (ACE_TEXT (""),
- ACE_TEXT ("Expected struct type information, tc_kind may be"\
- "incorrect\n"));
- }
-
- std::basic_string<ACE_TCHAR> rid (type.struct_ ().typeId ());
- std::basic_string<ACE_TCHAR> name (type.struct_ ().name ());
-
- CORBA::StructMemberSeq members;
- members.length (type.struct_ ().count_member ());
- CORBA::ULong pos (0);
-
- for (StructType::member_const_iterator i =
- type.struct_ ().begin_member ();
- i != type.struct_ ().end_member (); ++i)
- {
- members[pos].name = ACE_TEXT_ALWAYS_CHAR ((*i)->name ().c_str ());
- members[pos].type = DYNANY_HANDLER->create_typecode ((*i)->type ());
- ++pos;
- }
-
- CORBA::TypeCode_var tc =
- DYNANY_HANDLER->orb ()->create_struct_tc (
- ACE_TEXT_ALWAYS_CHAR (rid.c_str ()),
- ACE_TEXT_ALWAYS_CHAR (name.c_str ()),
- members);
-
- DYNANY_HANDLER->register_typecode (type.struct_ ().typeId (), tc.in ());
-
- return tc._retn ();
- }
- }
-}
-
-
-