diff options
-rw-r--r-- | TAO/tests/OBV/Factory/FactoryC_impl.cpp | 51 | ||||
-rw-r--r-- | TAO/tests/OBV/Factory/FactoryC_impl.h | 60 | ||||
-rw-r--r-- | TAO/tests/OBV/Factory/FactoryS_impl.cpp | 55 | ||||
-rw-r--r-- | TAO/tests/OBV/Factory/FactoryS_impl.h | 51 |
4 files changed, 217 insertions, 0 deletions
diff --git a/TAO/tests/OBV/Factory/FactoryC_impl.cpp b/TAO/tests/OBV/Factory/FactoryC_impl.cpp new file mode 100644 index 00000000000..22601c8537c --- /dev/null +++ b/TAO/tests/OBV/Factory/FactoryC_impl.cpp @@ -0,0 +1,51 @@ +// $Id$ + +#include "FactoryC_impl.h" + +ACE_RCSID(Factory, FactoryC_impl, "$Id$") + +OBV_FactoryTest::Value2* +Value2_init_impl::create_default (CORBA::ULong id) +{ + OBV_FactoryTest::Value2* ret_val = 0; + ACE_NEW_RETURN (ret_val, + Value2_impl, + 0); + + if (ret_val) + { + ret_val->id (id); + } + + return ret_val; +} + +OBV_FactoryTest::Value2* +Value2_init_impl::create ( + CORBA::ULong id, + const OBV_FactoryTest::BaseValue::BV_Data & data) +{ + OBV_FactoryTest::Value2* ret_val = 0; + ACE_NEW_RETURN (ret_val, + Value2_impl, + 0); + + if (ret_val) + { + ret_val->id (id); + ret_val->data (data); + } + + return ret_val; +} + +CORBA_ValueBase* +Value2_init_impl::create_for_unmarshal (void) +{ + OBV_FactoryTest::Value2* ret_val = 0; + ACE_NEW_RETURN (ret_val, + Value2_impl, + 0); + + return ret_val; +} diff --git a/TAO/tests/OBV/Factory/FactoryC_impl.h b/TAO/tests/OBV/Factory/FactoryC_impl.h new file mode 100644 index 00000000000..61423429da9 --- /dev/null +++ b/TAO/tests/OBV/Factory/FactoryC_impl.h @@ -0,0 +1,60 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/OBV/Factory +// +// = FILENAME +// FactoryC_impl.h +// +// = AUTHOR +// Boris Kolpackov <bosk@ipmce.ru> +// +// ============================================================================ + +#ifndef TAO_FACTORY_FACTORY_C_IMPL_H +#define TAO_FACTORY_FACTORY_C_IMPL_H + +#include "FactoryC.h" + +// Just need to mix-in RefCounter +class Value2_impl : public virtual OBV_OBV_FactoryTest::Value2, + public virtual CORBA_DefaultValueRefCountBase +{ + // = TITLE + // Value2 implementation + // + // = DESCRIPTION + // Implements the Value2 valuetype + // + +}; + +// Factory implementation +class Value2_init_impl : public OBV_FactoryTest::Value2_init +{ + // = TITLE + // OBV factory implementation + // + // = DESCRIPTION + // Implements the Value2 factory implementation + // +public: + + virtual OBV_FactoryTest::Value2* create_default ( + CORBA::ULong id + ); + + virtual OBV_FactoryTest::Value2* create ( + CORBA::ULong id, + const OBV_FactoryTest::BaseValue::BV_Data & data + ); + +public: + + virtual CORBA_ValueBase* create_for_unmarshal (void); + +}; + +#endif /* TAO_FACTORY_FACTORY_C_IMPL_H */ diff --git a/TAO/tests/OBV/Factory/FactoryS_impl.cpp b/TAO/tests/OBV/Factory/FactoryS_impl.cpp new file mode 100644 index 00000000000..f9f80700863 --- /dev/null +++ b/TAO/tests/OBV/Factory/FactoryS_impl.cpp @@ -0,0 +1,55 @@ +// $Id$ + +#include "FactoryC_impl.h" +#include "FactoryS_impl.h" + + +ACE_RCSID(Factory, FactoryS_impl, "$Id$") + +Test_impl::Test_impl (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +OBV_FactoryTest::BaseValue * +Test_impl::get_base_value (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + OBV_FactoryTest::BaseValue* ret_val = 0; + ACE_NEW_RETURN (ret_val, + OBV_OBV_FactoryTest::BaseValue, + 0); + + return ret_val; +} + +OBV_FactoryTest::Value1 * +Test_impl::get_value1 (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + OBV_FactoryTest::Value1* ret_val = 0; + ACE_NEW_RETURN (ret_val, + OBV_OBV_FactoryTest::Value1, + 0); + + return ret_val; +} + +OBV_FactoryTest::Value2 * +Test_impl::get_value2 (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + OBV_FactoryTest::Value2* ret_val = 0; + ACE_NEW_RETURN (ret_val, + Value2_impl, + 0); + + return ret_val; +} + +void +Test_impl::shutdown (CORBA::Environment& ACE_TRY_ENV) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->orb_->shutdown (0, ACE_TRY_ENV); +} diff --git a/TAO/tests/OBV/Factory/FactoryS_impl.h b/TAO/tests/OBV/Factory/FactoryS_impl.h new file mode 100644 index 00000000000..48b23d975c7 --- /dev/null +++ b/TAO/tests/OBV/Factory/FactoryS_impl.h @@ -0,0 +1,51 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/OBV/Factory +// +// = FILENAME +// FactoryS_impl.h +// +// = AUTHOR +// Boris Kolpackov <bosk@ipmce.ru> +// +// ============================================================================ + +#ifndef TAO_FACTORY_S_IMPL_H +#define TAO_FACTORY_S_IMPL_H + +#include "FactoryS.h" + +class Test_impl : public POA_OBV_FactoryTest::Test +{ + // = TITLE + // Implementation of Test interface + // + // = DESCRIPTION + // This interface is provided to produce valuetypes and test + // marshaling + // +public: + Test_impl (CORBA::ORB_ptr orb); + // ctor + + virtual OBV_FactoryTest::BaseValue * get_base_value (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual OBV_FactoryTest::Value1 * get_value1 (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual OBV_FactoryTest::Value2 * get_value2 (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + + virtual void shutdown (CORBA::Environment&) + ACE_THROW_SPEC ((CORBA::SystemException)); + +private: + CORBA::ORB_var orb_; + // The ORB +}; + +#endif /* TAO_FACTORY_S_IMPL_H */ |