diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp new file mode 100644 index 00000000000..9c7831e7387 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp @@ -0,0 +1,62 @@ +// $Id$ + +#include "orbsvcs/IFRService/AbstractInterfaceDef_i.h" +#include "orbsvcs/IFRService/Repository_i.h" + +ACE_RCSID (IFRService, + AbstractInterfaceDef_i, + "$Id$") + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +TAO_AbstractInterfaceDef_i::TAO_AbstractInterfaceDef_i ( + TAO_Repository_i *repo + ) + : TAO_IRObject_i (repo), + TAO_Container_i (repo), + TAO_Contained_i (repo), + TAO_IDLType_i (repo), + TAO_InterfaceDef_i (repo) +{ +} + +TAO_AbstractInterfaceDef_i::~TAO_AbstractInterfaceDef_i (void) +{ +} + +CORBA::DefinitionKind +TAO_AbstractInterfaceDef_i::def_kind (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return CORBA::dk_AbstractInterface; +} + +CORBA::Boolean +TAO_AbstractInterfaceDef_i::is_a (const char *interface_id + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + TAO_IFR_READ_GUARD_RETURN (0); + + this->update_key (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + return this->is_a_i (interface_id + ACE_ENV_ARG_PARAMETER); +} + +CORBA::Boolean +TAO_AbstractInterfaceDef_i::is_a_i (const char *interface_id + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (ACE_OS::strcmp (interface_id, "IDL:omg.org/CORBA/AbstractBase:1.0") == 0) + { + return 1; + } + + return this->TAO_InterfaceDef_i::is_a_i (interface_id + ACE_ENV_ARG_PARAMETER); +} + +TAO_END_VERSIONED_NAMESPACE_DECL |