summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/IFR_Service/PrimitiveDef_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/IFR_Service/PrimitiveDef_i.cpp')
-rw-r--r--TAO/orbsvcs/IFR_Service/PrimitiveDef_i.cpp132
1 files changed, 132 insertions, 0 deletions
diff --git a/TAO/orbsvcs/IFR_Service/PrimitiveDef_i.cpp b/TAO/orbsvcs/IFR_Service/PrimitiveDef_i.cpp
new file mode 100644
index 00000000000..6e200e14027
--- /dev/null
+++ b/TAO/orbsvcs/IFR_Service/PrimitiveDef_i.cpp
@@ -0,0 +1,132 @@
+/* -*- C++ -*- */
+// $Id$
+
+#include "Repository_i.h"
+#include "PrimitiveDef_i.h"
+
+ACE_RCSID(IFR_Service, PrimitiveDef_i, "$Id$")
+
+TAO_PrimitiveDef_i::TAO_PrimitiveDef_i (
+ TAO_Repository_i *repo,
+ ACE_Configuration_Section_Key section_key
+ )
+ : TAO_IRObject_i (repo, section_key),
+ TAO_IDLType_i (repo, section_key)
+{
+}
+
+TAO_PrimitiveDef_i::~TAO_PrimitiveDef_i (void)
+{
+}
+
+CORBA::DefinitionKind
+TAO_PrimitiveDef_i::def_kind (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return CORBA::dk_Primitive;
+}
+
+void
+TAO_PrimitiveDef_i::destroy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->destroy_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+}
+
+void
+TAO_PrimitiveDef_i::destroy_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_THROW (CORBA::BAD_INV_ORDER (2, CORBA::COMPLETED_NO));
+}
+
+CORBA::TypeCode_ptr
+TAO_PrimitiveDef_i::type (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_IFR_READ_GUARD_RETURN (CORBA::TypeCode::_nil ());
+
+ return this->type_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+}
+
+CORBA::TypeCode_ptr
+TAO_PrimitiveDef_i::type_i (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ u_int pkind = 0;
+ this->repo_->config ()->get_integer_value (this->section_key_,
+ "pkind",
+ pkind);
+
+ switch (ACE_static_cast (CORBA::PrimitiveKind, pkind))
+ {
+ case CORBA::pk_null:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_null);
+ case CORBA::pk_void:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_void);
+ case CORBA::pk_short:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_short);
+ case CORBA::pk_long:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_long);
+ case CORBA::pk_ushort:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_ushort);
+ case CORBA::pk_ulong:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_ulong);
+ case CORBA::pk_float:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_float);
+ case CORBA::pk_double:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_double);
+ case CORBA::pk_boolean:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_boolean);
+ case CORBA::pk_char:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_char);
+ case CORBA::pk_octet:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_octet);
+ case CORBA::pk_any:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_any);
+ case CORBA::pk_TypeCode:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_TypeCode);
+ case CORBA::pk_Principal:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_Principal);
+ case CORBA::pk_string:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_string);
+ case CORBA::pk_objref:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_Object);
+ case CORBA::pk_longlong:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_longlong);
+ case CORBA::pk_ulonglong:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_ulonglong);
+ case CORBA::pk_longdouble:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_longdouble);
+ case CORBA::pk_wchar:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_wchar);
+ case CORBA::pk_wstring:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_wstring);
+ case CORBA::pk_value_base:
+ // TODO - we haven't added this typecode constant yet.
+ default:
+ return CORBA::TypeCode::_duplicate (CORBA::_tc_null);
+ }
+}
+
+CORBA::PrimitiveKind
+TAO_PrimitiveDef_i::kind (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_IFR_READ_GUARD_RETURN (CORBA::pk_null);
+
+ return this->kind_i (ACE_ENV_SINGLE_ARG_PARAMETER);
+}
+
+CORBA::PrimitiveKind
+TAO_PrimitiveDef_i::kind_i (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ u_int pkind = 0;
+ this->repo_->config ()->get_integer_value (this->section_key_,
+ "pkind",
+ pkind);
+
+ return ACE_static_cast (CORBA::PrimitiveKind, pkind);
+}
+