diff options
Diffstat (limited to 'modules/CIAO/tests')
180 files changed, 17315 insertions, 0 deletions
diff --git a/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM b/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM new file mode 100644 index 00000000000..df98c63f06d --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM @@ -0,0 +1,93 @@ +To: ciao-users@cs.wustl.edu +Subject: RTComponentServer: Session_Container::get_objref blocks + + CIAO VERSION: 0.4.7 + TAO VERSION : 1.4.7 + ACE VERSION : 5.4.7 + + HOST MACHINE and OPERATING SYSTEM: + Intel(R) Pentium(R) D CPU 3.00GHZ + Microsoft Windows XP Professional Version 2002 Service Pack 2 + + COMPILER NAME AND VERSION (AND PATCHLEVEL): + Microsoft Visual C++ .NET 2003 + Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 13.10.3077 + + THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform- + specific file, simply state which one]: + #include "ace/config-win32.h" + + THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you + use a link to a platform-specific file, simply state which one + (unless this isn't used in this case, e.g., with Microsoft Visual + C++)]: + + CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features + ssl=0 + qos=1 + cidl=0 + rwho=0 + sctp=0 + qt=1 + + AREA/CLASS/EXAMPLE AFFECTED: + CIAO/ciao/Session_Container::get_objref + + + DOES THE PROBLEM AFFECT: + COMPILATION? + No + LINKING? + No + EXECUTION? + Yes + OTHER (please specify)? +[Please indicate whether ACE/TAO/CIAO, your application, or both are affected.] + + SYNOPSIS: + A call of Session_Container::get_objref blocks forever. + + DESCRIPTION: + I'm running two clients simultaneously callings the methods acquireSession + and releaseSession of the CORBA component TSEC_CheckPoint ( please see + sample code in TSEC_CheckPoint_exec.cpp lines 233... and 283... and also + controller.cpp line 150... ) configured with realtime policies. After the + start of the second client the component TSEC_CheckPoint blocks in the + method Session_Container::get_objref ( please see the log file + DebuggerCallStack.log ). + + The serious code line of TSEC_CheckPoint_exec.cpp is: + CORBA::Object_var obj = this->getObjRef( p_sessionImpl) ; + + If only one client is calling acquireSession every thing works fine. + But if I start a second client which is calling acquireSession then the + block happens. + + I'm using the patch from 20051612 for the files + Container_Base.cpp and Container_Base.h which I merge with the CIAO + version 047. + + If i use CIAO version < 043 everythings works fine with no blocks. + + REPEAT BY: + Please build the sample code: + - cd interfaces + - mwc.pl -type nmake + - nmake realclean clean depend all + - touch *.idl + - nmake + - cd SEC_CheckPoint + - mwc.pl -type nmake + - nmake realclean clean depend all + + Please run the sample: + - cd descriptors + - start_da.bat + - start_am.bat + - start_test.bat + - start_testcase_1.bat + - start_testcase_2.bat + + + SAMPLE FIX/WORKAROUND: +[If available ] diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl new file mode 100644 index 00000000000..83d68fc4353 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl @@ -0,0 +1,27 @@ +//$Id$ + +#ifndef TSEC_CHECKPOINT_IDL +#define TSEC_CHECKPOINT_IDL + +#include "../interfaces/ENW.idl" + + +module ENW +{ + component TSEC_CheckPoint supports ISessionService + { + provides ISessionService sessionService; + + consumes ET_LifeToken lifeTokenIn; + publishes ET_LifeToken lifeTokenOut; + + }; + + home TSEC_CheckPointHome manages TSEC_CheckPoint + { + factory new_TSEC_CheckPoint( in string Version ); + }; +}; + + +#endif // TSEC_CHECKPOINT_IDL diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc new file mode 100644 index 00000000000..9e7a1102f55 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc @@ -0,0 +1,121 @@ +//$Id$ + +project(TSEC_CheckPoint_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=TSEC_CHECKPOINT_STUB_Export \ + -Wb,stub_export_include=TSEC_CheckPoint_stub_export.h \ + -Wb,skel_export_macro=TSEC_CHECKPOINT_SVNT_Export \ + -Wb,skel_export_include=TSEC_CheckPoint_svnt_export.h \ + -Wb,exec_export_macro=TSEC_CHECKPOINT_EXEC_Export \ + -Wb,exec_export_include=TSEC_CheckPoint_exec_export.h \ + -Glfa + requires += dummy_label + + IDL_Files { + TSEC_CheckPoint.idl + } +} + +project(TSEC_CheckPoint_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += TSEC_CheckPoint_idl_gen + idlflags += -SS -St \ + -Wb,export_macro=TSEC_CHECKPOINT_EXEC_Export \ + -Wb,export_include=TSEC_CheckPoint_exec_export.h + + requires += dummy_label + IDL_Files { + TSEC_CheckPointE.idl + } +} + + +project(TSEC_CheckPoint_stub): ccm_stub, event { + after += ENW_stub TSEC_CheckPoint_idl_gen + libpaths += ../interfaces + libs += ENW_stub + sharedname = TSEC_CheckPoint_stub + dynamicflags = TSEC_CHECKPOINT_STUB_BUILD_DLL + requires += dummy_label + IDL_Files { + } + + Source_Files { + TSEC_CheckPointC.cpp + } + + Header_Files { + TSEC_CheckPointC.h + TSEC_CheckPoint_stub_export.h + } + + Inline_Files { + TSEC_CheckPointC.inl + } +} + +project(TSEC_CheckPoint_svnt) : ciao_servant, event { + after += TSEC_CheckPoint_skel TSEC_CheckPoint_exec + after += ENW_skel ENW_stub + sharedname = TSEC_CheckPoint_svnt + libpaths += ../interfaces + libs += TSEC_CheckPoint_stub TSEC_CheckPoint_exec + libs += ENW_stub ENW_skel + requires += dummy_label + dynamicflags = TSEC_CHECKPOINT_SVNT_BUILD_DLL + requires += dummy_label + IDL_Files { + } + + Source_Files { + TSEC_CheckPointS.cpp + TSEC_CheckPoint_svnt.cpp + } +} + + +project(TSEC_CheckPoint_exec) : ciao_executor, event, ccm_svnt, ciao_session_container, naming { + after += TSEC_CheckPoint_stub TSEC_CheckPoint_lem_gen + after += ENW_skel ENW_stub + requires += dummy_label + includes += ../interfaces + + sharedname = TSEC_CheckPoint_exec + libpaths += ../interfaces + libs += TSEC_CheckPoint_stub + libs += ENW_stub ENW_skel + + idlflags -= -GT + idlflags += -SS -St \ + -Wb,export_macro=TSEC_CHECKPOINT_EXEC_Export \ + -Wb,export_include=TSEC_CheckPoint_exec_export.h + dynamicflags = TSEC_CHECKPOINT_EXEC_BUILD_DLL + + IDL_Files { + TSEC_CheckPointEI.idl + } + + Source_Files { + TSEC_CheckPointEC.cpp + TSEC_CheckPointEIC.cpp + TSEC_CheckPoint_exec.cpp + } +} + + +project(TSEC_CheckPoint_controller) : ccm_stub, valuetype, event { + exename = controller + after += TSEC_CheckPoint_stub + libs += TSEC_CheckPoint_stub ENW_stub + libpaths += ../interfaces + requires += dummy_label + IDL_Files { + } + + Source_Files { + controller.cpp + } +} + + + diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl new file mode 100644 index 00000000000..9cd47181299 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl @@ -0,0 +1,19 @@ +// $Id$ + +#ifndef TSEC_CHECKPOINTEI_IDL +#define TSEC_CHECKPOINTEI_IDL + +#include "TSEC_CheckPointE.idl" + +module ENW +{ + local interface TSEC_CheckPoint_Exec : + CCM_TSEC_CheckPoint, + CCM_ISessionService, + Components::SessionComponent + { + }; + +}; + +#endif /* TSEC_CHECKPOINTEI_IDL */ diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp new file mode 100644 index 00000000000..8f2b0c02d3d --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp @@ -0,0 +1,592 @@ +//$Id$ + +//------------------------------------------------------------------- +// Includes +//------------------------------------------------------------------- + +#include "ace/Timer_Queue.h" +#include "ace/Reactor.h" +#include "ace/os_include/os_assert.h" + +#include "tao/LocalObject.h" +#include <orbsvcs/CosNamingC.h> + +#include "ciao/Version.h" +#include "ciao/Containers/Session/Session_Container.h" +#include "TSEC_CheckPoint_exec.h" +#include "TSEC_CheckPoint_svnt.h" + + +//------------------------------------------------------------------- +// Defines +//------------------------------------------------------------------- + +#define SEPARATION_LINE "----------------------------------------" \ + "----------------------------------------\n" + + +//------------------------------------------------------------------- +// Statics +//------------------------------------------------------------------- + +static const char* argv[] = +{ + "TSEC_CheckPoint" +}; + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_SessionEntry::TSEC_SessionEntry() +: _p_sessionImpl( 0 ) +{ +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_SessionEntry::TSEC_SessionEntry +( + TSEC_Session_impl* pSessionImpl, + ENW::TSession_ptr Session +) +: _p_sessionImpl( pSessionImpl ) +{ + if( !CORBA::is_nil( Session ) ) + { + _session = ENW::TSession::_duplicate( Session ); + } +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_Session_impl::TSEC_Session_impl +( + TSEC_CheckPoint_exec_i& Parent, + CORBA::Long Ident +) + : _isInUse(0),_ident( Ident ),_parent( Parent ) +{ +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_Session_impl::~TSEC_Session_impl() +{ +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +CORBA::ULong +Impl::TSEC_Session_impl::hash +( + CORBA::ULong Maximum +) +{ + CORBA::ULong hash = + static_cast <CORBA::ULong> (reinterpret_cast <ptrdiff_t> (this)); + + return hash % Maximum; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +CORBA::Long +Impl::TSEC_Session_impl::getIdent +( +) +{ + //ACE_GUARD_RETURN( TMutex, guard, _parent.getMutex(), -1 ); + + return _ident; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +CORBA::Boolean +Impl::TSEC_Session_impl::isInUse +( +) +{ + //ACE_GUARD_RETURN( TMutex, guard, _parent.getMutex(), FALSE ); + return _isInUse; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_CheckPoint_exec_i::TSEC_CheckPoint_exec_i() +: _p_sessionContainer( 0 ), + _isActivated( false ) +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::" + "TSEC_CheckPoint_exec_i\n" ) ); + + this->init(); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_CheckPoint_exec_i::TSEC_CheckPoint_exec_i +( + const char* /*Version*/ +) +: _p_sessionContainer( 0 ), + _isActivated( false ) +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::" + "TSEC_CheckPoint_exec_i\n" ) ); + this->init(); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_CheckPoint_exec_i::~TSEC_CheckPoint_exec_i() +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::" + "~TSEC_CheckPoint_exec_i\n" ) ); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +CORBA::Object_ptr +Impl::TSEC_CheckPoint_exec_i::getObjRef +( + PortableServer::Servant Servant +) +{ + return this->_p_sessionContainer->get_objref( Servant ); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +int +Impl::TSEC_CheckPoint_exec_i::init +( +) +{ + ACE_DEBUG ((LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::init\n")); + + int argc = sizeof( argv ) / sizeof( argv[0] ); + + CORBA::ORB_var orb = CORBA::ORB_init( argc, + const_cast<char **> (argv) + ); + _orb = CORBA::ORB::_duplicate( orb.in () ); + + return 0; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +CORBA::Object_ptr +Impl::TSEC_CheckPoint_exec_i::installServant +( + PortableServer::Servant Servant +) +{ + assert( this->_p_sessionContainer ); + PortableServer::ObjectId_var oid; + return this->_p_sessionContainer->install_servant( Servant, + CIAO::Container_Types::COMPONENT_t, oid.out ()); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::uninstallServant +( + CORBA::Object_ptr ObjRef +) +{ + assert( this->_p_sessionContainer ); + + this->_p_sessionContainer->uninstall( ObjRef, CIAO::Container_Types::COMPONENT_t); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +ENW::TSession_ptr +Impl::TSEC_CheckPoint_exec_i::createSession +( +) +{ + static long cnt = 0L; + + ENW::TSession_var session = ENW::TSession::_nil(); + + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::createSession...\n" ) ); + + TSEC_Session_impl* p_sessionImpl = new TSEC_Session_impl( *this, ++cnt ); + PortableServer::ServantBase_var safe_servant( p_sessionImpl ); + CORBA::Object_var obj = this->installServant( p_sessionImpl + ); + session = ENW::TSession::_narrow ( obj.in () ); + + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::createSession...[DONE]\n" ) ); + + return session._retn(); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +::CORBA::Boolean +Impl::TSEC_CheckPoint_exec_i::destroySession +( + ENW::TSession_ptr Session +) +{ + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::destroySession...\n" ) ); + + if( CORBA::is_nil( Session ) ) + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::destroySession...[ERROR]\n" ) ); + return 0; + } + + this->uninstallServant( Session ); + + return 1; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +ENW::TSession_ptr +Impl::TSEC_CheckPoint_exec_i::acquireSession +( + CORBA::Long Ident +) +{ + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::acquireSession...\n" ) ); + + if( Ident <= 0 || Ident > TSEC_SESSION_MAX_IDENT ) + { + if( Ident != -1 ) + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) ); + throw ENW::EUnknownIdent(); + } + } + + ENW::TSession_var session = ENW::TSession::_nil(); + TSEC_Session_impl* p_sessionImpl = 0; + + try + { + { + //ACE_GUARD_RETURN( TMutex, guard, _mutex, ENW::TSession::_nil() ); + p_sessionImpl = sessionVector[Ident-1]._p_sessionImpl; + } + + p_sessionImpl->isInUse( 1 ); + CORBA::Object_var obj = this->getObjRef( p_sessionImpl) ; + session = ENW::TSession::_narrow ( obj.in () ); + //session = sessionVector[Ident-1]._session; + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Reason\n"); + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) ); + + return session._retn(); + } + + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[DONE]\n" ) ); + + return session._retn(); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +::CORBA::Boolean +Impl::TSEC_CheckPoint_exec_i::releaseSession +( + CORBA::Long Ident, + ENW::TSession_ptr Session +) +{ + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...\n" ) ); + + if( CORBA::is_nil( Session ) ) + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) ); + throw ENW::EUnknownSession(); + } + + //CORBA::Long ident = Session->getIdent(); + CORBA::Long ident = Ident; + + if( ident <= 0 || ident > TSEC_SESSION_MAX_IDENT ) + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) ); + return 0;; + } + + TSEC_Session_impl* p_sessionImpl = 0; + + { + //ACE_GUARD_RETURN( TMutex, guard, _mutex, FALSE ); + + p_sessionImpl = sessionVector[ident-1]._p_sessionImpl; + } + + assert( p_sessionImpl ); + + + if( !p_sessionImpl->isInUse() ) + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) ); + return 0; + } + + p_sessionImpl->isInUse( 0); + + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[DONE]\n" ) ); + + return 1; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +ENW::CCM_ISessionService_ptr +Impl::TSEC_CheckPoint_exec_i::get_sessionService +( +) +{ + return ENW::CCM_ISessionService::_duplicate( this ); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::set_session_context +( + Components::SessionContext_ptr Ctx +) +{ + ACE_DEBUG( ( LM_DEBUG, + "Impl::TSEC_CheckPoint_exec_i::set_session_context\n" ) ); + + this->_context = + ENW::CCM_TSEC_CheckPoint_Context::_narrow( Ctx + ); + + if( CORBA::is_nil( this->_context.in() ) ) + { + throw CORBA::INTERNAL(); + } + + CIAO_ENW_TSEC_CheckPoint_Impl::TSEC_CheckPoint_Context* p_checkPoint_Context = + CIAO_ENW_TSEC_CheckPoint_Impl::TSEC_CheckPoint_Context::_narrow( Ctx ); + + if( !p_checkPoint_Context ) + { + throw CORBA::INTERNAL(); + } + + this->_p_sessionContainer = dynamic_cast < ::CIAO::Session_Container*>(p_checkPoint_Context->_ciao_the_Container()); + + if( !_p_sessionContainer ) + { + throw CORBA::INTERNAL(); + } +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::push_lifeTokenIn +( + ENW::ET_LifeToken* /* Event */ +) +{ + _awaitingLifeToken = false; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::configuration_complete +( +) +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::configuration_complete\n" ) ); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::ccm_activate +( +) +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_activate\n" ) ); + + TSEC_Session_impl* p_sessionImpl = 0; + + for( CORBA::Long i = 0; i < TSEC_SESSION_MAX_IDENT; ++i ) + { + p_sessionImpl = new TSEC_Session_impl( *this, i + 1 ); + PortableServer::ServantBase_var safe_servant( p_sessionImpl ); + CORBA::Object_var obj = this->installServant( p_sessionImpl + ); + ENW::TSession_var session = + ENW::TSession::_narrow ( obj.in () ); + sessionVector[i] = TSEC_SessionEntry( p_sessionImpl, session.in () ); + } + + _isActivated = true; +} + + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::ccm_passivate +( +) +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_passivate\n" ) ); + _isActivated = false; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +void +Impl::TSEC_CheckPoint_exec_i::ccm_remove +( +) +{ + ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_remove\n" ) ); + _isActivated = false; +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_CheckPointHome_exec_i::TSEC_CheckPointHome_exec_i() +{ +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +Impl::TSEC_CheckPointHome_exec_i::~TSEC_CheckPointHome_exec_i() +{ +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +::Components::EnterpriseComponent_ptr +Impl::TSEC_CheckPointHome_exec_i::new_TSEC_CheckPoint +( + const char* Version + ) +{ + return new Impl::TSEC_CheckPoint_exec_i( Version ); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +::Components::EnterpriseComponent_ptr +Impl::TSEC_CheckPointHome_exec_i::create +( +) +{ + + return new Impl::TSEC_CheckPoint_exec_i(); +} + + +//------------------------------------------------------------------- +// Operation +//------------------------------------------------------------------- + +extern "C" TSEC_CHECKPOINT_EXEC_Export ::Components::HomeExecutorBase_ptr +createTSEC_CheckPointHome_Impl() +{ + return new Impl::TSEC_CheckPointHome_exec_i(); +} + diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h new file mode 100644 index 00000000000..7f09543ea32 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h @@ -0,0 +1,244 @@ +//$Id$ + +//=================================================================== +/** + * @file TSEC_CheckPoint_exec.h + * + * Header file for the Executor implementation. + */ +//=================================================================== + +#ifndef TSEC_CheckPoint_EXEC_H +#define TSEC_CheckPoint_EXEC_H + +//------------------------------------------------------------------- +// Includes +//------------------------------------------------------------------- + +#include "ace/Thread_Manager.h" +#include "ace/Task.h" + +#include "tao/LocalObject.h" + +#include "ENWS.h" +#include "TSEC_CheckPointEIC.h" +#include "TSEC_CheckPoint_exec_export.h" + + +//------------------------------------------------------------------- +// Defines +//------------------------------------------------------------------- + +#define TSEC_SESSION_ID_MAX 0xffffffff +#define TSEC_SESSION_MAX_IDENT 2 + + +//------------------------------------------------------------------- +// Type definitions +//------------------------------------------------------------------- + + +//------------------------------------------------------------------- +// Forward declarations +//------------------------------------------------------------------- + + +//------------------------------------------------------------------- +// Classes +//------------------------------------------------------------------- + +namespace Impl +{ + typedef TAO_SYNCH_MUTEX TMutex; + + class TSEC_CheckPoint_exec_i; + + class TSEC_Session_impl : + public virtual POA_ENW::TSession, + public virtual ::CORBA::LocalObject + { + public: + + TSEC_Session_impl + ( + TSEC_CheckPoint_exec_i& Parent, + CORBA::Long Ident + ); + + virtual ~TSEC_Session_impl(); + + CORBA::Long getIdent(); + CORBA::Boolean isInUse(); + void isInUse( CORBA::Boolean Flag ) { _isInUse = Flag; } + + protected: + CORBA::Boolean _isInUse; + CORBA::Long _ident; + + TSEC_CheckPoint_exec_i& _parent; + + CORBA::ULong hash + ( + CORBA::ULong Maximum + ); + + TSEC_CheckPoint_exec_i& getParent() { return _parent; } + + }; + + struct TSEC_SessionEntry + { + TSEC_SessionEntry(); + + TSEC_SessionEntry + ( + TSEC_Session_impl* pSessionImpl, + ENW::TSession_ptr Session + ); + + TSEC_Session_impl* _p_sessionImpl; + ENW::TSession_var _session; + }; + + class TSEC_CHECKPOINT_EXEC_Export TSEC_CheckPoint_exec_i : + public virtual ENW::TSEC_CheckPoint_Exec, + public virtual ::CORBA::LocalObject + { + public: + TSEC_CheckPoint_exec_i(); + TSEC_CheckPoint_exec_i( const char* Version ); + + virtual ~TSEC_CheckPoint_exec_i(); + + // Attribute Operationen: + // + + + // Interface ISessionService + // + + virtual ENW::CCM_ISessionService_ptr get_sessionService + ( + ); + + + virtual ENW::TSession_ptr createSession + ( + ); + + virtual CORBA::Boolean destroySession + ( + ENW::TSession_ptr Session + ); + + virtual ENW::TSession_ptr acquireSession + ( + CORBA::Long Ident + ); + + virtual CORBA::Boolean releaseSession + ( + CORBA::Long Ident, + ENW::TSession_ptr Session + ); + + + // Events + // + + virtual void push_lifeTokenIn + ( + ENW::ET_LifeToken* Event + ); + + + // Operations from Components::SessionComponent + // + + virtual void set_session_context + ( + Components::SessionContext_ptr ctx + ); + + virtual void configuration_complete + ( + ); + + virtual void ccm_activate + ( + ); + + virtual void ccm_passivate + ( + ); + + virtual void ccm_remove + ( + ); + + CORBA::Object_ptr getObjRef + ( + PortableServer::Servant Servant + ); + + int init( + ); + + CORBA::Object_ptr installServant + ( + PortableServer::Servant Servant + ); + + void uninstallServant + ( + CORBA::Object_ptr ObjRef + ); + + TMutex& getMutex() { return _mutex; } + + protected: + // Copmponent specific context + + ENW::CCM_TSEC_CheckPoint_Context_var _context; + ::CIAO::Session_Container* _p_sessionContainer; + TMutex _mutex; + CORBA::ORB_var _orb; + + private: + bool _awaitingLifeToken; + bool _isActivated; + + //TSEC_Session_impl* sessionVector[TSEC_SESSION_MAX_IDENT]; + TSEC_SessionEntry sessionVector[TSEC_SESSION_MAX_IDENT]; + }; + + /** + * home executor implementation class. + */ + class TSEC_CHECKPOINT_EXEC_Export TSEC_CheckPointHome_exec_i : + public virtual ENW::CCM_TSEC_CheckPointHome, + public virtual ::CORBA::LocalObject + { + public: + + TSEC_CheckPointHome_exec_i(); + + virtual ~TSEC_CheckPointHome_exec_i(); + + // Explicit home operations. + virtual ::Components::EnterpriseComponent_ptr new_TSEC_CheckPoint + ( + const char* Version + ); + + // Implicit home operations. + virtual ::Components::EnterpriseComponent_ptr create + ( + ); + }; +} // Impl + +extern "C" TSEC_CHECKPOINT_EXEC_Export ::Components::HomeExecutorBase_ptr +createTSEC_CheckPointHome_Impl(); + +#endif // TSEC_CheckPoint_EXEC_H diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp new file mode 100644 index 00000000000..8901cdbf20a --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp @@ -0,0 +1,197 @@ +//$Id$ + + +/** + * @file controller.cpp + * + * This program interact with a TSEC_CheckPoint component, using its supported + * interface "ISessionService" + */ + + +//------------------------------------------------------------------- +// Includes +//------------------------------------------------------------------- + +#include "ace/streams.h" +#include "ace/Get_Opt.h" + +#include "TSEC_CheckPointC.h" + + +//------------------------------------------------------------------- +// Defines +//------------------------------------------------------------------- + +#define SEPARATION_LINE "----------------------------------------" \ + "----------------------------------------\n" + +#define TESTCASE_NOT_DEFINED 0 +#define TESTCASE_ACQUIRE_RELEASE_SESSION 1 +#define TESTCASE_CREATE_DESTROY_SESSION 2 + + +//------------------------------------------------------------------- +// Statics +//------------------------------------------------------------------- + +static int _testcase = TESTCASE_NOT_DEFINED; +static int _loop = 0; +static int _ident = 1; +static const ACE_TCHAR* _sessionService_ior = 0; + + +//------------------------------------------------------------------- +// Function +//------------------------------------------------------------------- + +int +parse_args +( + int argc, + ACE_TCHAR* argv[] +) +{ + ACE_Get_Opt get_opts( argc, argv, ACE_TEXT("i:k:l:t:") ); + int c; + + while( ( c = get_opts() ) != -1 ) + { + switch( c ) + { + case 'i': + _ident = ACE_OS::atoi( get_opts.opt_arg() ); + break; + + case 'k': + _sessionService_ior = get_opts.opt_arg(); + break; + + case 'l': + _loop = ACE_OS::atoi( get_opts.opt_arg() ); + break; + + case 't': + _testcase = ACE_OS::atoi( get_opts.opt_arg() ); + break; + + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN( ( LM_ERROR, + "usage: %s\n" + "-i <Ident> (default is 1)\n" + "-k <TSEC_CheckPoint IOR> (default is file://TSEC_CheckPoint.ior)\n" + "-t <testcase number> (default is 1)\n" + "\n", + argv[0] ), + -1 ); + break; + } + } + + if ( _sessionService_ior == 0 ) + { + _sessionService_ior = ACE_TEXT("file://TSEC_CheckPoint.ior"); + } + + if( _testcase == 0 ) + { + _testcase = TESTCASE_ACQUIRE_RELEASE_SESSION; + } + + return 0; +} + + +//------------------------------------------------------------------- +// Function +//------------------------------------------------------------------- + +int +ACE_TMAIN +( + int argc, + ACE_TCHAR* argv[] +) +{ + try + { + // Initialize orb + CORBA::ORB_var orb = + CORBA::ORB_init( argc, argv); + + if( parse_args( argc, argv ) != 0 ) + { + return -1; + } + + CORBA::Object_var obj = orb->string_to_object( _sessionService_ior + ); + + ENW::ISessionService_var sessionService = + ENW::ISessionService::_narrow (obj.in () ); + + if( CORBA::is_nil( sessionService.in() ) ) + { + ACE_ERROR_RETURN( ( LM_ERROR, + "Unable to acquire 'SessionService' objref\n" ), + -1 ); + } + + ACE_DEBUG( ( LM_DEBUG, SEPARATION_LINE ) ); + + for( int i = 0; i < _loop; ++i ) + { + switch( _testcase ) + { + case TESTCASE_ACQUIRE_RELEASE_SESSION: + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase acquire release session...[running]\n" ) ); + + ENW::TSession_var session = sessionService->acquireSession( _ident ); + //CORBA::Long ident = session->getIdent(); + sessionService->releaseSession( _ident, session.in () ); + + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase acquire release session...[ready]\n" ) ); + } + + break; + + case TESTCASE_CREATE_DESTROY_SESSION: + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[running]\n" ) ); + + ENW::TSession_var session = sessionService->createSession(); + CORBA::Long ident = session->getIdent(); + ACE_DEBUG(( LM_DEBUG, "(%P|%t@%T) Ident: %d\n", ident ) ); + + if( !sessionService->destroySession( session.in () ) ) + { + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[ERROR]\n" ) ); + } + + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[ready]\n" ) ); + } + + break; + + default: + ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Testcase is undefined!\n" ) ); + break; + + } + } + + orb->destroy( ); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Who is the culprit\n"); + cerr << "Uncaught CORBA exception" << endl; + + return 1; + } + + return 0; +} + diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp b/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp new file mode 100644 index 00000000000..d814af11a50 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Modified_Deployment.xsd"> + + <label>CheckPoint-DeploymentPlan</label> + + <UUID>CheckPoint_Plan_UUID_0001</UUID> + + <realizes> + <label>CheckPoint-realizes-cid</label> + <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID> + <specificType/> + <supportedType>IDL:ENW/Sender:1.0</supportedType> + <port> + <name>read_message</name> + <specificType>IDL:ENW/ISessionService:1.0</specificType> + <supportedType>IDL:ENW/ISessionService:1.0</supportedType> + <provider>false</provider> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>false</optional> + <kind>SimplexReceptacle</kind> + </port> + </realizes> + + <implementation id="CheckPoint-TSEC_CheckPoint-mdd"> + <name>CheckPoint-TSEC_CheckPoint-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>CheckPoint-TSEC_CheckPoint_exec</artifact> + <artifact>CheckPoint-TSEC_CheckPoint_svnt</artifact> + </implementation> + + <instance id="CheckPoint-TSEC_CheckPoint-idd"> + <name>CheckPoint-TSEC_CheckPoint-idd</name> + <node>CheckPointNode</node> + <source/> + <implementation>CheckPoint-TSEC_CheckPoint-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>TSEC_CheckPoint.ior</string> + </value> + </value> + </configProperty> + + <deployedResource> + <resourceUsage>InstanceUsesResource</resourceUsage> + <requirementName>CIAO:PolicySet</requirementName> + <resourceName>test_server_resource_id</resourceName> + <resourceValue> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>test_policy_set_id</string> + </value> + </resourceValue> + </deployedResource> + </instance> + + <artifact id="CheckPoint-TSEC_CheckPoint_exec"> + <name>TSEC_CheckPoint_exec</name> + <source/> + <node/> + <location>TSEC_CheckPoint_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createTSEC_CheckPointHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="CheckPoint-TSEC_CheckPoint_svnt"> + <name>TSEC_CheckPoint_svnt</name> + <source/> + <node/> + <location>TSEC_CheckPoint_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_ENW_TSEC_CheckPointHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> + + <infoProperty> + <name>CIAOServerResources</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>rt-config-example.csr</string> + </value> + </value> + </infoProperty> + +</Deployment:deploymentPlan> + diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat b/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat new file mode 100644 index 00000000000..9ec03384ec9 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat @@ -0,0 +1 @@ +CheckPointNode corbaloc:iiop:localhost:30000/NodeManager
\ No newline at end of file diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr b/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr new file mode 100644 index 00000000000..e1d120352aa --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr @@ -0,0 +1,30 @@ + +<CIAO:ServerResources + xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd" + id="test_server_resource_id"> + + <orbConfigs> + <resources> + <threadpool id="threadpool-1"> + <stacksize>0</stacksize> + <static_threads>6</static_threads> + <dynamic_threads>0</dynamic_threads> + <default_priority>2</default_priority> + <allow_request_buffering>false</allow_request_buffering> + <max_buffered_requests>0</max_buffered_requests> + <max_request_buffered_size>0</max_request_buffered_size> + </threadpool> + </resources> + + <policySet id="test_policy_set_id"> + <priorityModel server_priority="2"> + <priority_model>SERVER_DECLARED</priority_model> + </priorityModel> + <threadpool>threadpool-1</threadpool> + </policySet> + + </orbConfigs> +</CIAO:ServerResources>
\ No newline at end of file diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl b/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl new file mode 100755 index 00000000000..dccd19ae0d2 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl @@ -0,0 +1,179 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE"; +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$daemons_running = 0; +$em_running = 0; +$daemons = 1; +@ports = ( 30000 ); +@iorfiles = ( "NodeApp.ior" ); +$status = 0; +$dat_file = "TestNodeManagerMap.dat"; +$cdp_file = "DeploymentPlan.cdp"; +$controller_exec = "../SEC_CheckPoint/controller"; + +PerlACE::add_lib_path ('../SEC_CheckPoint'); + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("TSEC_CheckPoint.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/NodeApplication"; + + $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -a \"-r\""; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + + + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of node daemon $i could not be found\n"; + for (; $i > 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + $daemons_running = 1; + return 0; +} + +delete_ior_files (); + + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + exit 1; +} + +$ns_running = 1; + +# Invoke execution manager. +print "Invoking execution manager\n"; +$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager", + "-o EM.ior -i $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; +$E = + new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher", + "-p DeploymentPlan.cdp -k file://EM.ior -o DAM.ior"); + +$E->SpawnWaitKill (5000); + + +if (PerlACE::waitforfile_timed ("TSEC_CheckPoint.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of sender could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Running testcase 1\n"; + +$controller = new PerlACE::Process ("$controller_exec", "-i 1 -k file://TSEC_CheckPoint.ior -t 1 -l 100000"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + + +print "Running testcase 2\n"; + +$controller = new PerlACE::Process ("$controller_exec", "-i 2 -k file://TSEC_CheckPoint.ior -t 1 -l 100000"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +print "Running testcase 3\n"; + +$controller = new PerlACE::Process ("$controller_exec", "-k file://TSEC_CheckPoint.ior -t 2 -l 100000"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +$E = + new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher", + "-k file://EM.ior -i file://DAM.ior"); +$E->SpawnWaitKill (3000); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl new file mode 100644 index 00000000000..f62febba8a3 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl @@ -0,0 +1,52 @@ +//$Id$ + +#ifndef ENW_IDL +#define ENW_IDL + +#include <Components.idl> + + +module ENW +{ + exception EUnknownIdent + { + }; + + exception EUnknownSession + { + }; + + eventtype ET_LifeToken + { + }; + + ////////////////////////////////////////////////////////////////////////////// + // + // ICheckPoint-Interfaces + // + + const long IdNotDefined = -1; + + interface TSession + { + long getIdent(); + boolean isInUse(); + }; + + interface ISessionService + { + TSession createSession(); + boolean destroySession( in TSession Session ); + + TSession acquireSession( in long Ident ) + raises( EUnknownIdent ); + + boolean releaseSession( in long Ident, + in TSession Session ) + raises( EUnknownSession ); + }; + +}; + + +#endif //ENW_IDL diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc new file mode 100644 index 00000000000..940fc921321 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc @@ -0,0 +1,44 @@ +//$Id$ + +project(ENW_stub): ccm_stub, event { + sharedname = ENW_stub + idlflags -= -GT + idlflags += -Wb,stub_export_macro=ENW_STUB_Export \ + -Wb,stub_export_include=ENW_stub_export.h \ + -Wb,skel_export_macro=ENW_SKEL_Export \ + -Wb,skel_export_include=ENW_skel_export.h + dynamicflags = ENW_STUB_BUILD_DLL + + IDL_Files { + ENW.idl + } + + Source_Files { + ENWC.cpp + } +} + +project(ENW_skel) : ciao_servant, event { + after += ENW_stub + sharedname = ENW_skel + libs += ENW_stub + idlflags -= -GT + idlflags += -Wb,stub_export_macro=ENW_STUB_Export \ + -Wb,stub_export_include=ENW_stub_export.h \ + -Wb,skel_export_macro=ENW_SKEL_Export \ + -Wb,skel_export_include=ENW_skel_export.h + + dynamicflags = ENW_SKEL_BUILD_DLL + + IDL_Files { + ENW.idl + } + + Source_Files { + ENWS.cpp + } +} + + + + diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h new file mode 100644 index 00000000000..eb90568f309 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ENW_SKEL +// ------------------------------ +#ifndef ENW_SKEL_EXPORT_H +#define ENW_SKEL_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ENW_SKEL_HAS_DLL) +# define ENW_SKEL_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ENW_SKEL_HAS_DLL */ + +#if !defined (ENW_SKEL_HAS_DLL) +# define ENW_SKEL_HAS_DLL 1 +#endif /* ! ENW_SKEL_HAS_DLL */ + +#if defined (ENW_SKEL_HAS_DLL) && (ENW_SKEL_HAS_DLL == 1) +# if defined (ENW_SKEL_BUILD_DLL) +# define ENW_SKEL_Export ACE_Proper_Export_Flag +# define ENW_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ENW_SKEL_BUILD_DLL */ +# define ENW_SKEL_Export ACE_Proper_Import_Flag +# define ENW_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ENW_SKEL_BUILD_DLL */ +#else /* ENW_SKEL_HAS_DLL == 1 */ +# define ENW_SKEL_Export +# define ENW_SKEL_SINGLETON_DECLARATION(T) +# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ENW_SKEL_HAS_DLL == 1 */ + +// Set ENW_SKEL_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ENW_SKEL_NTRACE) +# if (ACE_NTRACE == 1) +# define ENW_SKEL_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ENW_SKEL_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ENW_SKEL_NTRACE */ + +#if (ENW_SKEL_NTRACE == 1) +# define ENW_SKEL_TRACE(X) +#else /* (ENW_SKEL_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ENW_SKEL_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ENW_SKEL_NTRACE == 1) */ + +#endif /* ENW_SKEL_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h new file mode 100644 index 00000000000..dd8f95cc1f5 --- /dev/null +++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ENW_STUB +// ------------------------------ +#ifndef ENW_STUB_EXPORT_H +#define ENW_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ENW_STUB_HAS_DLL) +# define ENW_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ENW_STUB_HAS_DLL */ + +#if !defined (ENW_STUB_HAS_DLL) +# define ENW_STUB_HAS_DLL 1 +#endif /* ! ENW_STUB_HAS_DLL */ + +#if defined (ENW_STUB_HAS_DLL) && (ENW_STUB_HAS_DLL == 1) +# if defined (ENW_STUB_BUILD_DLL) +# define ENW_STUB_Export ACE_Proper_Export_Flag +# define ENW_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ENW_STUB_BUILD_DLL */ +# define ENW_STUB_Export ACE_Proper_Import_Flag +# define ENW_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ENW_STUB_BUILD_DLL */ +#else /* ENW_STUB_HAS_DLL == 1 */ +# define ENW_STUB_Export +# define ENW_STUB_SINGLETON_DECLARATION(T) +# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ENW_STUB_HAS_DLL == 1 */ + +// Set ENW_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ENW_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ENW_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ENW_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ENW_STUB_NTRACE */ + +#if (ENW_STUB_NTRACE == 1) +# define ENW_STUB_TRACE(X) +#else /* (ENW_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ENW_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ENW_STUB_NTRACE == 1) */ + +#endif /* ENW_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc b/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc new file mode 100644 index 00000000000..df8ec43d6f2 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc @@ -0,0 +1,6 @@ +// $Id$ +project (Activator_CIAOComponentServer_Test) : ciao_componentserver_stub, ccm_configvalue, ciao_cs_client { + Source_Files { + client.cpp + } +}
\ No newline at end of file diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp new file mode 100644 index 00000000000..1d5ae186911 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp @@ -0,0 +1,191 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ciao/ComponentServer/CIAO_CS_ClientS.h" +#include "ciao/ComponentServer/CIAO_ComponentServerC.h" +#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h" +#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h" +#include "ciao/Valuetype_Factories/ConfigValue.h" + +const ACE_TCHAR *cs_path = ACE_TEXT ("ciao_componentserver"); +CORBA::ULong spawn_delay = 30; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "s:d:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 's': + cs_path = get_opts.opt_arg (); + break; + + case 'd': + spawn_delay = ACE_OS::atoi (get_opts.opt_arg ()); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-s <path> " + "-d <uint> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR **argv) +{ + using namespace CIAO::Deployment; + + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var object = + orb->resolve_initial_references ("RootPOA"); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + poa_manager->activate (); + + CIAO::Deployment::ComponentInstallation_Impl *tmp_ci; + + ACE_NEW_THROW_EX (tmp_ci, + CIAO::Deployment::ComponentInstallation_Impl (), + CORBA::NO_MEMORY ()); + + PortableServer::ServantBase_var safe_servant = tmp_ci; + + CIAO_ServerActivator_i *sa_tmp = new CIAO_ServerActivator_i (spawn_delay, + ACE_TEXT_ALWAYS_CHAR (cs_path), + 0, + false, + tmp_ci->_this (), + orb.in (), + root_poa.in ()); + PortableServer::ServantBase_var safe = sa_tmp; + + ServerActivator_var sa = sa_tmp->_this (); + + // Make our configvalues + // ::Components::ConfigValues_var configs = new + ::Components::ConfigValues configs(2); + //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with no configvalues\n")); + // Make a componentserver with no configvalues + ComponentServer_var server1 (ComponentServer::_narrow (sa->create_component_server (configs))); + //ACE_DEBUG ((LM_DEBUG, "Componentserver with no configvalues created!\n")); + + //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with UUID configvalues\n")); + CORBA::Any val; + val <<= "MyNameIsEarl"; + configs.length (1); + ::Components::ConfigValue_var cv_tmp = new CIAO::ConfigValue_impl ("edu.vanderbilt.dre.ServerUUID", val); + configs[0] = cv_tmp._retn (); + + ComponentServer_var server2 (ComponentServer::_narrow (sa->create_component_server (configs))); + + + // Initialize servant + + if (CORBA::is_nil (server1.in ()) || + CORBA::is_nil (server1.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Nil componentserver references"), -1); + } + + Components::Deployment::Container_var tmp = server1->create_container (0); + Container_var cont1a = Container::_narrow (tmp.in ()); + if (CORBA::is_nil (cont1a.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n", + tmp.in (), cont1a.in ())); + return -1; + } + //ACE_DEBUG ((LM_DEBUG, "Got container from server 1a\n")); + + Container_var cont1b = Container::_narrow (server1->create_container (0)); + if (CORBA::is_nil (cont1b.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from second create op on server 1\n")); + return -1; + } + //ACE_DEBUG ((LM_DEBUG, "Got container from server 1b\n")); + + Container_var cont2a = Container::_narrow (server2->create_container (0)); + if (CORBA::is_nil (cont2a.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 2\n")); + return -1; + } + //ACE_DEBUG ((LM_DEBUG, "Got container from server 2a\n")); + + try + { + server2->remove_container (cont1a); + ACE_ERROR ((LM_ERROR, "Error: remove_container removed a container not belonging to the component server\n")); + } + catch (::Components::RemoveFailure &) + { + //ACE_DEBUG ((LM_DEBUG, "Server 2 Refused to remove container it didn't own\n")); + // expected + } + + ::Components::Deployment::Containers_var cses = server1->get_containers (); + + if (cses->length () != 2) + ACE_ERROR ((LM_ERROR, "Error: get_containers returned the wrong number of containers, %u should be 2\n", + cses->length ())); + else //ACE_DEBUG ((LM_DEBUG, "Got %u containers\n", cses->length ())); + + server1->remove_container (cont1a); + //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1a\n")); + + cses = server1->get_containers (); + + if (cses->length () != 1) + ACE_ERROR ((LM_ERROR, "Error: get_containers returned %u containers after removal, should be 1\n", + cses->length ())); + + server2->remove_container (cont2a); + //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 2a\n")); + server1->remove_container (cont1b); + //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1b\n")); + + //ACE_DEBUG ((LM_DEBUG, "Removing component server\n")); + sa->remove_component_server (server1.in ()); + sa->remove_component_server (server2.in ()); + //ACE_DEBUG ((LM_DEBUG, "Componentserver removed\n")); + + orb->destroy (); + } + catch (::Components::CreateFailure &) + { + ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n")); + } + catch (::Components::RemoveFailure &) + { + ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n")); + } + catch (...) + { + ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n")); + } + return 0; +} diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl new file mode 100755 index 00000000000..cf78cd053d0 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl @@ -0,0 +1,35 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; +$debug_level = '0'; +$ciao_root = "$ENV{CIAO_ROOT}"; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $debug_level = '10'; + } +} + +my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig); + +$SV1 = $target->CreateProcess ("./client", "-s $ciao_root/bin/ciao_componentserver"); + +$server1 = $SV1->SpawnWaitKill (300); + +if ($server1 != 0) { + $target->GetStderrLog(); + print STDERR "ERROR: server1 returned $server\n"; + exit 1; +} + +$target->GetStderrLog(); + +exit $status; diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc b/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc new file mode 100644 index 00000000000..1de96195bb9 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc @@ -0,0 +1,6 @@ +// $Id$ +project (Basic_CIAOComponentServer_Test) : ciao_componentserver_stub { + Source_Files { + client.cpp + } +}
\ No newline at end of file diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp new file mode 100644 index 00000000000..8d36037c8f2 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp @@ -0,0 +1,143 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ciao/ComponentServer/CIAO_ComponentServerC.h" + +const ACE_TCHAR *server_1 = ACE_TEXT("file://test1.ior"); +const ACE_TCHAR *server_2 = ACE_TEXT("file://test2.ior"); + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:j:")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + server_1 = get_opts.opt_arg (); + break; + + case 'j': + server_2 = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k <ior> " + "-j <ior> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR **argv) +{ + using namespace CIAO::Deployment; + + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var tmp1 = orb->string_to_object(server_1); + CORBA::Object_var tmp2 = orb->string_to_object(server_2); + + ComponentServer_var server1 (ComponentServer::_narrow (tmp1)), + server2 (ComponentServer::_narrow (tmp2)); + + if (CORBA::is_nil (server1.in ()) || + CORBA::is_nil (server1.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Nil componentserver references"), -1); + } + + Components::Deployment::Container_var tmp = server1->create_container (0); + Container_var cont1a = Container::_narrow (tmp.in ()); + if (CORBA::is_nil (cont1a.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n", + tmp.in (), cont1a.in ())); + return -1; + } + ACE_ERROR ((LM_DEBUG, "Got container from server 1a\n")); + + Container_var cont1b = Container::_narrow (server1->create_container (0)); + if (CORBA::is_nil (cont1b.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from second create op on server 1\n")); + return -1; + } + ACE_ERROR ((LM_DEBUG, "Got container from server 1b\n")); + + Container_var cont2a = Container::_narrow (server2->create_container (0)); + if (CORBA::is_nil (cont2a.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 2\n")); + return -1; + } + ACE_ERROR ((LM_DEBUG, "Got container from server 2a\n")); + + try + { + server2->remove_container (cont1a); + ACE_ERROR ((LM_ERROR, "Error: remove_container removed a container not belonging to the component server\n")); + } + catch (const ::Components::RemoveFailure &) + { + ACE_DEBUG ((LM_DEBUG, "Server 2 Refused to remove container it didn't own\n")); + // expected + } + + ::Components::Deployment::Containers_var cses = server1->get_containers (); + + if (cses->length () != 2) + ACE_ERROR ((LM_ERROR, "Error: get_containers returned the wrong number of containers, %u should be 2\n", + cses->length ())); + else ACE_DEBUG ((LM_DEBUG, "Got %u containers\n", cses->length ())); + + server1->remove_container (cont1a); + ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1a\n")); + + cses = server1->get_containers (); + + if (cses->length () != 1) + ACE_ERROR ((LM_ERROR, "Error: get_containers returned %u containers after removal, should be 1\n", + cses->length ())); + + server2->remove_container (cont2a); + ACE_DEBUG ((LM_DEBUG, "Successfully removed container 2a\n")); + server1->remove_container (cont1b); + ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1b\n")); + + server1->remove (); + server1->shutdown (); + server2->remove (); + server2->shutdown (); + + orb->destroy (); + } + catch (const ::Components::CreateFailure &) + { + ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n")); + } + catch (const ::Components::RemoveFailure &) + { + ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n")); + } + catch (...) + { + ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n")); + } + return 0; +} diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl new file mode 100755 index 00000000000..513023fa7fb --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl @@ -0,0 +1,110 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; +$debug_level = '0'; +$ciao_root = "$ENV{CIAO_ROOT}"; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $debug_level = '10'; + } +} + +my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig); +my $host = new PerlACE::TestTarget; + +$iorbase1 = "server1.ior"; +$iorbase2 = "server2.ior"; + +$server_iorfile1 = $target->LocalFile ($iorbase1); +$server_iorfile2 = $target->LocalFile ($iorbase2); + +$target->DeleteFile($iorbase1); +$target->DeleteFile($iorbase2); + +$client_iorfile1 = $host->LocalFile ($iorbase1); +$client_iorfile2 = $host->LocalFile ($iorbase2); + +$host->DeleteFile($iorbase1); +$host->DeleteFile($iorbase2); + +$SV1 = $target->CreateProcess ("$ciao_root/bin/ciao_componentserver", "-ORBDebuglevel $debug_level -u $server_iorfile1 -o $server_iorfile1"); +$SV2 = $target->CreateProcess ("$ciao_root/bin/ciao_componentserver", "-ORBDebuglevel $debug_level -u $server_iorfile2 -o $server_iorfile2"); + +$CL = $host->CreateProcess ("client", "-k file://$client_iorfile1 -j file://$client_iorfile2"); + +$server_status1 = $SV1->Spawn (); +$server_status2 = $SV2->Spawn (); + +if ($server_status1 != 0) { + print STDERR "ERROR: server1 returned $server_status1\n"; + exit 1; +} +if ($server_status2 != 0) { + print STDERR "ERROR: server2 returned $server_status2\n"; + exit 1; +} + +if ($target->WaitForFileTimed ($iorbase1, + $target->ProcessStartWaitInterval ()) == -1) { + print STDERR "ERROR: cannot find file <$server_iorfile1>\n"; + $SV1->Kill (); $SV1->TimedWait (1); + exit 1; +} + +if ($target->WaitForFileTimed ($iorbase2, + $target->ProcessStartWaitInterval ()) == -1) { + print STDERR "ERROR: cannot find file <$server_iorfile2>\n"; + $SV2->Kill (); $SV2->TimedWait (1); + exit 1; +} + +if ($target->GetFile ($server_iorfile1, $iorbase) == -1) { + print STDERR "ERROR: cannot retrieve file <$iorfile1>\n"; + $SV1->Kill (); $SV1->TimedWait (1); + exit 1; +} + +if ($target->GetFile ($server_iorfile2, $iorbase) == -1) { + print STDERR "ERROR: cannot retrieve file <$iorfile2>\n"; + $SV2->Kill (); $SV2->TimedWait (1); + exit 1; +} + +$client_status = $CL->SpawnWaitKill (300); + +if ($client_status != 0) { + print STDERR "ERROR: client returned $client_status\n"; + $status = 1; +} + +$server_status1 = $SV1->WaitKill (10); +$server_status2 = $SV2->WaitKill (10); + +if ($server_status1 != 0) { + print STDERR "ERROR: server1 returned $server_status1\n"; + $status = 1; +} + +if ($server_status2 != 0) { + print STDERR "ERROR: server2 returned $server_status2\n"; + $status = 1; +} + +$target->GetStderrLog(); + +$target->DeleteFile($iorbase1); +$target->DeleteFile($iorbase2); + +$host->DeleteFile($iorbase1); +$host->DeleteFile($iorbase2); + +exit $status; diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl new file mode 100644 index 00000000000..dcf676fb276 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl @@ -0,0 +1,21 @@ +//$Id$ + +#include <Components.idl> + +module Foo +{ + interface Simple + { + void trigger (); + }; + + component SimpleComponent supports Simple + { + readonly attribute string creationtype_; + }; + + home SimpleHome manages SimpleComponent + { + }; +}; + diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc new file mode 100644 index 00000000000..cf6400373a5 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc @@ -0,0 +1,112 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl SimpleComponent" + +project(SimpleComponent_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=SIMPLECOMPONENT_STUB_Export \ + -Wb,stub_export_include=SimpleComponent_stub_export.h \ + -Wb,skel_export_macro=SIMPLECOMPONENT_SVNT_Export \ + -Wb,skel_export_include=SimpleComponent_svnt_export.h \ + -Wb,exec_export_macro=SIMPLECOMPONENT_EXEC_Export \ + -Wb,exec_export_include=SimpleComponent_exec_export.h + + IDL_Files { + SimpleComponent.idl + } +} + +project(SimpleComponent_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += SimpleComponent_idl_gen + idlflags += -Wb,export_macro=SIMPLECOMPONENT_EXEC_Export \ + -Wb,export_include=SimpleComponent_exec_export.h \ + -SS + + IDL_Files { + SimpleComponentE.idl + } +} + +project(SimpleComponent_stub) : ccm_stub { + after += SimpleComponent_idl_gen + + sharedname = SimpleComponent_stub + dynamicflags = SIMPLECOMPONENT_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SimpleComponentC.cpp + } + + Header_Files { + SimpleComponentC.h + SimpleComponent_stub_export.h + } + + Inline_Files { + SimpleComponentC.inl + } +} + +project(SimpleComponent_exec) : ciao_executor { + after += SimpleComponent_lem_gen SimpleComponent_stub + sharedname = SimpleComponent_exec + libs += SimpleComponent_stub + + dynamicflags = SIMPLECOMPONENT_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SimpleComponentEC.cpp + SimpleComponent_exec.cpp + } + + Header_Files { + SimpleComponentEC.h + SimpleComponent_exec.h + SimpleComponent_exec_export.h + } + + Inline_Files { + SimpleComponentEC.inl + } +} + + +project(SimpleComponent_svnt) : ciao_servant { + sharedname = SimpleComponent_svnt + libs += SimpleComponent_stub SimpleComponent_exec + after += SimpleComponent_stub SimpleComponent_exec + dynamicflags = SIMPLECOMPONENT_SVNT_BUILD_DLL + + IDL_Files { + } + Source_Files { + SimpleComponentS.cpp + SimpleComponent_svnt.cpp + } + + Header_Files { + SimpleComponentS.h + SimpleComponent_svnt.h + SimpleComponent_svnt_export.h + } + + Inline_Files { + SimpleComponentS.inl + } +} + +project (SimpleComp_CIAOComponentServer_Tst) : ciao_componentserver_stub, ccm_configvalue, ciao_cs_client, ciao_logger { + after += SimpleComponent_stub SimpleComponent_svnt + libs += SimpleComponent_stub + IDL_Files { + } + Source_Files { + client.cpp + } +} diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp new file mode 100644 index 00000000000..0c81e9ab1d6 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp @@ -0,0 +1,131 @@ +// $Id$ + +#include "SimpleComponent_exec.h" +#include "ciao/Logger/Log_Macros.h" + +namespace CIAO_Foo_SimpleComponent_Impl +{ + //================================================================== + // Component Executor Implementation Class: SimpleComponent_exec_i + //================================================================== + + SimpleComponent_exec_i::SimpleComponent_exec_i (const char *type) + : type_ (CORBA::string_dup (type)) + { + } + + SimpleComponent_exec_i::~SimpleComponent_exec_i (void) + { + } + + // Supported or inherited operations. + + void + SimpleComponent_exec_i::trigger () + { + ACE_DEBUG ((LM_EMERGENCY, "Hello, world!!!!!!!!\n")); + } + + // Attribute operations. + + char * + SimpleComponent_exec_i::creationtype_ () + { + return CORBA::string_dup (this->type_.in ()); + } + + // Port operations. + + // Operations from Components::SessionComponent + + void + SimpleComponent_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::Foo::CCM_SimpleComponent_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + SimpleComponent_exec_i::configuration_complete () + { + // Your code here. + } + + void + SimpleComponent_exec_i::ccm_activate () + { + // Your code here. + } + + void + SimpleComponent_exec_i::ccm_passivate () + { + // Your code here. + } + + void + SimpleComponent_exec_i::ccm_remove () + { + // Your code here. + } + + //================================================================== + // Home Executor Implementation Class: SimpleHome_exec_i + //================================================================== + + SimpleHome_exec_i::SimpleHome_exec_i (void) + { + CIAO_TRACE ("SimpleHome_exec_i::SimpleHome_exec_i"); + CIAO_DEBUG ((LM_NOTICE, CLINFO "SimpleHome_exec_i::SimpleHome_exec_i - " + "Home constructed\n")); + } + + SimpleHome_exec_i::~SimpleHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + SimpleHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + SimpleComponent_exec_i ("HomeCreated"), + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" SIMPLECOMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Foo_SimpleHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + SimpleHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h new file mode 100644 index 00000000000..8c53fab0a15 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h @@ -0,0 +1,108 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_SIMPLECOMPONENT_EXEC_H +#define CIAO_SIMPLECOMPONENT_EXEC_H + +#include /**/ "ace/pre.h" + +#include "SimpleComponentEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "SimpleComponent_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Foo_SimpleComponent_Impl +{ + class SIMPLECOMPONENT_EXEC_Export SimpleComponent_exec_i + : public virtual SimpleComponent_Exec, + public virtual ::CORBA::LocalObject + { + public: + SimpleComponent_exec_i (const char *CreateType); + virtual ~SimpleComponent_exec_i (void); + + // Supported or inherited operations. + + virtual void + trigger (); + + // Attribute operations. + + virtual char * + creationtype_ () + ; + + // Port operations. + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + private: + ::Foo::CCM_SimpleComponent_Context_var context_; + + CORBA::String_var type_; + + }; + + class SIMPLECOMPONENT_EXEC_Export SimpleHome_exec_i + : public virtual SimpleHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + SimpleHome_exec_i (void); + virtual ~SimpleHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" SIMPLECOMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Foo_SimpleHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_SIMPLECOMPONENT_EXEC_H */ + diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp new file mode 100644 index 00000000000..bdcdf022d1a --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp @@ -0,0 +1,187 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ciao/ComponentServer/CIAO_CS_ClientS.h" +#include "ciao/ComponentServer/CIAO_ComponentServerC.h" +#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h" +#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h" +#include "ciao/ComponentServer/CIAO_PropertiesC.h" +#include "ciao/Valuetype_Factories/ConfigValue.h" +#include "ciao/Logger/Logger_Service.h" + +#include "SimpleComponentC.h" + +const char *cs_path = "ciao_componentserver"; +CORBA::ULong spawn_delay = 30; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("s:d:")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 's': + cs_path = ACE_TEXT_ALWAYS_CHAR (get_opts.opt_arg ()); + break; + + case 'd': + spawn_delay = ACE_OS::atoi (get_opts.opt_arg ()); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-s <path> " + "-d <uint> " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR **argv) +{ + using namespace CIAO::Deployment; + + CIAO::Logger_Service logger; + + logger.init (argc, argv); + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + if (parse_args (argc, argv) != 0) + return 1; + + CORBA::Object_var object = + orb->resolve_initial_references ("RootPOA"); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (object.in ()); + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + + poa_manager->activate (); + ACE_DEBUG ((LM_DEBUG, "foo\n")); + + CIAO::Deployment::ComponentInstallation_Impl *tmp_ci = 0; + + ACE_NEW_THROW_EX (tmp_ci, + CIAO::Deployment::ComponentInstallation_Impl (), + CORBA::NO_MEMORY ()); + + PortableServer::ServantBase_var safe_servant = tmp_ci; + + root_poa->activate_object (tmp_ci); + + CIAO_ServerActivator_i *sa_tmp = new CIAO_ServerActivator_i (spawn_delay, + cs_path, + 0, + false, + tmp_ci->_this (), + orb.in (), + root_poa.in ()); + + PortableServer::ServantBase_var safe = sa_tmp; + + ServerActivator_var sa = sa_tmp->_this (); + + //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with no configvalues\n")); + // Make a componentserver with no configvalues + ComponentServer_var server1 (ComponentServer::_narrow (sa->create_component_server (0))); + + if (CORBA::is_nil (server1.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Nil componentserver references"), -1); + } + + Components::Deployment::Container_var tmp = server1->create_container (0); + Container_var cont1a = Container::_narrow (tmp.in ()); + + if (CORBA::is_nil (cont1a.in ())) + { + ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n", + tmp.in (), cont1a.in ())); + return -1; + } + + // Make our configvalues + // ::Components::ConfigValues_var configs = new + CORBA::Any val; + ::Components::ConfigValues configs(3); + configs.length (3); + + val <<= "create_Foo_SimpleHome_Servant"; + configs[0] = new CIAO::ConfigValue_impl (CIAO::Deployment::SVNT_ENTRYPT, + val); + val <<= "SimpleComponent_svnt"; + configs[1] = new CIAO::ConfigValue_impl (CIAO::Deployment::SVNT_ARTIFACT, + val); + tmp_ci->install ("SimpleComponent_svnt", "SimpleComponent_svnt"); + val <<= "SimpleComponent_exec"; + configs[2] = new CIAO::ConfigValue_impl (CIAO::Deployment::EXEC_ARTIFACT, + val); + tmp_ci->install ("SimpleComponent_exec", "SimpleComponent_exec"); + + // Install Home + Components::CCMHome_var home = cont1a->install_home ("MyNameIsEarl", + "create_Foo_SimpleHome_Impl", + configs); + + if (CORBA::is_nil (home)) + { + ACE_ERROR ((LM_ERROR, "Got back a nil home ref from install_home\n")); + return -1; + } + + Foo::SimpleHome_var shome = Foo::SimpleHome::_narrow (home.in ()); + + if (CORBA::is_nil (shome)) + { + ACE_ERROR ((LM_ERROR, "Narrow failed from CCM_Home to SimpleHome\n")); + return -1; + } + + + Foo::SimpleComponent_var sc = shome->create (); + + if (CORBA::is_nil (sc)) + { + ACE_ERROR ((LM_ERROR, "Home failed to make a component\n")); + return -1; + } + + sc->trigger (); + + cont1a->remove_home (home.in ()); + + server1->remove_container (cont1a.in ()); + + //ACE_DEBUG ((LM_DEBUG, "Removing component server\n")); + sa->remove_component_server (server1.in ()); + //ACE_DEBUG ((LM_DEBUG, "Componentserver removed\n")); + + orb->destroy (); + } + catch (::Components::CreateFailure &) + { + ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n")); + } + catch (::Components::RemoveFailure &) + { + ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n")); + } + catch (...) + { + ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n")); + } + return 0; +} diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl new file mode 100755 index 00000000000..5d8a72f7694 --- /dev/null +++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl @@ -0,0 +1,33 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; +$ciao_root = "$ENV{CIAO_ROOT}"; + +foreach $i (@ARGV) { + if ($i eq '-debug') { + $ENV{"DANCE_TRACE_ENABLE"} = 1; + $ENV{"CIAO_TRACE_ENABLE"} = 1; + } +} + +my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig); + +$TG = $target->CreateProcess ("client", "-s $ciao_root/bin/ciao_componentserver -d 120"); +$server_status = $TG->SpawnWaitKill ($target->ProcessStartWaitInterval ()); + +if ($server_status != 0) { + print STDERR "ERROR: process returned $server_status\n"; + exit 1; +} + +$target->GetStderrLog(); + +exit $status; diff --git a/modules/CIAO/tests/CIDL/CodeGen/Basic.idl b/modules/CIAO/tests/CIDL/CodeGen/Basic.idl new file mode 100644 index 00000000000..9c86c4b7846 --- /dev/null +++ b/modules/CIAO/tests/CIDL/CodeGen/Basic.idl @@ -0,0 +1,65 @@ +// $Id$ +//============================================================================= +/** + * @file Basic.idl + * + * Definition of events, and common interfaces used in the BasicSP module. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef CIAO_BASIC_IDL +#define CIAO_BASIC_IDL + +#include <Components.idl> + +// @@NOTE: Do we need a pragma prefix. Anyway its broken now in TAO.. + +module Extra +{ + exception NoReason {}; + exception NoRhyme {}; + + struct UserDataQosPolicy { + sequence<octet> value; + }; + + struct key { + long value[3]; + }; + + interface Superfluous + { + attribute string useless_attr; + long superfluous_op (in string empty_arg) + raises (NoReason); + }; + + interface Supernumerary + { + void supernumerary_op (out string dummy_arg) + raises (NoRhyme, NoReason); + }; +}; + +// #pragma prefix "" + +module Basic +{ + interface ReadData : Extra::Superfluous + { + string get_data (); + }; + + interface AnalyzeData + { + void perform_analysis (inout string data); + attribute boolean fine_tooth_comb; + }; + + eventtype TimeOut {}; + eventtype DataAvailable {}; +}; + +#endif /*CIAO_BASIC_IDL*/ diff --git a/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc b/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc new file mode 100644 index 00000000000..35f827366be --- /dev/null +++ b/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc @@ -0,0 +1,80 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Basic" + +project(Basic_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \ + -Wb,stub_export_include=Basic_stub_export.h \ + -Wb,skel_export_macro=BASIC_SKEL_Export \ + -Wb,skel_export_include=Basic_skel_export.h + + IDL_Files { + Basic.idl + } +} + +project(Basic_lem_gen) : componentidldefaults { + custom_only = 1 + after += Basic_idl_gen + idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \ + -Wb,stub_export_include=Basic_stub_export.h \ + -Wb,skel_export_macro=BASIC_SKEL_Export \ + -Wb,skel_export_include=Basic_skel_export.h + + IDL_Files { + BasicE.idl + } +} + +project(Basic_stub) : ccm_stub { + after += Basic_lem_gen + libs += + + sharedname = Basic_stub + dynamicflags = BASIC_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + BasicC.cpp + BasicEC.cpp + } + + Header_Files { + BasicC.h + Basic_stub_export.h + } + + Inline_Files { + BasicC.inl + } +} + + +project(Basic_skel) : ciao_executor { + after += Basic_stub + sharedname = Basic_skel + libs += Basic_stub + + + dynamicflags = BASIC_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + BasicS.cpp + } + + Header_Files { + BasicS.h + Basic_skel_export.h + } + + Inline_Files { + BasicS.inl + } +} + + diff --git a/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl new file mode 100644 index 00000000000..224315de2b8 --- /dev/null +++ b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl @@ -0,0 +1,46 @@ +//$Id$ +#include "Basic.idl" +#include "BasicE.idl" + +module Basic +{ + component Base supports Extra::Supernumerary, Extra::Superfluous + { + provides ReadData data_read; + attribute boolean is_not_necessary; + }; + + component CodeGen : Base + { + provides ReadData data_out; + uses ReadData data_in; + publishes DataAvailable out_avail; + consumes DataAvailable in_avail; + provides AnalyzeData data_crunch; + + readonly attribute boolean is_necessary; + }; + + home BaseHome supports Extra::Supernumerary manages Base + { + void base_do_nothing (); + + factory create_no_base (in long fake_id) + raises (Extra::NoRhyme); + + finder find_no_base (); + + readonly attribute boolean is_useful; + }; + + home CodeGenHome : BaseHome manages CodeGen + { + factory create_no_derived (); + + finder find_no_derived (); + + attribute boolean is_not_useful; + + string do_nothing (); + }; +}; diff --git a/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc new file mode 100644 index 00000000000..70e490dea96 --- /dev/null +++ b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc @@ -0,0 +1,116 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Basic CodeGen" +// +// NOTE: This MPC file has been hand edited so the executor files +// will be autogenerated part of the build process. Excercise +// caution when regenerating this file (that is, remember to +// insert the logic for autogeneration of executor files). + +project(Basic_CodeGen_idl_gen) : componentidldefaults { + after += Basic_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export \ + -Wb,stub_export_include=CodeGen_stub_export.h \ + -Wb,skel_export_macro=CODEGEN_SVNT_Export \ + -Wb,skel_export_include=CodeGen_svnt_export.h \ + -Wb,exec_export_macro=CODEGEN_EXEC_Export \ + -Wb,exec_export_include=CodeGen_exec_export.h \ + -Gex + + IDL_Files { + CodeGen.idl + } +} + +project(Basic_CodeGen_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Basic_CodeGen_idl_gen + idlflags += -Wb,export_macro=CODEGEN_EXEC_Export \ + -Wb,export_include=CodeGen_exec_export.h \ + -SS + IDL_Files { + CodeGenE.idl + } +} + +project(Basic_CodeGen_stub) : ccm_stub { + after += Basic_CodeGen_idl_gen Basic_stub + libs += Basic_stub + + sharedname = CodeGen_stub + dynamicflags = CODEGEN_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CodeGenC.cpp + } + + Header_Files { + CodeGenC.h + CodeGen_stub_export.h + } + + Inline_Files { + CodeGenC.inl + } +} + +project(Basic_CodeGen_exec) : ciao_executor { + after += Basic_CodeGen_lem_gen Basic_CodeGen_stub + sharedname = CodeGen_exec + libs += CodeGen_stub Basic_stub + + dynamicflags = CODEGEN_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CodeGenEC.cpp + CodeGen_exec.cpp + } + + Header_Files { + CodeGenEC.h + CodeGen_exec.h + CodeGen_exec_export.h + } + + Inline_Files { + CodeGenEC.inl + } +} + + +project(Basic_CodeGen_svnt) : ciao_servant { + after += Basic_skel Basic_CodeGen_exec + sharedname = CodeGen_svnt + libs += CodeGen_exec \ + CodeGen_stub \ + Basic_skel \ + Basic_stub + + dynamicflags = CODEGEN_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CodeGenS.cpp + CodeGen_svnt.cpp + } + + Header_Files { + CodeGenS.h + CodeGen_svnt.h + CodeGen_svnt_export.h + } + + Inline_Files { + CodeGenS.inl + } +} + + diff --git a/modules/CIAO/tests/CIDL/CodeGen/README b/modules/CIAO/tests/CIDL/CodeGen/README new file mode 100644 index 00000000000..da6e8f6ee90 --- /dev/null +++ b/modules/CIAO/tests/CIDL/CodeGen/README @@ -0,0 +1,40 @@ + +Code Generation Test +======================== + +While the tests in CIAO_ROOT/tests/IDL3 target IDL3 support +and IDL3-specific code generation in particular, the tests +in CIAO_ROOT/CIDL target CIDL features and code generated +from .cidl files. The test in this directory particularly +stresses the code generation of the CIDL compiler. This +code includes the executor mapping IDL, the servant code, +and the executor implementation code. The latter is not +fully generated of course, it's merely classes (one for +each component executor, home executor, and facet executor) +with the spec-defined operations filled in, but with the +IDL-defined operations and attributes left blank. + +The IDL files in this test include most if not all of the +IDL3 features that might cause a problem in code generation - +catching operations and attributes for supported interfaces, +operations and attributes for supported interface base +classes, operations and attributes for inherited home +classes, factory and finder operations for homes and those +inherited from base homes - you get the idea. More stuff +will be added as we think of it or a problem crops up.The object +of this test is for all builds to complete successfully - +there's no execution involved, since every build is a +library, there's no executable to drive it. + +Please see the README file in CIAO_ROOT for info on how +to set up builds with MPC. The builds in this test depend +directly on CIAO_Container, CIAO_Servant and CIAO_Stub, +and indirectly on everything those three depend on. There's +a list in the above mentioned README file - to build those +libraries, you'll of course need ACE (ACE_ROOT/ace), TAO +(ACE_ROOT/TAO/tao) the IDL compiler (3 builds in +ACE_ROOT/TAO/TAO_IDL) and gperf (ACE_ROOT/apps/gperf/src). + +Enjoy! + +Jeff
\ No newline at end of file diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl new file mode 100644 index 00000000000..15c32fe82b3 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl @@ -0,0 +1,51 @@ +// $Id$ +/** + * @file Attributes.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + */ + +#include <Components.idl> + +module Attributes +{ + component Foo + { + attribute float test; + attribute long testA, testB; + }; + + component Bar + { + readonly attribute float test1; + readonly attribute long testB, testC; + }; + + exception FooException + { + }; + + exception BarException + { + }; + + component FooRaises + { + attribute float test2 getraises (FooException); + }; + + component BarRaises + { + attribute float test3 setraises (BarException); + }; + + component FooBarRaises + { + attribute float test4 + getraises (FooException) setraises (BarException); + }; + + component ROFooRaises + { + readonly attribute float test5 raises (FooException); + }; +}; diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc new file mode 100644 index 00000000000..eea659666a3 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Attributes" + +project(Attributes_stub): ccm_stub { + + sharedname = Attributes_stub + idlflags += -Wb,stub_export_macro=ATTRIBUTES_STUB_Export -Wb,stub_export_include=Attributes_stub_export.h -Wb,skel_export_macro=ATTRIBUTES_SVNT_Export -Wb,skel_export_include=Attributes_svnt_export.h + dynamicflags = ATTRIBUTES_STUB_BUILD_DLL + + IDL_Files { + Attributes.idl + } + + Source_Files { + AttributesC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h new file mode 100644 index 00000000000..dfa59c5b267 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ATTRIBUTES_STUB +// ------------------------------ +#ifndef ATTRIBUTES_STUB_EXPORT_H +#define ATTRIBUTES_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ATTRIBUTES_STUB_HAS_DLL) +# define ATTRIBUTES_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ATTRIBUTES_STUB_HAS_DLL */ + +#if !defined (ATTRIBUTES_STUB_HAS_DLL) +# define ATTRIBUTES_STUB_HAS_DLL 1 +#endif /* ! ATTRIBUTES_STUB_HAS_DLL */ + +#if defined (ATTRIBUTES_STUB_HAS_DLL) && (ATTRIBUTES_STUB_HAS_DLL == 1) +# if defined (ATTRIBUTES_STUB_BUILD_DLL) +# define ATTRIBUTES_STUB_Export ACE_Proper_Export_Flag +# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ATTRIBUTES_STUB_BUILD_DLL */ +# define ATTRIBUTES_STUB_Export ACE_Proper_Import_Flag +# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ATTRIBUTES_STUB_BUILD_DLL */ +#else /* ATTRIBUTES_STUB_HAS_DLL == 1 */ +# define ATTRIBUTES_STUB_Export +# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) +# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ATTRIBUTES_STUB_HAS_DLL == 1 */ + +// Set ATTRIBUTES_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ATTRIBUTES_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ATTRIBUTES_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ATTRIBUTES_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ATTRIBUTES_STUB_NTRACE */ + +#if (ATTRIBUTES_STUB_NTRACE == 1) +# define ATTRIBUTES_STUB_TRACE(X) +#else /* (ATTRIBUTES_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ATTRIBUTES_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ATTRIBUTES_STUB_NTRACE == 1) */ + +#endif /* ATTRIBUTES_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h new file mode 100644 index 00000000000..e641264d206 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ATTRIBUTES_SVNT +// ------------------------------ +#ifndef ATTRIBUTES_SVNT_EXPORT_H +#define ATTRIBUTES_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ATTRIBUTES_SVNT_HAS_DLL) +# define ATTRIBUTES_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ATTRIBUTES_SVNT_HAS_DLL */ + +#if !defined (ATTRIBUTES_SVNT_HAS_DLL) +# define ATTRIBUTES_SVNT_HAS_DLL 1 +#endif /* ! ATTRIBUTES_SVNT_HAS_DLL */ + +#if defined (ATTRIBUTES_SVNT_HAS_DLL) && (ATTRIBUTES_SVNT_HAS_DLL == 1) +# if defined (ATTRIBUTES_SVNT_BUILD_DLL) +# define ATTRIBUTES_SVNT_Export ACE_Proper_Export_Flag +# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ATTRIBUTES_SVNT_BUILD_DLL */ +# define ATTRIBUTES_SVNT_Export ACE_Proper_Import_Flag +# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ATTRIBUTES_SVNT_BUILD_DLL */ +#else /* ATTRIBUTES_SVNT_HAS_DLL == 1 */ +# define ATTRIBUTES_SVNT_Export +# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) +# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ATTRIBUTES_SVNT_HAS_DLL == 1 */ + +// Set ATTRIBUTES_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ATTRIBUTES_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ATTRIBUTES_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ATTRIBUTES_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ATTRIBUTES_SVNT_NTRACE */ + +#if (ATTRIBUTES_SVNT_NTRACE == 1) +# define ATTRIBUTES_SVNT_TRACE(X) +#else /* (ATTRIBUTES_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ATTRIBUTES_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ATTRIBUTES_SVNT_NTRACE == 1) */ + +#endif /* ATTRIBUTES_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl new file mode 100644 index 00000000000..e07fa13a7d2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl @@ -0,0 +1,29 @@ +// $Id$ +/** + * @file EventSink.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + */ + +#include <Components.idl> + +module EventSink +{ + eventtype foo_event + { + }; + + eventtype bar_event + { + }; + + component Foo + { + consumes foo_event c_foo; + }; + + component Bar : Foo + { + consumes bar_event c_bar; + }; + +}; diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc new file mode 100644 index 00000000000..79ca1898fd6 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc @@ -0,0 +1,18 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n EventSink" + +project(EventSink_stub): ccm_stub { + + sharedname = EventSink_stub + idlflags += -Wb,stub_export_macro=EVENTSINK_STUB_Export -Wb,stub_export_include=EventSink_stub_export.h -Wb,skel_export_macro=EVENTSINK_SVNT_Export -Wb,skel_export_include=EventSink_svnt_export.h + dynamicflags = EVENTSINK_STUB_BUILD_DLL + + IDL_Files { + EventSink.idl + } + + Source_Files { + EventSinkC.cpp + } +} + diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h new file mode 100644 index 00000000000..e2a7f876165 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl EVENTSINK_STUB +// ------------------------------ +#ifndef EVENTSINK_STUB_EXPORT_H +#define EVENTSINK_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSINK_STUB_HAS_DLL) +# define EVENTSINK_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && EVENTSINK_STUB_HAS_DLL */ + +#if !defined (EVENTSINK_STUB_HAS_DLL) +# define EVENTSINK_STUB_HAS_DLL 1 +#endif /* ! EVENTSINK_STUB_HAS_DLL */ + +#if defined (EVENTSINK_STUB_HAS_DLL) && (EVENTSINK_STUB_HAS_DLL == 1) +# if defined (EVENTSINK_STUB_BUILD_DLL) +# define EVENTSINK_STUB_Export ACE_Proper_Export_Flag +# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* EVENTSINK_STUB_BUILD_DLL */ +# define EVENTSINK_STUB_Export ACE_Proper_Import_Flag +# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* EVENTSINK_STUB_BUILD_DLL */ +#else /* EVENTSINK_STUB_HAS_DLL == 1 */ +# define EVENTSINK_STUB_Export +# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) +# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* EVENTSINK_STUB_HAS_DLL == 1 */ + +// Set EVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (EVENTSINK_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define EVENTSINK_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define EVENTSINK_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !EVENTSINK_STUB_NTRACE */ + +#if (EVENTSINK_STUB_NTRACE == 1) +# define EVENTSINK_STUB_TRACE(X) +#else /* (EVENTSINK_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define EVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (EVENTSINK_STUB_NTRACE == 1) */ + +#endif /* EVENTSINK_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h new file mode 100644 index 00000000000..b30cb9768c2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl EVENTSINK_SVNT +// ------------------------------ +#ifndef EVENTSINK_SVNT_EXPORT_H +#define EVENTSINK_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSINK_SVNT_HAS_DLL) +# define EVENTSINK_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && EVENTSINK_SVNT_HAS_DLL */ + +#if !defined (EVENTSINK_SVNT_HAS_DLL) +# define EVENTSINK_SVNT_HAS_DLL 1 +#endif /* ! EVENTSINK_SVNT_HAS_DLL */ + +#if defined (EVENTSINK_SVNT_HAS_DLL) && (EVENTSINK_SVNT_HAS_DLL == 1) +# if defined (EVENTSINK_SVNT_BUILD_DLL) +# define EVENTSINK_SVNT_Export ACE_Proper_Export_Flag +# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* EVENTSINK_SVNT_BUILD_DLL */ +# define EVENTSINK_SVNT_Export ACE_Proper_Import_Flag +# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* EVENTSINK_SVNT_BUILD_DLL */ +#else /* EVENTSINK_SVNT_HAS_DLL == 1 */ +# define EVENTSINK_SVNT_Export +# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) +# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* EVENTSINK_SVNT_HAS_DLL == 1 */ + +// Set EVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (EVENTSINK_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define EVENTSINK_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define EVENTSINK_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !EVENTSINK_SVNT_NTRACE */ + +#if (EVENTSINK_SVNT_NTRACE == 1) +# define EVENTSINK_SVNT_TRACE(X) +#else /* (EVENTSINK_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define EVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (EVENTSINK_SVNT_NTRACE == 1) */ + +#endif /* EVENTSINK_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl new file mode 100644 index 00000000000..f5614d964e5 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl @@ -0,0 +1,24 @@ +// $Id$ +/** + * @file EventSource.idl + * @author Will Otte <wotte@dre.vanderblit.edu> + */ + +#include <Components.idl> + +module PublishesEmits +{ + eventtype foo_event + { + }; + + component Foo + { + publishes foo_event p_foo; + }; + + component Bar + { + emits foo_event foo; + }; +}; diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc new file mode 100644 index 00000000000..5f81314a9cf --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n EventSource" + +project(EventSource_stub): ccm_stub { + + sharedname = EventSource_stub + idlflags += -Wb,stub_export_macro=EVENTSOURCE_STUB_Export -Wb,stub_export_include=EventSource_stub_export.h -Wb,skel_export_macro=EVENTSOURCE_SVNT_Export -Wb,skel_export_include=EventSource_svnt_export.h + dynamicflags = EVENTSOURCE_STUB_BUILD_DLL + + IDL_Files { + EventSource.idl + } + + Source_Files { + EventSourceC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h new file mode 100644 index 00000000000..a0cf71bbe6d --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl EVENTSOURCE_STUB +// ------------------------------ +#ifndef EVENTSOURCE_STUB_EXPORT_H +#define EVENTSOURCE_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSOURCE_STUB_HAS_DLL) +# define EVENTSOURCE_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && EVENTSOURCE_STUB_HAS_DLL */ + +#if !defined (EVENTSOURCE_STUB_HAS_DLL) +# define EVENTSOURCE_STUB_HAS_DLL 1 +#endif /* ! EVENTSOURCE_STUB_HAS_DLL */ + +#if defined (EVENTSOURCE_STUB_HAS_DLL) && (EVENTSOURCE_STUB_HAS_DLL == 1) +# if defined (EVENTSOURCE_STUB_BUILD_DLL) +# define EVENTSOURCE_STUB_Export ACE_Proper_Export_Flag +# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* EVENTSOURCE_STUB_BUILD_DLL */ +# define EVENTSOURCE_STUB_Export ACE_Proper_Import_Flag +# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* EVENTSOURCE_STUB_BUILD_DLL */ +#else /* EVENTSOURCE_STUB_HAS_DLL == 1 */ +# define EVENTSOURCE_STUB_Export +# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) +# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* EVENTSOURCE_STUB_HAS_DLL == 1 */ + +// Set EVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (EVENTSOURCE_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define EVENTSOURCE_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define EVENTSOURCE_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !EVENTSOURCE_STUB_NTRACE */ + +#if (EVENTSOURCE_STUB_NTRACE == 1) +# define EVENTSOURCE_STUB_TRACE(X) +#else /* (EVENTSOURCE_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define EVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (EVENTSOURCE_STUB_NTRACE == 1) */ + +#endif /* EVENTSOURCE_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h new file mode 100644 index 00000000000..dd5eeacd906 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl EVENTSOURCE_SVNT +// ------------------------------ +#ifndef EVENTSOURCE_SVNT_EXPORT_H +#define EVENTSOURCE_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSOURCE_SVNT_HAS_DLL) +# define EVENTSOURCE_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && EVENTSOURCE_SVNT_HAS_DLL */ + +#if !defined (EVENTSOURCE_SVNT_HAS_DLL) +# define EVENTSOURCE_SVNT_HAS_DLL 1 +#endif /* ! EVENTSOURCE_SVNT_HAS_DLL */ + +#if defined (EVENTSOURCE_SVNT_HAS_DLL) && (EVENTSOURCE_SVNT_HAS_DLL == 1) +# if defined (EVENTSOURCE_SVNT_BUILD_DLL) +# define EVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag +# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* EVENTSOURCE_SVNT_BUILD_DLL */ +# define EVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag +# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* EVENTSOURCE_SVNT_BUILD_DLL */ +#else /* EVENTSOURCE_SVNT_HAS_DLL == 1 */ +# define EVENTSOURCE_SVNT_Export +# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) +# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* EVENTSOURCE_SVNT_HAS_DLL == 1 */ + +// Set EVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (EVENTSOURCE_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define EVENTSOURCE_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define EVENTSOURCE_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !EVENTSOURCE_SVNT_NTRACE */ + +#if (EVENTSOURCE_SVNT_NTRACE == 1) +# define EVENTSOURCE_SVNT_TRACE(X) +#else /* (EVENTSOURCE_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define EVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (EVENTSOURCE_SVNT_NTRACE == 1) */ + +#endif /* EVENTSOURCE_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl new file mode 100644 index 00000000000..eedabcf3184 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl @@ -0,0 +1,46 @@ +// $Id$ +/** + * @file Facets.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * This IDL file tests Facets within components. + */ + +#include <Components.idl> + +module Facets +{ + interface foo_interface + { + }; + + interface bar_interface + { + }; + + component Foo + { + provides foo_interface p_foo; + }; + + component Bar : Foo + { + provides bar_interface p_bar; + }; + + component FooFoo : Foo + { + provides foo_interface p_foofoo; + }; + + component FooBar + { + provides foo_interface foo; + provides bar_interface bar; + }; + + component ObjectProvider + { + provides Object foo_object; + }; +}; diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc new file mode 100644 index 00000000000..ab3da28df3d --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Facets" + +project(Facets_stub): ccm_stub { + + sharedname = Facets_stub + idlflags += -Wb,stub_export_macro=FACETS_STUB_Export -Wb,stub_export_include=Facets_stub_export.h -Wb,skel_export_macro=FACETS_SVNT_Export -Wb,skel_export_include=Facets_svnt_export.h + dynamicflags = FACETS_STUB_BUILD_DLL + + IDL_Files { + Facets.idl + } + + Source_Files { + FacetsC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h new file mode 100644 index 00000000000..025fc8215f2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl FACETS_STUB +// ------------------------------ +#ifndef FACETS_STUB_EXPORT_H +#define FACETS_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (FACETS_STUB_HAS_DLL) +# define FACETS_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && FACETS_STUB_HAS_DLL */ + +#if !defined (FACETS_STUB_HAS_DLL) +# define FACETS_STUB_HAS_DLL 1 +#endif /* ! FACETS_STUB_HAS_DLL */ + +#if defined (FACETS_STUB_HAS_DLL) && (FACETS_STUB_HAS_DLL == 1) +# if defined (FACETS_STUB_BUILD_DLL) +# define FACETS_STUB_Export ACE_Proper_Export_Flag +# define FACETS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* FACETS_STUB_BUILD_DLL */ +# define FACETS_STUB_Export ACE_Proper_Import_Flag +# define FACETS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* FACETS_STUB_BUILD_DLL */ +#else /* FACETS_STUB_HAS_DLL == 1 */ +# define FACETS_STUB_Export +# define FACETS_STUB_SINGLETON_DECLARATION(T) +# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* FACETS_STUB_HAS_DLL == 1 */ + +// Set FACETS_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (FACETS_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define FACETS_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define FACETS_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !FACETS_STUB_NTRACE */ + +#if (FACETS_STUB_NTRACE == 1) +# define FACETS_STUB_TRACE(X) +#else /* (FACETS_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define FACETS_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (FACETS_STUB_NTRACE == 1) */ + +#endif /* FACETS_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h new file mode 100644 index 00000000000..e4750de9b91 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl FACETS_SVNT +// ------------------------------ +#ifndef FACETS_SVNT_EXPORT_H +#define FACETS_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (FACETS_SVNT_HAS_DLL) +# define FACETS_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && FACETS_SVNT_HAS_DLL */ + +#if !defined (FACETS_SVNT_HAS_DLL) +# define FACETS_SVNT_HAS_DLL 1 +#endif /* ! FACETS_SVNT_HAS_DLL */ + +#if defined (FACETS_SVNT_HAS_DLL) && (FACETS_SVNT_HAS_DLL == 1) +# if defined (FACETS_SVNT_BUILD_DLL) +# define FACETS_SVNT_Export ACE_Proper_Export_Flag +# define FACETS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* FACETS_SVNT_BUILD_DLL */ +# define FACETS_SVNT_Export ACE_Proper_Import_Flag +# define FACETS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* FACETS_SVNT_BUILD_DLL */ +#else /* FACETS_SVNT_HAS_DLL == 1 */ +# define FACETS_SVNT_Export +# define FACETS_SVNT_SINGLETON_DECLARATION(T) +# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* FACETS_SVNT_HAS_DLL == 1 */ + +// Set FACETS_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (FACETS_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define FACETS_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define FACETS_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !FACETS_SVNT_NTRACE */ + +#if (FACETS_SVNT_NTRACE == 1) +# define FACETS_SVNT_TRACE(X) +#else /* (FACETS_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define FACETS_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (FACETS_SVNT_NTRACE == 1) */ + +#endif /* FACETS_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl new file mode 100644 index 00000000000..bd0af99cd86 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl @@ -0,0 +1,68 @@ +// $Id$ +/** + * @file Receptacles.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests Receptacles within components. + */ + +#include <Components.idl> + +module ReceptaclesSingle +{ + interface foo_interface + { + }; + + interface bar_interface + { + }; + + component Foo + { + uses foo_interface u_foo; + }; + + component Bar : Foo + { + uses bar_interface u_bar; + }; + + component FooBar + { + uses foo_interface foo; + uses bar_interface bar; + }; + + component ObjectFoo + { + uses Object foo; + }; + +}; + +module ReceptaclesMultiple +{ + interface foo_interface + { + }; + + interface bar_interface + { + }; + + component Foo + { + uses multiple foo_interface um_foo; + }; + + component Bar + { + uses multiple bar_interface um_bar; + }; + + component ObjectFoo + { + uses multiple Object foo; + }; +}; diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc new file mode 100644 index 00000000000..401f8d0c5c1 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc @@ -0,0 +1,21 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Receptacles" + +project(Receptacles_stub): ccm_stub { + + sharedname = Receptacles_stub + idlflags += -Wb,stub_export_macro=RECEPTACLES_STUB_Export \ + -Wb,stub_export_include=Receptacles_stub_export.h \ + -Wb,skel_export_macro=RECEPTACLES_SVNT_Export \ + -Wb,skel_export_include=Receptacles_svnt_export.h + + dynamicflags = RECEPTACLES_STUB_BUILD_DLL + + IDL_Files { + Receptacles.idl + } + + Source_Files { + ReceptaclesC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h new file mode 100644 index 00000000000..15dedbc8a73 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl RECEPTACLES_STUB +// ------------------------------ +#ifndef RECEPTACLES_STUB_EXPORT_H +#define RECEPTACLES_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEPTACLES_STUB_HAS_DLL) +# define RECEPTACLES_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RECEPTACLES_STUB_HAS_DLL */ + +#if !defined (RECEPTACLES_STUB_HAS_DLL) +# define RECEPTACLES_STUB_HAS_DLL 1 +#endif /* ! RECEPTACLES_STUB_HAS_DLL */ + +#if defined (RECEPTACLES_STUB_HAS_DLL) && (RECEPTACLES_STUB_HAS_DLL == 1) +# if defined (RECEPTACLES_STUB_BUILD_DLL) +# define RECEPTACLES_STUB_Export ACE_Proper_Export_Flag +# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* RECEPTACLES_STUB_BUILD_DLL */ +# define RECEPTACLES_STUB_Export ACE_Proper_Import_Flag +# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* RECEPTACLES_STUB_BUILD_DLL */ +#else /* RECEPTACLES_STUB_HAS_DLL == 1 */ +# define RECEPTACLES_STUB_Export +# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) +# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* RECEPTACLES_STUB_HAS_DLL == 1 */ + +// Set RECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (RECEPTACLES_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define RECEPTACLES_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define RECEPTACLES_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !RECEPTACLES_STUB_NTRACE */ + +#if (RECEPTACLES_STUB_NTRACE == 1) +# define RECEPTACLES_STUB_TRACE(X) +#else /* (RECEPTACLES_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define RECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (RECEPTACLES_STUB_NTRACE == 1) */ + +#endif /* RECEPTACLES_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h new file mode 100644 index 00000000000..4a4a4f52dcd --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl RECEPTACLES_SVNT +// ------------------------------ +#ifndef RECEPTACLES_SVNT_EXPORT_H +#define RECEPTACLES_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEPTACLES_SVNT_HAS_DLL) +# define RECEPTACLES_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RECEPTACLES_SVNT_HAS_DLL */ + +#if !defined (RECEPTACLES_SVNT_HAS_DLL) +# define RECEPTACLES_SVNT_HAS_DLL 1 +#endif /* ! RECEPTACLES_SVNT_HAS_DLL */ + +#if defined (RECEPTACLES_SVNT_HAS_DLL) && (RECEPTACLES_SVNT_HAS_DLL == 1) +# if defined (RECEPTACLES_SVNT_BUILD_DLL) +# define RECEPTACLES_SVNT_Export ACE_Proper_Export_Flag +# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* RECEPTACLES_SVNT_BUILD_DLL */ +# define RECEPTACLES_SVNT_Export ACE_Proper_Import_Flag +# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* RECEPTACLES_SVNT_BUILD_DLL */ +#else /* RECEPTACLES_SVNT_HAS_DLL == 1 */ +# define RECEPTACLES_SVNT_Export +# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) +# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* RECEPTACLES_SVNT_HAS_DLL == 1 */ + +// Set RECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (RECEPTACLES_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define RECEPTACLES_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define RECEPTACLES_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !RECEPTACLES_SVNT_NTRACE */ + +#if (RECEPTACLES_SVNT_NTRACE == 1) +# define RECEPTACLES_SVNT_TRACE(X) +#else /* (RECEPTACLES_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define RECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (RECEPTACLES_SVNT_NTRACE == 1) */ + +#endif /* RECEPTACLES_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl new file mode 100644 index 00000000000..8b020a77e54 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl @@ -0,0 +1,96 @@ +// $Id$ +/** + * @file SimpleComponent.idl + * + * Tests simple component declarations. + */ + +#include <Components.idl> + +module VerySimple +{ + + component Foo + { + }; + + home FooHome manages Foo + { + }; + +}; + +module SupportsInterface +{ + interface foo_interface + { + }; + + component Foo supports foo_interface + { + }; + + home FooHome manages Foo + { + }; + +}; + + +module SupportsMultiple +{ + interface foo_interface + { + }; + + interface bar_interface + { + }; + + component FooBar supports foo_interface, bar_interface + { + }; + + home FooBarHome manages FooBar + { + }; +}; + +module Inheritance +{ + interface foo_interface + { + }; + + interface Bar_interface + { + }; + + component Foo supports foo_interface + { + }; + + component Bar : Foo + { + }; + + home FooHome manages Foo + { + }; + + home BarHome manages Bar + { + }; + + +}; + +module Bug_2790_Regression +{ + // It is legal for a derived component to support an interface + interface Wibble {}; + interface Wobble {}; + component Bobble {}; + component Bibble : Bobble supports Wibble, Wobble {}; +}; + diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc new file mode 100644 index 00000000000..f2b44a8123e --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc @@ -0,0 +1,21 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl SimpleComponent" + +project(SimpleComponent_stub_idl3): ccm_stub { + + sharedname = SimpleComponent_stub + idlflags += -Wb,stub_export_macro=SIMPLECOMPONENT_STUB_Export \ + -Wb,stub_export_include=SimpleComponent_stub_export.h \ + -Wb,skel_export_macro=SIMPLECOMPONENT_SVNT_Export \ + -Wb,skel_export_include=SimpleComponent_svnt_export.h + + dynamicflags = SIMPLECOMPONENT_STUB_BUILD_DLL + + IDL_Files { + SimpleComponent.idl + } + + Source_Files { + SimpleComponentC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h new file mode 100644 index 00000000000..add746da8f5 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_EXEC +// ------------------------------ +#ifndef SIMPLECOMPONENT_EXEC_EXPORT_H +#define SIMPLECOMPONENT_EXEC_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_EXEC_HAS_DLL) +# define SIMPLECOMPONENT_EXEC_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_EXEC_HAS_DLL */ + +#if !defined (SIMPLECOMPONENT_EXEC_HAS_DLL) +# define SIMPLECOMPONENT_EXEC_HAS_DLL 1 +#endif /* ! SIMPLECOMPONENT_EXEC_HAS_DLL */ + +#if defined (SIMPLECOMPONENT_EXEC_HAS_DLL) && (SIMPLECOMPONENT_EXEC_HAS_DLL == 1) +# if defined (SIMPLECOMPONENT_EXEC_BUILD_DLL) +# define SIMPLECOMPONENT_EXEC_Export ACE_Proper_Export_Flag +# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* SIMPLECOMPONENT_EXEC_BUILD_DLL */ +# define SIMPLECOMPONENT_EXEC_Export ACE_Proper_Import_Flag +# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* SIMPLECOMPONENT_EXEC_BUILD_DLL */ +#else /* SIMPLECOMPONENT_EXEC_HAS_DLL == 1 */ +# define SIMPLECOMPONENT_EXEC_Export +# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) +# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* SIMPLECOMPONENT_EXEC_HAS_DLL == 1 */ + +// Set SIMPLECOMPONENT_EXEC_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (SIMPLECOMPONENT_EXEC_NTRACE) +# if (ACE_NTRACE == 1) +# define SIMPLECOMPONENT_EXEC_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define SIMPLECOMPONENT_EXEC_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !SIMPLECOMPONENT_EXEC_NTRACE */ + +#if (SIMPLECOMPONENT_EXEC_NTRACE == 1) +# define SIMPLECOMPONENT_EXEC_TRACE(X) +#else /* (SIMPLECOMPONENT_EXEC_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define SIMPLECOMPONENT_EXEC_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (SIMPLECOMPONENT_EXEC_NTRACE == 1) */ + +#endif /* SIMPLECOMPONENT_EXEC_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h new file mode 100644 index 00000000000..eb8cb7a6c97 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_STUB +// ------------------------------ +#ifndef SIMPLECOMPONENT_STUB_EXPORT_H +#define SIMPLECOMPONENT_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_STUB_HAS_DLL) +# define SIMPLECOMPONENT_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_STUB_HAS_DLL */ + +#if !defined (SIMPLECOMPONENT_STUB_HAS_DLL) +# define SIMPLECOMPONENT_STUB_HAS_DLL 1 +#endif /* ! SIMPLECOMPONENT_STUB_HAS_DLL */ + +#if defined (SIMPLECOMPONENT_STUB_HAS_DLL) && (SIMPLECOMPONENT_STUB_HAS_DLL == 1) +# if defined (SIMPLECOMPONENT_STUB_BUILD_DLL) +# define SIMPLECOMPONENT_STUB_Export ACE_Proper_Export_Flag +# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* SIMPLECOMPONENT_STUB_BUILD_DLL */ +# define SIMPLECOMPONENT_STUB_Export ACE_Proper_Import_Flag +# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* SIMPLECOMPONENT_STUB_BUILD_DLL */ +#else /* SIMPLECOMPONENT_STUB_HAS_DLL == 1 */ +# define SIMPLECOMPONENT_STUB_Export +# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) +# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* SIMPLECOMPONENT_STUB_HAS_DLL == 1 */ + +// Set SIMPLECOMPONENT_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (SIMPLECOMPONENT_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define SIMPLECOMPONENT_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define SIMPLECOMPONENT_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !SIMPLECOMPONENT_STUB_NTRACE */ + +#if (SIMPLECOMPONENT_STUB_NTRACE == 1) +# define SIMPLECOMPONENT_STUB_TRACE(X) +#else /* (SIMPLECOMPONENT_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define SIMPLECOMPONENT_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (SIMPLECOMPONENT_STUB_NTRACE == 1) */ + +#endif /* SIMPLECOMPONENT_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h new file mode 100644 index 00000000000..694af85e994 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_SVNT +// ------------------------------ +#ifndef SIMPLECOMPONENT_SVNT_EXPORT_H +#define SIMPLECOMPONENT_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_SVNT_HAS_DLL) +# define SIMPLECOMPONENT_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_SVNT_HAS_DLL */ + +#if !defined (SIMPLECOMPONENT_SVNT_HAS_DLL) +# define SIMPLECOMPONENT_SVNT_HAS_DLL 1 +#endif /* ! SIMPLECOMPONENT_SVNT_HAS_DLL */ + +#if defined (SIMPLECOMPONENT_SVNT_HAS_DLL) && (SIMPLECOMPONENT_SVNT_HAS_DLL == 1) +# if defined (SIMPLECOMPONENT_SVNT_BUILD_DLL) +# define SIMPLECOMPONENT_SVNT_Export ACE_Proper_Export_Flag +# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* SIMPLECOMPONENT_SVNT_BUILD_DLL */ +# define SIMPLECOMPONENT_SVNT_Export ACE_Proper_Import_Flag +# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* SIMPLECOMPONENT_SVNT_BUILD_DLL */ +#else /* SIMPLECOMPONENT_SVNT_HAS_DLL == 1 */ +# define SIMPLECOMPONENT_SVNT_Export +# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) +# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* SIMPLECOMPONENT_SVNT_HAS_DLL == 1 */ + +// Set SIMPLECOMPONENT_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (SIMPLECOMPONENT_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define SIMPLECOMPONENT_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define SIMPLECOMPONENT_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !SIMPLECOMPONENT_SVNT_NTRACE */ + +#if (SIMPLECOMPONENT_SVNT_NTRACE == 1) +# define SIMPLECOMPONENT_SVNT_TRACE(X) +#else /* (SIMPLECOMPONENT_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define SIMPLECOMPONENT_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (SIMPLECOMPONENT_SVNT_NTRACE == 1) */ + +#endif /* SIMPLECOMPONENT_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl new file mode 100644 index 00000000000..15eb50971b3 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl @@ -0,0 +1,38 @@ +// $Id$ +/** + * @file Abstract.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests the compilation of abstract events. + */ + +#include <Components.idl> + +module AbstractEvents +{ + abstract eventtype foo_event + { + }; + + abstract eventtype InhFoo_event : foo_event + { + }; + + abstract eventtype bar_event + { + }; + + abstract eventtype foobar_event : foo_event, bar_event + { + }; + + // test event multiple inheretance + + eventtype concrete_foo + { + }; + + eventtype concrete_foobar : concrete_foo, foo_event + { + }; +}; diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc new file mode 100644 index 00000000000..83d67de5f39 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Abstract" + +project(Abstract_stub): ccm_stub { + + sharedname = Abstract_stub + idlflags += -Wb,stub_export_macro=ABSTRACT_STUB_Export -Wb,stub_export_include=Abstract_stub_export.h -Wb,skel_export_macro=ABSTRACT_SVNT_Export -Wb,skel_export_include=Abstract_svnt_export.h + dynamicflags = ABSTRACT_STUB_BUILD_DLL + + IDL_Files { + Abstract.idl + } + + Source_Files { + AbstractC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h new file mode 100644 index 00000000000..2ec86f36950 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ABSTRACT_STUB +// ------------------------------ +#ifndef ABSTRACT_STUB_EXPORT_H +#define ABSTRACT_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ABSTRACT_STUB_HAS_DLL) +# define ABSTRACT_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ABSTRACT_STUB_HAS_DLL */ + +#if !defined (ABSTRACT_STUB_HAS_DLL) +# define ABSTRACT_STUB_HAS_DLL 1 +#endif /* ! ABSTRACT_STUB_HAS_DLL */ + +#if defined (ABSTRACT_STUB_HAS_DLL) && (ABSTRACT_STUB_HAS_DLL == 1) +# if defined (ABSTRACT_STUB_BUILD_DLL) +# define ABSTRACT_STUB_Export ACE_Proper_Export_Flag +# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ABSTRACT_STUB_BUILD_DLL */ +# define ABSTRACT_STUB_Export ACE_Proper_Import_Flag +# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ABSTRACT_STUB_BUILD_DLL */ +#else /* ABSTRACT_STUB_HAS_DLL == 1 */ +# define ABSTRACT_STUB_Export +# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) +# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ABSTRACT_STUB_HAS_DLL == 1 */ + +// Set ABSTRACT_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ABSTRACT_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ABSTRACT_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ABSTRACT_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ABSTRACT_STUB_NTRACE */ + +#if (ABSTRACT_STUB_NTRACE == 1) +# define ABSTRACT_STUB_TRACE(X) +#else /* (ABSTRACT_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ABSTRACT_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ABSTRACT_STUB_NTRACE == 1) */ + +#endif /* ABSTRACT_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h new file mode 100644 index 00000000000..890926fec22 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ABSTRACT_SVNT +// ------------------------------ +#ifndef ABSTRACT_SVNT_EXPORT_H +#define ABSTRACT_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ABSTRACT_SVNT_HAS_DLL) +# define ABSTRACT_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ABSTRACT_SVNT_HAS_DLL */ + +#if !defined (ABSTRACT_SVNT_HAS_DLL) +# define ABSTRACT_SVNT_HAS_DLL 1 +#endif /* ! ABSTRACT_SVNT_HAS_DLL */ + +#if defined (ABSTRACT_SVNT_HAS_DLL) && (ABSTRACT_SVNT_HAS_DLL == 1) +# if defined (ABSTRACT_SVNT_BUILD_DLL) +# define ABSTRACT_SVNT_Export ACE_Proper_Export_Flag +# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ABSTRACT_SVNT_BUILD_DLL */ +# define ABSTRACT_SVNT_Export ACE_Proper_Import_Flag +# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ABSTRACT_SVNT_BUILD_DLL */ +#else /* ABSTRACT_SVNT_HAS_DLL == 1 */ +# define ABSTRACT_SVNT_Export +# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) +# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ABSTRACT_SVNT_HAS_DLL == 1 */ + +// Set ABSTRACT_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ABSTRACT_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ABSTRACT_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ABSTRACT_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ABSTRACT_SVNT_NTRACE */ + +#if (ABSTRACT_SVNT_NTRACE == 1) +# define ABSTRACT_SVNT_TRACE(X) +#else /* (ABSTRACT_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ABSTRACT_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ABSTRACT_SVNT_NTRACE == 1) */ + +#endif /* ABSTRACT_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Events/Any/Any.mpc b/modules/CIAO/tests/IDL3/Events/Any/Any.mpc new file mode 100644 index 00000000000..1d95ba0b319 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Any/Any.mpc @@ -0,0 +1,26 @@ +// $Id$ + +project(EventAny_local): ccm_stub { + exename = EventAny + idlflags += -SS + + IDL_Files { + EventAny.idl + } + + Source_Files { + EventAnyC.cpp + main.cpp + } + + Header_Files { + EventAnyC.h + } + + Inline_Files { + EventAnyC.inl + } + + Template_Files { + } +} diff --git a/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl b/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl new file mode 100644 index 00000000000..d53ddf55c08 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl @@ -0,0 +1,16 @@ +// $Id$ +/** + * @file EventAny.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests Any insertion/extraction of event types, + * and (de)marshaling of such Anys. + */ + +#include <Components.idl> + +eventtype StringMsg +{ + public string str_msg; +}; + diff --git a/modules/CIAO/tests/IDL3/Events/Any/README b/modules/CIAO/tests/IDL3/Events/Any/README new file mode 100644 index 00000000000..7bf91be5776 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Any/README @@ -0,0 +1,35 @@ + +Event Any Test +======================= + +This test defines, instantiates, and initializes an IDL +eventtype with a public string member, inserts it into +an Any, marshals the Any, demarshals the Any, extracts +the eventtype, and compares the resulting member string +with the original. The purpose of the test is to ensure +that (1) the demarshaling of the Any and (2) the +extraction of the eventtype, are successful, since both +these actions are done interpretively by traversing the +eventtype's type code. The motivation for the test was +the failure of these actions due to missing cases in +the interpretive demarshaling code corresponding to +the kind of the eventtype's type code (CORBA::tk_event). + +There are several places the test can fail: + +- marshaling of the Any +- demarshaling of the Any +- extraction from the Any +- string compare of the sent and received eventtype members + +Note that the test code registers a valuetype factory +with the orb, a necessary step in extracting the +eventtype from the Any. In a real-world use case (such +as an event channel) such a factory would have to +be registered with the orb anywhere the eventtype is +to be demarshaled from a CDR stream or extracted from +an Any that was itself demarshaled. + +Jeff Parsons + + diff --git a/modules/CIAO/tests/IDL3/Events/Any/main.cpp b/modules/CIAO/tests/IDL3/Events/Any/main.cpp new file mode 100644 index 00000000000..4ce90923aa1 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Any/main.cpp @@ -0,0 +1,85 @@ +// $Id$ + +#include "EventAnyC.h" +#include "tao/AnyTypeCode/Any.h" +#include "ace/Get_Opt.h" + +void +insert_into_any (CORBA::Any& any, Components::EventBase* vb) +{ + any <<= vb; +} + +void +debug_msg (const char *msg) +{ + ACE_ERROR ((LM_ERROR, "Error: %s\n", msg)); +} + +int +ACE_TMAIN(int argc, ACE_TCHAR *argv[]) +{ + try + { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + StringMsg_init *StringMsg_factory = new StringMsg_init; + + orb->register_value_factory (StringMsg_factory->tao_repository_id (), + StringMsg_factory); + StringMsg_factory->_remove_ref (); // release ownership + + const char *test_str = "a message"; + + StringMsg_var ev = new OBV_StringMsg; + ev->str_msg (test_str); + + CORBA::Any in_any; + insert_into_any (in_any, ev.in ()); + + TAO_OutputCDR out; + CORBA::Boolean good = out << in_any; + + if (!good) + { + debug_msg ("Any marshaling failed"); + return -1; + } + + TAO_InputCDR in (out); + CORBA::Any out_any; + good = in >> out_any; + + if (!good) + { + debug_msg ("Any demarshaling failed"); + return -1; + } + + StringMsg *ev_out = 0; + good = out_any >>= ev_out; + + if (!good) + { + debug_msg ("Any extraction failed"); + return -1; + } + + const char *result_str = ev_out->str_msg (); + + if (result_str == 0 || ACE_OS::strcmp (result_str, test_str) != 0) + { + debug_msg ("Extracted member string null or incorrect"); + return -1; + } + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("caught exception:"); + return 1; + } + + return 0; +} + diff --git a/modules/CIAO/tests/IDL3/Events/Any/run_test.pl b/modules/CIAO/tests/IDL3/Events/Any/run_test.pl new file mode 100755 index 00000000000..f13f9726b5b --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Any/run_test.pl @@ -0,0 +1,31 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +# The first three lines above let this script run without specifying the +# full path to perl, as long as it is in the user's PATH. +# Taken from perlrun man page. + +# Do not use environment variables here since not all platforms use ACE_ROOT +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; +use English; + +$status = 0; +$exflags = ""; + +# Run the test + +$EX = new PerlACE::Process ("EventAny"); +$EX->Arguments ($exflags); +$test = $EX->SpawnWaitKill (10); + +if ($test != 0) { + print STDERR "ERROR: test error status $test\n"; + $status = 1; +} + +exit $status; diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl b/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl new file mode 100644 index 00000000000..f9169026e88 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl @@ -0,0 +1,44 @@ +// $Id$ +/** + * @file Regular.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests the compilation of regular event types. + */ + +#include <Components.idl> + +module RegularEvents +{ + eventtype foo + { + }; + + eventtype bar + { + }; + + eventtype InhFoo : foo + { + }; + + /* @@ + * TAO_IDL cannot handle custom yet. + custom eventtype custom_foo + { + }; + + custom eventtype custom_InhFoo : foo + { + }; + */ + + eventtype Baz + { + long test_op (); + void test_op_a (in long foo, out float bar); + InhFoo test_op_b (); + }; + + +}; diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc b/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc new file mode 100644 index 00000000000..6186490384c --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc @@ -0,0 +1,20 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Regular" + +project(Regular_stub): ccm_stub { + + sharedname = Regular_stub + idlflags += -Wb,stub_export_macro=REGULAR_STUB_Export \ + -Wb,stub_export_include=Regular_stub_export.h \ + -Wb,skel_export_macro=REGULAR_SVNT_Export \ + -Wb,skel_export_include=Regular_svnt_export.h + dynamicflags = REGULAR_STUB_BUILD_DLL + + IDL_Files { + Regular.idl + } + + Source_Files { + RegularC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h b/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h new file mode 100644 index 00000000000..7185b7d78b2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl REGULAR_STUB +// ------------------------------ +#ifndef REGULAR_STUB_EXPORT_H +#define REGULAR_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (REGULAR_STUB_HAS_DLL) +# define REGULAR_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && REGULAR_STUB_HAS_DLL */ + +#if !defined (REGULAR_STUB_HAS_DLL) +# define REGULAR_STUB_HAS_DLL 1 +#endif /* ! REGULAR_STUB_HAS_DLL */ + +#if defined (REGULAR_STUB_HAS_DLL) && (REGULAR_STUB_HAS_DLL == 1) +# if defined (REGULAR_STUB_BUILD_DLL) +# define REGULAR_STUB_Export ACE_Proper_Export_Flag +# define REGULAR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* REGULAR_STUB_BUILD_DLL */ +# define REGULAR_STUB_Export ACE_Proper_Import_Flag +# define REGULAR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* REGULAR_STUB_BUILD_DLL */ +#else /* REGULAR_STUB_HAS_DLL == 1 */ +# define REGULAR_STUB_Export +# define REGULAR_STUB_SINGLETON_DECLARATION(T) +# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* REGULAR_STUB_HAS_DLL == 1 */ + +// Set REGULAR_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (REGULAR_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define REGULAR_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define REGULAR_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !REGULAR_STUB_NTRACE */ + +#if (REGULAR_STUB_NTRACE == 1) +# define REGULAR_STUB_TRACE(X) +#else /* (REGULAR_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define REGULAR_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (REGULAR_STUB_NTRACE == 1) */ + +#endif /* REGULAR_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h b/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h new file mode 100644 index 00000000000..05a2687b566 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl REGULAR_SVNT +// ------------------------------ +#ifndef REGULAR_SVNT_EXPORT_H +#define REGULAR_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (REGULAR_SVNT_HAS_DLL) +# define REGULAR_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && REGULAR_SVNT_HAS_DLL */ + +#if !defined (REGULAR_SVNT_HAS_DLL) +# define REGULAR_SVNT_HAS_DLL 1 +#endif /* ! REGULAR_SVNT_HAS_DLL */ + +#if defined (REGULAR_SVNT_HAS_DLL) && (REGULAR_SVNT_HAS_DLL == 1) +# if defined (REGULAR_SVNT_BUILD_DLL) +# define REGULAR_SVNT_Export ACE_Proper_Export_Flag +# define REGULAR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* REGULAR_SVNT_BUILD_DLL */ +# define REGULAR_SVNT_Export ACE_Proper_Import_Flag +# define REGULAR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* REGULAR_SVNT_BUILD_DLL */ +#else /* REGULAR_SVNT_HAS_DLL == 1 */ +# define REGULAR_SVNT_Export +# define REGULAR_SVNT_SINGLETON_DECLARATION(T) +# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* REGULAR_SVNT_HAS_DLL == 1 */ + +// Set REGULAR_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (REGULAR_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define REGULAR_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define REGULAR_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !REGULAR_SVNT_NTRACE */ + +#if (REGULAR_SVNT_NTRACE == 1) +# define REGULAR_SVNT_TRACE(X) +#else /* (REGULAR_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define REGULAR_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (REGULAR_SVNT_NTRACE == 1) */ + +#endif /* REGULAR_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl new file mode 100644 index 00000000000..7dd338d871e --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl @@ -0,0 +1,54 @@ +// $Id$ +/** + * @file HomeAttributes.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests attributes in homes + */ + +#include <Components.idl> + +module HomeAttributes +{ + interface foo_interface + { + }; + + component Foo supports foo_interface + { + }; + + home FooHome manages Foo + { + attribute float test; + attribute long testA, testB; + }; + + exception FooException + { + }; + + exception BarException + { + }; + + home ROFooHome manages Foo + { + readonly attribute float test1; + readonly attribute long testB, testC; + }; + + home FooRaisesHome manages Foo + { + attribute float test2 getraises (FooException); + attribute float test3 setraises (BarException); + attribute float test4 + getraises (FooException) setraises (BarException); + }; + + home ROFooRaisesHome manages Foo + { + readonly attribute float test5 raises (FooException); + }; + +}; diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc new file mode 100644 index 00000000000..063c212b83a --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n HomeAttributes" + +project(HomeAttributes_stub): ccm_stub { + + sharedname = HomeAttributes_stub + idlflags += -Wb,stub_export_macro=HOMEATTRIBUTES_STUB_Export -Wb,stub_export_include=HomeAttributes_stub_export.h -Wb,skel_export_macro=HOMEATTRIBUTES_SVNT_Export -Wb,skel_export_include=HomeAttributes_svnt_export.h + dynamicflags = HOMEATTRIBUTES_STUB_BUILD_DLL + + IDL_Files { + HomeAttributes.idl + } + + Source_Files { + HomeAttributesC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h new file mode 100644 index 00000000000..f347446a533 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl HOMEATTRIBUTES_STUB +// ------------------------------ +#ifndef HOMEATTRIBUTES_STUB_EXPORT_H +#define HOMEATTRIBUTES_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMEATTRIBUTES_STUB_HAS_DLL) +# define HOMEATTRIBUTES_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && HOMEATTRIBUTES_STUB_HAS_DLL */ + +#if !defined (HOMEATTRIBUTES_STUB_HAS_DLL) +# define HOMEATTRIBUTES_STUB_HAS_DLL 1 +#endif /* ! HOMEATTRIBUTES_STUB_HAS_DLL */ + +#if defined (HOMEATTRIBUTES_STUB_HAS_DLL) && (HOMEATTRIBUTES_STUB_HAS_DLL == 1) +# if defined (HOMEATTRIBUTES_STUB_BUILD_DLL) +# define HOMEATTRIBUTES_STUB_Export ACE_Proper_Export_Flag +# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* HOMEATTRIBUTES_STUB_BUILD_DLL */ +# define HOMEATTRIBUTES_STUB_Export ACE_Proper_Import_Flag +# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* HOMEATTRIBUTES_STUB_BUILD_DLL */ +#else /* HOMEATTRIBUTES_STUB_HAS_DLL == 1 */ +# define HOMEATTRIBUTES_STUB_Export +# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) +# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* HOMEATTRIBUTES_STUB_HAS_DLL == 1 */ + +// Set HOMEATTRIBUTES_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (HOMEATTRIBUTES_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define HOMEATTRIBUTES_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define HOMEATTRIBUTES_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !HOMEATTRIBUTES_STUB_NTRACE */ + +#if (HOMEATTRIBUTES_STUB_NTRACE == 1) +# define HOMEATTRIBUTES_STUB_TRACE(X) +#else /* (HOMEATTRIBUTES_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define HOMEATTRIBUTES_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (HOMEATTRIBUTES_STUB_NTRACE == 1) */ + +#endif /* HOMEATTRIBUTES_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h new file mode 100644 index 00000000000..f99dd7694f3 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl HOMEATTRIBUTES_SVNT +// ------------------------------ +#ifndef HOMEATTRIBUTES_SVNT_EXPORT_H +#define HOMEATTRIBUTES_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMEATTRIBUTES_SVNT_HAS_DLL) +# define HOMEATTRIBUTES_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && HOMEATTRIBUTES_SVNT_HAS_DLL */ + +#if !defined (HOMEATTRIBUTES_SVNT_HAS_DLL) +# define HOMEATTRIBUTES_SVNT_HAS_DLL 1 +#endif /* ! HOMEATTRIBUTES_SVNT_HAS_DLL */ + +#if defined (HOMEATTRIBUTES_SVNT_HAS_DLL) && (HOMEATTRIBUTES_SVNT_HAS_DLL == 1) +# if defined (HOMEATTRIBUTES_SVNT_BUILD_DLL) +# define HOMEATTRIBUTES_SVNT_Export ACE_Proper_Export_Flag +# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* HOMEATTRIBUTES_SVNT_BUILD_DLL */ +# define HOMEATTRIBUTES_SVNT_Export ACE_Proper_Import_Flag +# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* HOMEATTRIBUTES_SVNT_BUILD_DLL */ +#else /* HOMEATTRIBUTES_SVNT_HAS_DLL == 1 */ +# define HOMEATTRIBUTES_SVNT_Export +# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) +# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* HOMEATTRIBUTES_SVNT_HAS_DLL == 1 */ + +// Set HOMEATTRIBUTES_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (HOMEATTRIBUTES_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define HOMEATTRIBUTES_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define HOMEATTRIBUTES_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !HOMEATTRIBUTES_SVNT_NTRACE */ + +#if (HOMEATTRIBUTES_SVNT_NTRACE == 1) +# define HOMEATTRIBUTES_SVNT_TRACE(X) +#else /* (HOMEATTRIBUTES_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define HOMEATTRIBUTES_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (HOMEATTRIBUTES_SVNT_NTRACE == 1) */ + +#endif /* HOMEATTRIBUTES_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl new file mode 100644 index 00000000000..3d9f4c5162e --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl @@ -0,0 +1,31 @@ +// $Id$ +/** + * @file Basic.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests the compileability of basic Home types. + */ + +#include <Components.idl> + +module BasicHomes +{ + + interface foo_interface {}; + + component Foo supports foo_interface {}; + + home FooHome manages Foo + { + }; + + + interface bar_interface {}; + + component Bar supports bar_interface {}; + + home BarHome supports foo_interface manages Bar + { + }; + +}; diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc new file mode 100644 index 00000000000..f676e9d9b70 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Basic" + +project(IDL3_Basic_stub): ccm_stub { + + sharedname = Homes_Basic_stub + idlflags += -Wb,stub_export_macro=BASIC_STUB_Export -Wb,stub_export_include=Basic_stub_export.h -Wb,skel_export_macro=BASIC_SVNT_Export -Wb,skel_export_include=Basic_svnt_export.h + dynamicflags = BASIC_STUB_BUILD_DLL + + IDL_Files { + Basic.idl + } + + Source_Files { + BasicC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h new file mode 100644 index 00000000000..469d1f6827c --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl BASIC_STUB +// ------------------------------ +#ifndef BASIC_STUB_EXPORT_H +#define BASIC_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (BASIC_STUB_HAS_DLL) +# define BASIC_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && BASIC_STUB_HAS_DLL */ + +#if !defined (BASIC_STUB_HAS_DLL) +# define BASIC_STUB_HAS_DLL 1 +#endif /* ! BASIC_STUB_HAS_DLL */ + +#if defined (BASIC_STUB_HAS_DLL) && (BASIC_STUB_HAS_DLL == 1) +# if defined (BASIC_STUB_BUILD_DLL) +# define BASIC_STUB_Export ACE_Proper_Export_Flag +# define BASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* BASIC_STUB_BUILD_DLL */ +# define BASIC_STUB_Export ACE_Proper_Import_Flag +# define BASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* BASIC_STUB_BUILD_DLL */ +#else /* BASIC_STUB_HAS_DLL == 1 */ +# define BASIC_STUB_Export +# define BASIC_STUB_SINGLETON_DECLARATION(T) +# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* BASIC_STUB_HAS_DLL == 1 */ + +// Set BASIC_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (BASIC_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define BASIC_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define BASIC_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !BASIC_STUB_NTRACE */ + +#if (BASIC_STUB_NTRACE == 1) +# define BASIC_STUB_TRACE(X) +#else /* (BASIC_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define BASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (BASIC_STUB_NTRACE == 1) */ + +#endif /* BASIC_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h new file mode 100644 index 00000000000..569fe626ebc --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl BASIC_SVNT +// ------------------------------ +#ifndef BASIC_SVNT_EXPORT_H +#define BASIC_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (BASIC_SVNT_HAS_DLL) +# define BASIC_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && BASIC_SVNT_HAS_DLL */ + +#if !defined (BASIC_SVNT_HAS_DLL) +# define BASIC_SVNT_HAS_DLL 1 +#endif /* ! BASIC_SVNT_HAS_DLL */ + +#if defined (BASIC_SVNT_HAS_DLL) && (BASIC_SVNT_HAS_DLL == 1) +# if defined (BASIC_SVNT_BUILD_DLL) +# define BASIC_SVNT_Export ACE_Proper_Export_Flag +# define BASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* BASIC_SVNT_BUILD_DLL */ +# define BASIC_SVNT_Export ACE_Proper_Import_Flag +# define BASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* BASIC_SVNT_BUILD_DLL */ +#else /* BASIC_SVNT_HAS_DLL == 1 */ +# define BASIC_SVNT_Export +# define BASIC_SVNT_SINGLETON_DECLARATION(T) +# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* BASIC_SVNT_HAS_DLL == 1 */ + +// Set BASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (BASIC_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define BASIC_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define BASIC_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !BASIC_SVNT_NTRACE */ + +#if (BASIC_SVNT_NTRACE == 1) +# define BASIC_SVNT_TRACE(X) +#else /* (BASIC_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define BASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (BASIC_SVNT_NTRACE == 1) */ + +#endif /* BASIC_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl new file mode 100644 index 00000000000..c9520b11c0a --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl @@ -0,0 +1,35 @@ +// $Id$ +/** + * @file Factory.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests the compilation of Homes with Factorys. + */ + +#include <Components.idl> + +module FactoryHomes +{ + exception foo_exception + { + }; + + interface foo_interface + { + }; + + component Foo supports foo_interface + { + }; + + home FooHome manages Foo + { + factory FooFactory (in string foo, in short bar) raises (foo_exception); + }; + + eventtype food + { + }; + + +}; diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc new file mode 100644 index 00000000000..90aed185da2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Factory" + +project(Factory_stub): ccm_stub { + + sharedname = Factory_stub + idlflags += -Wb,stub_export_macro=FACTORY_STUB_Export -Wb,stub_export_include=Factory_stub_export.h -Wb,skel_export_macro=FACTORY_SVNT_Export -Wb,skel_export_include=Factory_svnt_export.h + dynamicflags = FACTORY_STUB_BUILD_DLL + + IDL_Files { + Factory.idl + } + + Source_Files { + FactoryC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h new file mode 100644 index 00000000000..4a5cbf3ac4e --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl FACTORY_STUB +// ------------------------------ +#ifndef FACTORY_STUB_EXPORT_H +#define FACTORY_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (FACTORY_STUB_HAS_DLL) +# define FACTORY_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && FACTORY_STUB_HAS_DLL */ + +#if !defined (FACTORY_STUB_HAS_DLL) +# define FACTORY_STUB_HAS_DLL 1 +#endif /* ! FACTORY_STUB_HAS_DLL */ + +#if defined (FACTORY_STUB_HAS_DLL) && (FACTORY_STUB_HAS_DLL == 1) +# if defined (FACTORY_STUB_BUILD_DLL) +# define FACTORY_STUB_Export ACE_Proper_Export_Flag +# define FACTORY_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* FACTORY_STUB_BUILD_DLL */ +# define FACTORY_STUB_Export ACE_Proper_Import_Flag +# define FACTORY_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* FACTORY_STUB_BUILD_DLL */ +#else /* FACTORY_STUB_HAS_DLL == 1 */ +# define FACTORY_STUB_Export +# define FACTORY_STUB_SINGLETON_DECLARATION(T) +# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* FACTORY_STUB_HAS_DLL == 1 */ + +// Set FACTORY_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (FACTORY_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define FACTORY_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define FACTORY_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !FACTORY_STUB_NTRACE */ + +#if (FACTORY_STUB_NTRACE == 1) +# define FACTORY_STUB_TRACE(X) +#else /* (FACTORY_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define FACTORY_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (FACTORY_STUB_NTRACE == 1) */ + +#endif /* FACTORY_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h new file mode 100644 index 00000000000..3bfb6c71d9e --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl FACTORY_SVNT +// ------------------------------ +#ifndef FACTORY_SVNT_EXPORT_H +#define FACTORY_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (FACTORY_SVNT_HAS_DLL) +# define FACTORY_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && FACTORY_SVNT_HAS_DLL */ + +#if !defined (FACTORY_SVNT_HAS_DLL) +# define FACTORY_SVNT_HAS_DLL 1 +#endif /* ! FACTORY_SVNT_HAS_DLL */ + +#if defined (FACTORY_SVNT_HAS_DLL) && (FACTORY_SVNT_HAS_DLL == 1) +# if defined (FACTORY_SVNT_BUILD_DLL) +# define FACTORY_SVNT_Export ACE_Proper_Export_Flag +# define FACTORY_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* FACTORY_SVNT_BUILD_DLL */ +# define FACTORY_SVNT_Export ACE_Proper_Import_Flag +# define FACTORY_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* FACTORY_SVNT_BUILD_DLL */ +#else /* FACTORY_SVNT_HAS_DLL == 1 */ +# define FACTORY_SVNT_Export +# define FACTORY_SVNT_SINGLETON_DECLARATION(T) +# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* FACTORY_SVNT_HAS_DLL == 1 */ + +// Set FACTORY_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (FACTORY_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define FACTORY_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define FACTORY_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !FACTORY_SVNT_NTRACE */ + +#if (FACTORY_SVNT_NTRACE == 1) +# define FACTORY_SVNT_TRACE(X) +#else /* (FACTORY_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define FACTORY_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (FACTORY_SVNT_NTRACE == 1) */ + +#endif /* FACTORY_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl new file mode 100644 index 00000000000..5057b162fc3 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl @@ -0,0 +1,30 @@ +// $Id$ +/** + * @file Finder.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests the compilation of Homes with Factorys. + */ + +#include <Components.idl> + +module FactoryHomes +{ + exception foo_exception + { + }; + + interface foo_interface + { + }; + + component Foo supports foo_interface + { + }; + + home FooHome manages Foo + { + factory FooFinder (in string foo, in short bar) raises (foo_exception); + }; + +}; diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc new file mode 100644 index 00000000000..ce99a021e6f --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Finder" + +project(Finder_stub): ccm_stub { + + sharedname = Finder_stub + idlflags += -Wb,stub_export_macro=FINDER_STUB_Export -Wb,stub_export_include=Finder_stub_export.h -Wb,skel_export_macro=FINDER_SVNT_Export -Wb,skel_export_include=Finder_svnt_export.h + dynamicflags = FINDER_STUB_BUILD_DLL + + IDL_Files { + Finder.idl + } + + Source_Files { + FinderC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h new file mode 100644 index 00000000000..4d9cd68fe15 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl FINDER_STUB +// ------------------------------ +#ifndef FINDER_STUB_EXPORT_H +#define FINDER_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (FINDER_STUB_HAS_DLL) +# define FINDER_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && FINDER_STUB_HAS_DLL */ + +#if !defined (FINDER_STUB_HAS_DLL) +# define FINDER_STUB_HAS_DLL 1 +#endif /* ! FINDER_STUB_HAS_DLL */ + +#if defined (FINDER_STUB_HAS_DLL) && (FINDER_STUB_HAS_DLL == 1) +# if defined (FINDER_STUB_BUILD_DLL) +# define FINDER_STUB_Export ACE_Proper_Export_Flag +# define FINDER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* FINDER_STUB_BUILD_DLL */ +# define FINDER_STUB_Export ACE_Proper_Import_Flag +# define FINDER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* FINDER_STUB_BUILD_DLL */ +#else /* FINDER_STUB_HAS_DLL == 1 */ +# define FINDER_STUB_Export +# define FINDER_STUB_SINGLETON_DECLARATION(T) +# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* FINDER_STUB_HAS_DLL == 1 */ + +// Set FINDER_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (FINDER_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define FINDER_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define FINDER_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !FINDER_STUB_NTRACE */ + +#if (FINDER_STUB_NTRACE == 1) +# define FINDER_STUB_TRACE(X) +#else /* (FINDER_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define FINDER_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (FINDER_STUB_NTRACE == 1) */ + +#endif /* FINDER_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h new file mode 100644 index 00000000000..87a52c9df52 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl FINDER_SVNT +// ------------------------------ +#ifndef FINDER_SVNT_EXPORT_H +#define FINDER_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (FINDER_SVNT_HAS_DLL) +# define FINDER_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && FINDER_SVNT_HAS_DLL */ + +#if !defined (FINDER_SVNT_HAS_DLL) +# define FINDER_SVNT_HAS_DLL 1 +#endif /* ! FINDER_SVNT_HAS_DLL */ + +#if defined (FINDER_SVNT_HAS_DLL) && (FINDER_SVNT_HAS_DLL == 1) +# if defined (FINDER_SVNT_BUILD_DLL) +# define FINDER_SVNT_Export ACE_Proper_Export_Flag +# define FINDER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* FINDER_SVNT_BUILD_DLL */ +# define FINDER_SVNT_Export ACE_Proper_Import_Flag +# define FINDER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* FINDER_SVNT_BUILD_DLL */ +#else /* FINDER_SVNT_HAS_DLL == 1 */ +# define FINDER_SVNT_Export +# define FINDER_SVNT_SINGLETON_DECLARATION(T) +# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* FINDER_SVNT_HAS_DLL == 1 */ + +// Set FINDER_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (FINDER_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define FINDER_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define FINDER_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !FINDER_SVNT_NTRACE */ + +#if (FINDER_SVNT_NTRACE == 1) +# define FINDER_SVNT_TRACE(X) +#else /* (FINDER_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define FINDER_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (FINDER_SVNT_NTRACE == 1) */ + +#endif /* FINDER_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl new file mode 100644 index 00000000000..e1bce50fc2f --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl @@ -0,0 +1,33 @@ +// $Id$ +/** + * @file Inheritance.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests the compilation of Home inheritance. + */ + +#include <Components.idl> + +module HomeInheritance +{ + interface foo_interface + { + }; + + component Foo supports foo_interface + { + }; + + home FooHome manages Foo + { + }; + + component Bar + { + }; + + home BarHome : FooHome manages Bar + { + }; + +}; diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc new file mode 100644 index 00000000000..cd467329b2c --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Inheritance" + +project(Inheritance_stub): ccm_stub { + + sharedname = Inheritance_stub + idlflags += -Wb,stub_export_macro=INHERITANCE_STUB_Export -Wb,stub_export_include=Inheritance_stub_export.h -Wb,skel_export_macro=INHERITANCE_SVNT_Export -Wb,skel_export_include=Inheritance_svnt_export.h + dynamicflags = INHERITANCE_STUB_BUILD_DLL + + IDL_Files { + Inheritance.idl + } + + Source_Files { + InheritanceC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h new file mode 100644 index 00000000000..8850bb78150 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl INHERITANCE_STUB +// ------------------------------ +#ifndef INHERITANCE_STUB_EXPORT_H +#define INHERITANCE_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (INHERITANCE_STUB_HAS_DLL) +# define INHERITANCE_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && INHERITANCE_STUB_HAS_DLL */ + +#if !defined (INHERITANCE_STUB_HAS_DLL) +# define INHERITANCE_STUB_HAS_DLL 1 +#endif /* ! INHERITANCE_STUB_HAS_DLL */ + +#if defined (INHERITANCE_STUB_HAS_DLL) && (INHERITANCE_STUB_HAS_DLL == 1) +# if defined (INHERITANCE_STUB_BUILD_DLL) +# define INHERITANCE_STUB_Export ACE_Proper_Export_Flag +# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* INHERITANCE_STUB_BUILD_DLL */ +# define INHERITANCE_STUB_Export ACE_Proper_Import_Flag +# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* INHERITANCE_STUB_BUILD_DLL */ +#else /* INHERITANCE_STUB_HAS_DLL == 1 */ +# define INHERITANCE_STUB_Export +# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) +# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* INHERITANCE_STUB_HAS_DLL == 1 */ + +// Set INHERITANCE_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (INHERITANCE_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define INHERITANCE_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define INHERITANCE_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !INHERITANCE_STUB_NTRACE */ + +#if (INHERITANCE_STUB_NTRACE == 1) +# define INHERITANCE_STUB_TRACE(X) +#else /* (INHERITANCE_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define INHERITANCE_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (INHERITANCE_STUB_NTRACE == 1) */ + +#endif /* INHERITANCE_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h new file mode 100644 index 00000000000..083c201538a --- /dev/null +++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl INHERITANCE_SVNT +// ------------------------------ +#ifndef INHERITANCE_SVNT_EXPORT_H +#define INHERITANCE_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (INHERITANCE_SVNT_HAS_DLL) +# define INHERITANCE_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && INHERITANCE_SVNT_HAS_DLL */ + +#if !defined (INHERITANCE_SVNT_HAS_DLL) +# define INHERITANCE_SVNT_HAS_DLL 1 +#endif /* ! INHERITANCE_SVNT_HAS_DLL */ + +#if defined (INHERITANCE_SVNT_HAS_DLL) && (INHERITANCE_SVNT_HAS_DLL == 1) +# if defined (INHERITANCE_SVNT_BUILD_DLL) +# define INHERITANCE_SVNT_Export ACE_Proper_Export_Flag +# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* INHERITANCE_SVNT_BUILD_DLL */ +# define INHERITANCE_SVNT_Export ACE_Proper_Import_Flag +# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* INHERITANCE_SVNT_BUILD_DLL */ +#else /* INHERITANCE_SVNT_HAS_DLL == 1 */ +# define INHERITANCE_SVNT_Export +# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) +# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* INHERITANCE_SVNT_HAS_DLL == 1 */ + +// Set INHERITANCE_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (INHERITANCE_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define INHERITANCE_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define INHERITANCE_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !INHERITANCE_SVNT_NTRACE */ + +#if (INHERITANCE_SVNT_NTRACE == 1) +# define INHERITANCE_SVNT_TRACE(X) +#else /* (INHERITANCE_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define INHERITANCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (INHERITANCE_SVNT_NTRACE == 1) */ + +#endif /* INHERITANCE_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/README b/modules/CIAO/tests/IDL3/ImpliedIDL/All/README new file mode 100644 index 00000000000..2f4e09eaf3c --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/README @@ -0,0 +1,88 @@ + Converting IDL3 to IDL2 + ======================= + +Introduction +============ + +This directory contains a test for the executable +tao_idl3_to_idl2, which inputs a single IDL file and +outputs a single IDL file which has the IDL3 declarations +from the input file converted to the corresponding 'implied +IDL' declarations specificed by the mapping in the CCM +document. + +This utility can be used in conjunction with some IDL compiler +that does not support IDL3 keywords and syntax. The output of +the utility can be processed by such a compiler, yielding code +in the target programming language equivalent to that which +would have been generated in one step by a CCM-aware IDL compiler. + +The tao_idl3_to_idl2 executable itself is built in +CIAO_ROOT/tools/IDL3_to_IDL2. It uses the TAO IDL compiler +front end parsing engine and the TAO IDL compiler driver +files, so it depends on ACE. The IDL generation is +accomplished by a custom backend library. + +Other Features Tested +===================== + +The IDL file keyword_clash.idl contains many identifiers that +are either escaped (to avoid a clash with IDL keywords) or +are C++ keywords. Coverting this file, then generatin and +compiling C++ from it, tests the ability of the conversion +tool to preserve these identifiers correctly when mapping +from IDL to IDL. + +The IDL file raw_include.idl is intentionaly left out of +conversion processing. It contains no IDL with 'implied IDL' +mapping. Since it is included in pass_through.idl, it +must be included in pass_through_IDL2.idl, but without itself +having the '_IDL2' suffix added. This type of 'raw' inclusion +is necessary in some cases, and the MPC file adds a command +line option to the processing of pass_through.idl to make +sure the raw_include.idl is processed in this way. + +Running The Test +================ + +This test is only to determine that the generated IDL files +are valid. So once the converted IDL file (having the +extension _IDL2.idl) is generated by tao_idl3_to_idl2, the +TAO IDL compiler is executed on the generated IDL file and +the resulting C++ files compiled. If the compilation is +successful for all such files, the test is a success. + +Notable Build Features +====================== + +Two features of the MPC file for this test are of interest: + +1. +Two of the three IDL files in the test, pass_through.idl and +include.idl, contain no IDL3 constructs, but merely test the +executable's regeneration of IDL2 constructs. Since one IDL +file is included in the other, there is a dependency that +requires both IDL files to be processed before running the +IDL compiler on pass_through_IDL2.idl. The line + + pass_through_IDL2.idl << include_IDL2.idl + +indicates this dependency to the MPC tool, ensuring the correct +order of execution. + +2. +The -Sm option passed to the IDL compiler must be used when +processing an IDL file resulting from the execution of +tao_idl3_to_idl2. This option disables the action of the +tao_idl backend 'preprocessor' (which is 'on' by default) +that adds implied IDL nodes to the Abstract Syntax Tree +for subsequent C++ code generation. In the case of an eventtype, +the CCM spec requires additional code generation for a corresponding +implied 'event consumer' IDL interface, as well as for the +eventtype itself. The tao_idl3_to_idl2 executable adds this +interface explicitly to the generated IDL file, along with the +original eventtype. Without the -Sm option, the event consumer +interface would appear redundantly in both explicit and implied +IDL, resulting in a name clash. Since the IDL compiler cannot +know the origin of the IDL file it is processing, the -Sm +option encapsulates that knowledge.
\ No newline at end of file diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc new file mode 100644 index 00000000000..19a43493818 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc @@ -0,0 +1,37 @@ +// -*- MPC -*- +// $Id$ + +project(ConvertIDL3) : taoidl3toidl2defaults, ciao_executor { + avoids += mfc + idlflags += -Sm + + IDL3TOIDL2_Files { + convert.idl + include.idl + keyword_clash.idl + pass_through.idl + } + + IDL_Files { + convert_IDL2.idl + include.idl + include_IDL2.idl + keyword_clash_IDL2.idl + pass_through_IDL2.idl << keyword_clash_IDL2C.h + raw_include.idl + } + + Source_Files { + convert_IDL2C.cpp + convert_IDL2S.cpp + include_IDL2C.cpp + include_IDL2S.cpp + keyword_clash_IDL2C.cpp + keyword_clash_IDL2S.cpp + pass_through_IDL2C.cpp << includeC.h raw_includeC.h keyword_clash_IDL2C.h + pass_through_IDL2S.cpp + raw_includeC.cpp + raw_includeS.cpp + } +} + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl new file mode 100644 index 00000000000..68600a619b3 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl @@ -0,0 +1,53 @@ +// $Id$ +/** + * @file convert.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests all conversions of IDL3 constructs to IDL2. + */ + +#include <Components.idl> + +eventtype eattype; +interface sface {}; +interface pface {}; +interface uface {}; +interface umface {}; + +valuetype pkey : Components::PrimaryKeyBase +{ + public string info; +}; + +valuetype pubtype_base {}; +eventtype pubtype : pubtype_base {}; +eventtype emitype : pubtype {}; +eventtype eattype {}; + +component CompBase supports sface +{ +}; + +component CompDerived : CompBase +{ + provides pface pface_provider; + uses uface uface_user; + uses multiple umface umface_umuser; + publishes pubtype pubtype_publisher; + emits emitype emitype_emitter; + consumes eattype eattype_consumer; +}; + +home CompBaseHome supports sface manages CompBase +{ +}; + +home CompDerivedHome : CompBaseHome manages CompDerived primarykey pkey +{ + exception ch_except {}; + void ch_op () raises (ch_except); + factory def_init (); + finder kitchen_sink (in string uid, in pkey key, in boolean all) + raises (ch_except); +}; + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl new file mode 100644 index 00000000000..848d4128b6e --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl @@ -0,0 +1,35 @@ +// $Id$ +/** + * @file include.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests tool's regeneration of IDL2 constructs, which + * should be basically unchanged. + */ + +#ifndef INCLUDE_IDL +#define INCLUDE_IDL + +module pre_mod +{ + typedef long longarray[3][14][7]; + + exception wrong + { + sequence<sequence<long> > longseqseq; + string reasons[4][2]; + wstring<3> why; + }; + + enum which + { + ZERO, + ONE, + TWO + }; +}; + +const pre_mod::which which_one = pre_mod::ONE; + +#endif /* INCLUDE_IDL */ + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl new file mode 100644 index 00000000000..987077bc185 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl @@ -0,0 +1,89 @@ +// $Id$ +/** + * @file keyword_clash.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests handling of C++ keywords and escaped identifiers (IDL + * keywords) in mapping IDL3 to IDL2, and mapping the resulting + * IDL2 to C++. + */ + +#ifndef CONVERTIDL3_KEYWORD_CLASH_IDL +#define CONVERTIDL3_KEYWORD_CLASH_IDL + +#include "Components.idl" + +module _interface +{ + interface _attribute + { + exception _inout {}; + }; +}; + +module static +{ + module _readonly + { + module protected + { + interface virtual + { + }; + + eventtype _eventtype + { + private virtual _public; + }; + }; + }; +}; + +eventtype _eventtype +{ + factory friend (in string _wstring); +}; + +interface _oneway {}; + +module _component +{ + component _out supports static::_readonly::protected::virtual + { + provides _interface::_attribute _local; + provides _oneway else; + provides static::_readonly::protected::virtual while; + + attribute long _abstract; + + uses multiple _interface::_attribute if; + uses multiple _oneway mutable; + uses multiple static::_readonly::protected::virtual register; + + uses _interface::_attribute _union; + uses _oneway _struct; + uses static::_readonly::protected::virtual volatile; + + publishes _eventtype _object; + publishes static::_readonly::protected::_eventtype do; + + consumes _eventtype _const; + consumes static::_readonly::protected::_eventtype const_cast; + + emits _eventtype class; + emits static::_readonly::protected::_eventtype delete; + }; + + home new manages _out + { + static::_readonly::protected::virtual + catch ( + inout static::_readonly::protected::_eventtype try) + raises (_interface::_attribute::_inout); + + finder continue (in _interface::_attribute _inout); + }; +}; + +#endif /* CONVERTIDL3_KEYWORD_CLASH_IDL */ + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl new file mode 100644 index 00000000000..97d05edffe8 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl @@ -0,0 +1,94 @@ +// $Id$ +/** + * @file pass_through.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests tool's regeneration of IDL2 constructs, which + * should be basically unchanged. + */ + +#ifndef PASS_THROUGH_IDL +#define PASS_THROUGH_IDL + +#pragma prefix "glooby" + +#include "include.idl" +#include "raw_include.idl" + +module pre_mod +{ + module inner + { + typedef long fork; + }; + + union uke switch (which) + { + case ONE: + case ZERO: string str_mem; + default: short s_mem; + }; +}; + +module mod +{ + typeid mod "rama:lama/ding:dong"; + + interface base + { + readonly attribute unsigned long long ull_attr + raises (pre_mod::wrong); + }; + + interface foo + { + typeprefix foo "preefy"; + + exception wrongety_wrong + { + base unrelated; + string explanation; + }; + + attribute base base_attr + getraises (wrongety_wrong) + setraises (pre_mod::wrong, wrongety_wrong); + }; + + interface bleep; + + abstract interface bar + { + base bar_op (in base inarg); + }; + + interface bleep : base, foo + { + oneway void oneway_op (in string strarg, in any anyarg); + bleep get_me (); + pre_mod::uke get_uke (out boolean success) + raises (pre_mod::wrong, foo::wrongety_wrong); + void throw_something () + raises (pre_mod::wrong); + }; + + abstract valuetype vt_abase + { + }; + + valuetype vt_cbase + { + private bleep priv_bleep; + public string pub_str; + factory vt_init (in bleep bleeparg, in string stringarg) + raises (pre_mod::wrong); + }; + + valuetype vt : vt_cbase, vt_abase supports foo, bar + { + factory vt_default (); + }; +}; + +#endif /* PASS_THROUGH_IDL */ + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl new file mode 100644 index 00000000000..b3aed65f2df --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl @@ -0,0 +1,27 @@ +// $Id$ +/** + * @file raw_include.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests tool's 'excluded file' feature, which allows the user + * to specifcy the generation of an #include for this file, in + * an IDL2 file corresponding to the IDL3 file this one is + * included in unchanged, without the '_IDL2' suffix. + */ + +#ifndef RAW_INCLUDE_IDL +#define RAW_INCLUDE_IDL + +module carnsarn +{ + typedef boolean t_or_f; + + struct one + { + short shortshort; + string along; + wstring<3> trinity; + }; +}; + +#endif /* RAW_INCLUDE_IDL */ diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl new file mode 100644 index 00000000000..a5d5897f8cc --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl @@ -0,0 +1,25 @@ +// $Id$ +/** + * @file ICBasic.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests implied idl functionality of basic components. + */ + +#include <Components.idl> + +module Basic +{ + component Foo + { + }; + + interface Bar + { + Foo test_op_1 (); + void test_op_2 (in Foo f); + void test_op_3 (out Foo f); + }; + + +}; diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc new file mode 100644 index 00000000000..854538563d0 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n ICBasic" + +project(ICBasic_stub): ccm_stub { + + sharedname = ICBasic_stub + idlflags += -Wb,stub_export_macro=ICBASIC_STUB_Export -Wb,stub_export_include=ICBasic_stub_export.h -Wb,skel_export_macro=ICBASIC_SVNT_Export -Wb,skel_export_include=ICBasic_svnt_export.h + dynamicflags = ICBASIC_STUB_BUILD_DLL + + IDL_Files { + ICBasic.idl + } + + Source_Files { + ICBasicC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h new file mode 100644 index 00000000000..b58cac3acfc --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICBASIC_STUB +// ------------------------------ +#ifndef ICBASIC_STUB_EXPORT_H +#define ICBASIC_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICBASIC_STUB_HAS_DLL) +# define ICBASIC_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICBASIC_STUB_HAS_DLL */ + +#if !defined (ICBASIC_STUB_HAS_DLL) +# define ICBASIC_STUB_HAS_DLL 1 +#endif /* ! ICBASIC_STUB_HAS_DLL */ + +#if defined (ICBASIC_STUB_HAS_DLL) && (ICBASIC_STUB_HAS_DLL == 1) +# if defined (ICBASIC_STUB_BUILD_DLL) +# define ICBASIC_STUB_Export ACE_Proper_Export_Flag +# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICBASIC_STUB_BUILD_DLL */ +# define ICBASIC_STUB_Export ACE_Proper_Import_Flag +# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICBASIC_STUB_BUILD_DLL */ +#else /* ICBASIC_STUB_HAS_DLL == 1 */ +# define ICBASIC_STUB_Export +# define ICBASIC_STUB_SINGLETON_DECLARATION(T) +# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICBASIC_STUB_HAS_DLL == 1 */ + +// Set ICBASIC_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICBASIC_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ICBASIC_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICBASIC_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICBASIC_STUB_NTRACE */ + +#if (ICBASIC_STUB_NTRACE == 1) +# define ICBASIC_STUB_TRACE(X) +#else /* (ICBASIC_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICBASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICBASIC_STUB_NTRACE == 1) */ + +#endif /* ICBASIC_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h new file mode 100644 index 00000000000..de3714a6c75 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICBASIC_SVNT +// ------------------------------ +#ifndef ICBASIC_SVNT_EXPORT_H +#define ICBASIC_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICBASIC_SVNT_HAS_DLL) +# define ICBASIC_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICBASIC_SVNT_HAS_DLL */ + +#if !defined (ICBASIC_SVNT_HAS_DLL) +# define ICBASIC_SVNT_HAS_DLL 1 +#endif /* ! ICBASIC_SVNT_HAS_DLL */ + +#if defined (ICBASIC_SVNT_HAS_DLL) && (ICBASIC_SVNT_HAS_DLL == 1) +# if defined (ICBASIC_SVNT_BUILD_DLL) +# define ICBASIC_SVNT_Export ACE_Proper_Export_Flag +# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICBASIC_SVNT_BUILD_DLL */ +# define ICBASIC_SVNT_Export ACE_Proper_Import_Flag +# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICBASIC_SVNT_BUILD_DLL */ +#else /* ICBASIC_SVNT_HAS_DLL == 1 */ +# define ICBASIC_SVNT_Export +# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) +# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICBASIC_SVNT_HAS_DLL == 1 */ + +// Set ICBASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICBASIC_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ICBASIC_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICBASIC_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICBASIC_SVNT_NTRACE */ + +#if (ICBASIC_SVNT_NTRACE == 1) +# define ICBASIC_SVNT_TRACE(X) +#else /* (ICBASIC_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICBASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICBASIC_SVNT_NTRACE == 1) */ + +#endif /* ICBASIC_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl new file mode 100644 index 00000000000..7bf8f83c98c --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl @@ -0,0 +1,27 @@ +// $Id$ +/** + * @file ICEventSink.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests implied idl features of event sinks + */ + +#include <Components.idl> + +module ImpliedEventSink +{ + eventtype foo_event + { + }; + + component Foo + { + consumes foo_event c_foo; + }; + /* + interface test + { + ImpliedEventSink::FooEventConsumers::foo_eventConsumer test_a (); + }; + */ +}; diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc new file mode 100644 index 00000000000..e9381d014b2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n ICEventSink" + +project(ICEventSink_stub): ccm_stub { + + sharedname = ICEventSink_stub + idlflags += -Wb,stub_export_macro=ICEVENTSINK_STUB_Export -Wb,stub_export_include=ICEventSink_stub_export.h -Wb,skel_export_macro=ICEVENTSINK_SVNT_Export -Wb,skel_export_include=ICEventSink_svnt_export.h + dynamicflags = ICEVENTSINK_STUB_BUILD_DLL + + IDL_Files { + ICEventSink.idl + } + + Source_Files { + ICEventSinkC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h new file mode 100644 index 00000000000..c773bbcf313 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICEVENTSINK_STUB +// ------------------------------ +#ifndef ICEVENTSINK_STUB_EXPORT_H +#define ICEVENTSINK_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSINK_STUB_HAS_DLL) +# define ICEVENTSINK_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICEVENTSINK_STUB_HAS_DLL */ + +#if !defined (ICEVENTSINK_STUB_HAS_DLL) +# define ICEVENTSINK_STUB_HAS_DLL 1 +#endif /* ! ICEVENTSINK_STUB_HAS_DLL */ + +#if defined (ICEVENTSINK_STUB_HAS_DLL) && (ICEVENTSINK_STUB_HAS_DLL == 1) +# if defined (ICEVENTSINK_STUB_BUILD_DLL) +# define ICEVENTSINK_STUB_Export ACE_Proper_Export_Flag +# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICEVENTSINK_STUB_BUILD_DLL */ +# define ICEVENTSINK_STUB_Export ACE_Proper_Import_Flag +# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICEVENTSINK_STUB_BUILD_DLL */ +#else /* ICEVENTSINK_STUB_HAS_DLL == 1 */ +# define ICEVENTSINK_STUB_Export +# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) +# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICEVENTSINK_STUB_HAS_DLL == 1 */ + +// Set ICEVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICEVENTSINK_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ICEVENTSINK_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICEVENTSINK_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICEVENTSINK_STUB_NTRACE */ + +#if (ICEVENTSINK_STUB_NTRACE == 1) +# define ICEVENTSINK_STUB_TRACE(X) +#else /* (ICEVENTSINK_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICEVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICEVENTSINK_STUB_NTRACE == 1) */ + +#endif /* ICEVENTSINK_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h new file mode 100644 index 00000000000..10eed510dea --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICEVENTSINK_SVNT +// ------------------------------ +#ifndef ICEVENTSINK_SVNT_EXPORT_H +#define ICEVENTSINK_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSINK_SVNT_HAS_DLL) +# define ICEVENTSINK_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICEVENTSINK_SVNT_HAS_DLL */ + +#if !defined (ICEVENTSINK_SVNT_HAS_DLL) +# define ICEVENTSINK_SVNT_HAS_DLL 1 +#endif /* ! ICEVENTSINK_SVNT_HAS_DLL */ + +#if defined (ICEVENTSINK_SVNT_HAS_DLL) && (ICEVENTSINK_SVNT_HAS_DLL == 1) +# if defined (ICEVENTSINK_SVNT_BUILD_DLL) +# define ICEVENTSINK_SVNT_Export ACE_Proper_Export_Flag +# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICEVENTSINK_SVNT_BUILD_DLL */ +# define ICEVENTSINK_SVNT_Export ACE_Proper_Import_Flag +# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICEVENTSINK_SVNT_BUILD_DLL */ +#else /* ICEVENTSINK_SVNT_HAS_DLL == 1 */ +# define ICEVENTSINK_SVNT_Export +# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) +# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICEVENTSINK_SVNT_HAS_DLL == 1 */ + +// Set ICEVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICEVENTSINK_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ICEVENTSINK_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICEVENTSINK_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICEVENTSINK_SVNT_NTRACE */ + +#if (ICEVENTSINK_SVNT_NTRACE == 1) +# define ICEVENTSINK_SVNT_TRACE(X) +#else /* (ICEVENTSINK_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICEVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICEVENTSINK_SVNT_NTRACE == 1) */ + +#endif /* ICEVENTSINK_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl new file mode 100644 index 00000000000..578efbed7e4 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl @@ -0,0 +1,38 @@ +// $Id$ +/** + * @file ICEventSource.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests implied IDL of event sources. + */ + +#include <Components.idl> + +module ImpliedSources +{ + eventtype foo_event + { + }; + + eventtype bar_event + { + }; + + component Foo + { + publishes foo_event p_foo; + }; + + component Bar + { + emits bar_event e_bar; + }; + /* + interface test + { + ImpliedSources::FooEventConsumers::foo_eventConsumer test_op (); + ImpliedSources::BarEventConsumers::bar_eventConsumer test_op_1 (); + }; + */ +}; + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc new file mode 100644 index 00000000000..123083e4d3f --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n ICEventSource" + +project(ICEventSource_stub): ccm_stub { + + sharedname = ICEventSource_stub + idlflags += -Wb,stub_export_macro=ICEVENTSOURCE_STUB_Export -Wb,stub_export_include=ICEventSource_stub_export.h -Wb,skel_export_macro=ICEVENTSOURCE_SVNT_Export -Wb,skel_export_include=ICEventSource_svnt_export.h + dynamicflags = ICEVENTSOURCE_STUB_BUILD_DLL + + IDL_Files { + ICEventSource.idl + } + + Source_Files { + ICEventSourceC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h new file mode 100644 index 00000000000..f28d2ba2d3a --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_STUB +// ------------------------------ +#ifndef ICEVENTSOURCE_STUB_EXPORT_H +#define ICEVENTSOURCE_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSOURCE_STUB_HAS_DLL) +# define ICEVENTSOURCE_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICEVENTSOURCE_STUB_HAS_DLL */ + +#if !defined (ICEVENTSOURCE_STUB_HAS_DLL) +# define ICEVENTSOURCE_STUB_HAS_DLL 1 +#endif /* ! ICEVENTSOURCE_STUB_HAS_DLL */ + +#if defined (ICEVENTSOURCE_STUB_HAS_DLL) && (ICEVENTSOURCE_STUB_HAS_DLL == 1) +# if defined (ICEVENTSOURCE_STUB_BUILD_DLL) +# define ICEVENTSOURCE_STUB_Export ACE_Proper_Export_Flag +# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICEVENTSOURCE_STUB_BUILD_DLL */ +# define ICEVENTSOURCE_STUB_Export ACE_Proper_Import_Flag +# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICEVENTSOURCE_STUB_BUILD_DLL */ +#else /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */ +# define ICEVENTSOURCE_STUB_Export +# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) +# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */ + +// Set ICEVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICEVENTSOURCE_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ICEVENTSOURCE_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICEVENTSOURCE_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICEVENTSOURCE_STUB_NTRACE */ + +#if (ICEVENTSOURCE_STUB_NTRACE == 1) +# define ICEVENTSOURCE_STUB_TRACE(X) +#else /* (ICEVENTSOURCE_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICEVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICEVENTSOURCE_STUB_NTRACE == 1) */ + +#endif /* ICEVENTSOURCE_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h new file mode 100644 index 00000000000..b7269a38b47 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_SVNT +// ------------------------------ +#ifndef ICEVENTSOURCE_SVNT_EXPORT_H +#define ICEVENTSOURCE_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSOURCE_SVNT_HAS_DLL) +# define ICEVENTSOURCE_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICEVENTSOURCE_SVNT_HAS_DLL */ + +#if !defined (ICEVENTSOURCE_SVNT_HAS_DLL) +# define ICEVENTSOURCE_SVNT_HAS_DLL 1 +#endif /* ! ICEVENTSOURCE_SVNT_HAS_DLL */ + +#if defined (ICEVENTSOURCE_SVNT_HAS_DLL) && (ICEVENTSOURCE_SVNT_HAS_DLL == 1) +# if defined (ICEVENTSOURCE_SVNT_BUILD_DLL) +# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag +# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICEVENTSOURCE_SVNT_BUILD_DLL */ +# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag +# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICEVENTSOURCE_SVNT_BUILD_DLL */ +#else /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */ +# define ICEVENTSOURCE_SVNT_Export +# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) +# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */ + +// Set ICEVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICEVENTSOURCE_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ICEVENTSOURCE_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICEVENTSOURCE_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICEVENTSOURCE_SVNT_NTRACE */ + +#if (ICEVENTSOURCE_SVNT_NTRACE == 1) +# define ICEVENTSOURCE_SVNT_TRACE(X) +#else /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICEVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */ + +#endif /* ICEVENTSOURCE_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl new file mode 100644 index 00000000000..7af66e50e8c --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl @@ -0,0 +1,28 @@ +// $Id$ +/** + * @file ICReceptacles.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests equivalent idl for receptacles. + */ +#include <Components.idl> + +module EquivReceptacles +{ + interface foo_interface + { + }; + + component Foo + { + uses multiple foo_interface foo_recep; + }; + + /** + interface bar + { + Foo::foo_recepConnections get_seq (); + Foo::foo_recepConnection get_struct (); + }; + */ +}; diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc new file mode 100644 index 00000000000..cc1f610892c --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc @@ -0,0 +1,18 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n ICReceptacles" + +project(ICReceptacles_stub): ccm_stub { + + sharedname = ICReceptacles_stub + idlflags += -Wb,stub_export_macro=ICRECEPTACLES_STUB_Export -Wb,stub_export_include=ICReceptacles_stub_export.h -Wb,skel_export_macro=ICRECEPTACLES_SVNT_Export -Wb,skel_export_include=ICReceptacles_svnt_export.h + dynamicflags = ICRECEPTACLES_STUB_BUILD_DLL + + IDL_Files { + ICReceptacles.idl + } + + Source_Files { + ICReceptaclesC.cpp + } +} + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h new file mode 100644 index 00000000000..2571741be01 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_STUB +// ------------------------------ +#ifndef ICRECEPTACLES_STUB_EXPORT_H +#define ICRECEPTACLES_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICRECEPTACLES_STUB_HAS_DLL) +# define ICRECEPTACLES_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICRECEPTACLES_STUB_HAS_DLL */ + +#if !defined (ICRECEPTACLES_STUB_HAS_DLL) +# define ICRECEPTACLES_STUB_HAS_DLL 1 +#endif /* ! ICRECEPTACLES_STUB_HAS_DLL */ + +#if defined (ICRECEPTACLES_STUB_HAS_DLL) && (ICRECEPTACLES_STUB_HAS_DLL == 1) +# if defined (ICRECEPTACLES_STUB_BUILD_DLL) +# define ICRECEPTACLES_STUB_Export ACE_Proper_Export_Flag +# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICRECEPTACLES_STUB_BUILD_DLL */ +# define ICRECEPTACLES_STUB_Export ACE_Proper_Import_Flag +# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICRECEPTACLES_STUB_BUILD_DLL */ +#else /* ICRECEPTACLES_STUB_HAS_DLL == 1 */ +# define ICRECEPTACLES_STUB_Export +# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) +# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICRECEPTACLES_STUB_HAS_DLL == 1 */ + +// Set ICRECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICRECEPTACLES_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define ICRECEPTACLES_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICRECEPTACLES_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICRECEPTACLES_STUB_NTRACE */ + +#if (ICRECEPTACLES_STUB_NTRACE == 1) +# define ICRECEPTACLES_STUB_TRACE(X) +#else /* (ICRECEPTACLES_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICRECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICRECEPTACLES_STUB_NTRACE == 1) */ + +#endif /* ICRECEPTACLES_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h new file mode 100644 index 00000000000..d826479eeaa --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_SVNT +// ------------------------------ +#ifndef ICRECEPTACLES_SVNT_EXPORT_H +#define ICRECEPTACLES_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (ICRECEPTACLES_SVNT_HAS_DLL) +# define ICRECEPTACLES_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && ICRECEPTACLES_SVNT_HAS_DLL */ + +#if !defined (ICRECEPTACLES_SVNT_HAS_DLL) +# define ICRECEPTACLES_SVNT_HAS_DLL 1 +#endif /* ! ICRECEPTACLES_SVNT_HAS_DLL */ + +#if defined (ICRECEPTACLES_SVNT_HAS_DLL) && (ICRECEPTACLES_SVNT_HAS_DLL == 1) +# if defined (ICRECEPTACLES_SVNT_BUILD_DLL) +# define ICRECEPTACLES_SVNT_Export ACE_Proper_Export_Flag +# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* ICRECEPTACLES_SVNT_BUILD_DLL */ +# define ICRECEPTACLES_SVNT_Export ACE_Proper_Import_Flag +# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* ICRECEPTACLES_SVNT_BUILD_DLL */ +#else /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */ +# define ICRECEPTACLES_SVNT_Export +# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) +# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */ + +// Set ICRECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (ICRECEPTACLES_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define ICRECEPTACLES_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define ICRECEPTACLES_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !ICRECEPTACLES_SVNT_NTRACE */ + +#if (ICRECEPTACLES_SVNT_NTRACE == 1) +# define ICRECEPTACLES_SVNT_TRACE(X) +#else /* (ICRECEPTACLES_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define ICRECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (ICRECEPTACLES_SVNT_NTRACE == 1) */ + +#endif /* ICRECEPTACLES_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl new file mode 100644 index 00000000000..62092c9e958 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl @@ -0,0 +1,22 @@ +// $Id$ +/** + * @file Events.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests implied IDL for event types. + */ + +#include <Components.idl> + +module ImpliedEvent +{ + eventtype foo + { + }; + /* + interface test_foo + { + fooConsumer test_op (); + }; + */ +}; diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc new file mode 100644 index 00000000000..4200e384e0a --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc @@ -0,0 +1,17 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Events" + +project(Events_stub): ccm_stub { + + sharedname = Events_stub + idlflags += -Wb,stub_export_macro=EVENTS_STUB_Export -Wb,stub_export_include=Events_stub_export.h -Wb,skel_export_macro=EVENTS_SVNT_Export -Wb,skel_export_include=Events_svnt_export.h + dynamicflags = EVENTS_STUB_BUILD_DLL + + IDL_Files { + Events.idl + } + + Source_Files { + EventsC.cpp + } +} diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h new file mode 100644 index 00000000000..be696db1402 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl EVENTS_STUB +// ------------------------------ +#ifndef EVENTS_STUB_EXPORT_H +#define EVENTS_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTS_STUB_HAS_DLL) +# define EVENTS_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && EVENTS_STUB_HAS_DLL */ + +#if !defined (EVENTS_STUB_HAS_DLL) +# define EVENTS_STUB_HAS_DLL 1 +#endif /* ! EVENTS_STUB_HAS_DLL */ + +#if defined (EVENTS_STUB_HAS_DLL) && (EVENTS_STUB_HAS_DLL == 1) +# if defined (EVENTS_STUB_BUILD_DLL) +# define EVENTS_STUB_Export ACE_Proper_Export_Flag +# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* EVENTS_STUB_BUILD_DLL */ +# define EVENTS_STUB_Export ACE_Proper_Import_Flag +# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* EVENTS_STUB_BUILD_DLL */ +#else /* EVENTS_STUB_HAS_DLL == 1 */ +# define EVENTS_STUB_Export +# define EVENTS_STUB_SINGLETON_DECLARATION(T) +# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* EVENTS_STUB_HAS_DLL == 1 */ + +// Set EVENTS_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (EVENTS_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define EVENTS_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define EVENTS_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !EVENTS_STUB_NTRACE */ + +#if (EVENTS_STUB_NTRACE == 1) +# define EVENTS_STUB_TRACE(X) +#else /* (EVENTS_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define EVENTS_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (EVENTS_STUB_NTRACE == 1) */ + +#endif /* EVENTS_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h new file mode 100644 index 00000000000..bca88a9a54a --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl EVENTS_SVNT +// ------------------------------ +#ifndef EVENTS_SVNT_EXPORT_H +#define EVENTS_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTS_SVNT_HAS_DLL) +# define EVENTS_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && EVENTS_SVNT_HAS_DLL */ + +#if !defined (EVENTS_SVNT_HAS_DLL) +# define EVENTS_SVNT_HAS_DLL 1 +#endif /* ! EVENTS_SVNT_HAS_DLL */ + +#if defined (EVENTS_SVNT_HAS_DLL) && (EVENTS_SVNT_HAS_DLL == 1) +# if defined (EVENTS_SVNT_BUILD_DLL) +# define EVENTS_SVNT_Export ACE_Proper_Export_Flag +# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* EVENTS_SVNT_BUILD_DLL */ +# define EVENTS_SVNT_Export ACE_Proper_Import_Flag +# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* EVENTS_SVNT_BUILD_DLL */ +#else /* EVENTS_SVNT_HAS_DLL == 1 */ +# define EVENTS_SVNT_Export +# define EVENTS_SVNT_SINGLETON_DECLARATION(T) +# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* EVENTS_SVNT_HAS_DLL == 1 */ + +// Set EVENTS_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (EVENTS_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define EVENTS_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define EVENTS_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !EVENTS_SVNT_NTRACE */ + +#if (EVENTS_SVNT_NTRACE == 1) +# define EVENTS_SVNT_TRACE(X) +#else /* (EVENTS_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define EVENTS_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (EVENTS_SVNT_NTRACE == 1) */ + +#endif /* EVENTS_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl new file mode 100644 index 00000000000..3440458b4b2 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl @@ -0,0 +1,28 @@ +// $Id$ +/** + * @file Homes.idl + * @author Will Otte <wotte@dre.vanderbilt.edu> + * + * Tests equivalent IDL semantics for Homes + */ + +#include <Components.idl> + +module ImplicitHomes +{ + component Foo + { + }; + + home FooHome manages Foo + { + }; + /* + interface test + { + FooHomeExplicit test_op (); + FooHomeImplicit test_op_1 (); + FooHome test_op_2 (); + }; + */ +}; diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc new file mode 100644 index 00000000000..bb6b96ca281 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc @@ -0,0 +1,18 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Homes" + +project(Homes_stub): ccm_stub { + + sharedname = Homes_stub + idlflags += -Wb,stub_export_macro=HOMES_STUB_Export -Wb,stub_export_include=Homes_stub_export.h -Wb,skel_export_macro=HOMES_SVNT_Export -Wb,skel_export_include=Homes_svnt_export.h + dynamicflags = HOMES_STUB_BUILD_DLL + + IDL_Files { + Homes.idl + } + + Source_Files { + HomesC.cpp + } +} + diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h new file mode 100644 index 00000000000..e7ba466797c --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl HOMES_STUB +// ------------------------------ +#ifndef HOMES_STUB_EXPORT_H +#define HOMES_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMES_STUB_HAS_DLL) +# define HOMES_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && HOMES_STUB_HAS_DLL */ + +#if !defined (HOMES_STUB_HAS_DLL) +# define HOMES_STUB_HAS_DLL 1 +#endif /* ! HOMES_STUB_HAS_DLL */ + +#if defined (HOMES_STUB_HAS_DLL) && (HOMES_STUB_HAS_DLL == 1) +# if defined (HOMES_STUB_BUILD_DLL) +# define HOMES_STUB_Export ACE_Proper_Export_Flag +# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* HOMES_STUB_BUILD_DLL */ +# define HOMES_STUB_Export ACE_Proper_Import_Flag +# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* HOMES_STUB_BUILD_DLL */ +#else /* HOMES_STUB_HAS_DLL == 1 */ +# define HOMES_STUB_Export +# define HOMES_STUB_SINGLETON_DECLARATION(T) +# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* HOMES_STUB_HAS_DLL == 1 */ + +// Set HOMES_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (HOMES_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define HOMES_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define HOMES_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !HOMES_STUB_NTRACE */ + +#if (HOMES_STUB_NTRACE == 1) +# define HOMES_STUB_TRACE(X) +#else /* (HOMES_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define HOMES_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (HOMES_STUB_NTRACE == 1) */ + +#endif /* HOMES_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h new file mode 100644 index 00000000000..16fc4127d94 --- /dev/null +++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl HOMES_SVNT +// ------------------------------ +#ifndef HOMES_SVNT_EXPORT_H +#define HOMES_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMES_SVNT_HAS_DLL) +# define HOMES_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && HOMES_SVNT_HAS_DLL */ + +#if !defined (HOMES_SVNT_HAS_DLL) +# define HOMES_SVNT_HAS_DLL 1 +#endif /* ! HOMES_SVNT_HAS_DLL */ + +#if defined (HOMES_SVNT_HAS_DLL) && (HOMES_SVNT_HAS_DLL == 1) +# if defined (HOMES_SVNT_BUILD_DLL) +# define HOMES_SVNT_Export ACE_Proper_Export_Flag +# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* HOMES_SVNT_BUILD_DLL */ +# define HOMES_SVNT_Export ACE_Proper_Import_Flag +# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* HOMES_SVNT_BUILD_DLL */ +#else /* HOMES_SVNT_HAS_DLL == 1 */ +# define HOMES_SVNT_Export +# define HOMES_SVNT_SINGLETON_DECLARATION(T) +# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* HOMES_SVNT_HAS_DLL == 1 */ + +// Set HOMES_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (HOMES_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define HOMES_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define HOMES_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !HOMES_SVNT_NTRACE */ + +#if (HOMES_SVNT_NTRACE == 1) +# define HOMES_SVNT_TRACE(X) +#else /* (HOMES_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define HOMES_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (HOMES_SVNT_NTRACE == 1) */ + +#endif /* HOMES_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/IDL3/Lookup/README b/modules/CIAO/tests/IDL3/Lookup/README new file mode 100644 index 00000000000..a92531070a6 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Lookup/README @@ -0,0 +1,21 @@ + +Lookup Test +======================= + +This test is for IDL compiler handling of references using local +names to declarations in base interfaces, components, valuetypes +and homes, and in supported interfaces. This type of reference +is legal IDL. + +The primary point of the test is that the IDL compiler outputs +no errors in processing the IDL file, and the secondary point +is that the generated code compiles successfully. Therefore, +we have no need for export files, export macros, or *_BUILD_DLL +flags. + +Thanks to Boris Kolpackov <boris@dre.vanderbilt.edu> for the +original example IDL file, which has been slightly modified +for use in this test. + + +Jeff Parsons
\ No newline at end of file diff --git a/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl b/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl new file mode 100644 index 00000000000..74d9b85de22 --- /dev/null +++ b/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl @@ -0,0 +1,76 @@ +// $Id$ +/** + * @file lookup_test.idl + * @authors Boris Kolpackov <boris@dre.vanderbilt.edu> + * Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests IDL compiler lookup when local names are used + * to reference declarations in supported interfaces, + * base valuetypes, base components, and base homes. + */ + + +#ifndef IDL3_LOOKUP_TEST_IDL +#define IDL3_LOOKUP_TEST_IDL + +#include <Components.idl> + +module M +{ + interface IB + { + exception Ex {}; + typedef long Foo; + }; + + interface I : IB + { + void f (in Foo bar) raises (Ex); + }; + + valuetype VB + { + typedef long Bar; + }; + + valuetype V : VB supports IB + { + void f (in Bar foo) raises (Ex); + }; + + valuetype EB + { + typedef long Bar; + }; + + valuetype E : EB supports IB + { + void f (in Bar foo) raises (Ex); + }; + + interface T + { + typedef long Bar; + }; + + component CB supports T + { + }; + + component C : CB + { + attribute Bar baz; + }; + + home HB supports IB manages CB + { + typedef long Bar; + }; + + home H : HB manages C + { + void f (in Bar b) raises (Ex); + }; +}; + +#endif /* IDL3_LOOKUP_TEST_IDL */ diff --git a/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc b/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc new file mode 100644 index 00000000000..d257f0ccd9b --- /dev/null +++ b/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc @@ -0,0 +1,18 @@ +// $Id$ + +project(LookupTest_stub): ccm_stub { + + sharedname = LookupTest_stub + + IDL_Files { + lookup_test.idl + } + + Source_Files { + lookup_testC.cpp + } + + Header_Files { + lookup_testC.h + } +} diff --git a/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl new file mode 100755 index 00000000000..77597dae053 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl @@ -0,0 +1,56 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; + +my $idl = "test.idl"; +my $dtd = "../XMI.dtd"; +my $xmi = "generated.xmi"; +my $target_idl = $target->LocalFile ($idl); +my $target_dtd = $target->LocalFile ($dtd); +my $target_xmi = $target->LocalFile ($xmi); +$target->DeleteFile($xmi); +unlink $xmi; + +$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi", + "-f -xd $target_dtd -of $target_xmi $target_idl"); + +$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval()); + +if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + exit 1; +} + +if ($target->GetFile ($xmi) == -1) { + print STDERR "ERROR: cannot retrieve file <$xmi>\n"; + exit 1; +} + +# search for right tag in generated xmi +open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!"); +@data=<DAT>; +close (DAT); + +$num = grep (/<UML:Attribute/, @data); +if ($num == 2) { + print "TEST OK. Correct tags in there.\n"; +} else { + print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n"; + print "@data\n\n"; + $status = 1; +} + +$target->DeleteFile($xmi); +unlink $xmi; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl new file mode 100644 index 00000000000..58c9017b595 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl @@ -0,0 +1,11 @@ +// $Id$ + +#ifndef FOO_IDL +#define FOO_IDL + +struct Foo +{ + long bar[5]; +}; + +#endif diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc new file mode 100644 index 00000000000..4db76128d4c --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc @@ -0,0 +1,14 @@ +// -*- MPC -*- +// $Id$ + +project(*IDL2XMI_Test) : taoexe, ciao_xml_utils, xerces { + exename = xmlvalidator + + Source_Files { + XML_Helper.cpp + xmlvalidator.cpp + } + + IDL_Files { + } +} diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp new file mode 100644 index 00000000000..8f3454e7d2c --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp @@ -0,0 +1,103 @@ +// $Id$ + +#include "XML_Helper.h" +#include "ace/Log_Msg.h" + +#include "xercesc/dom/DOM.hpp" +#include "xercesc/parsers/XercesDOMParser.hpp" + +#include "XML/XercesString.h" + +namespace Test +{ + namespace XML + { + Helper::Helper (CIAO::XML::XML_Error_Handler &eh) + : impl_ (0) + , parser_ (0) + , e_handler_ (eh) + { + this->init_parser (); + } + + Helper::~Helper (void) + { + this->terminate_parser (); + } + + void + Helper::init_parser (void) + { + // Initialize the Xerces run-time + XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize(); + + // Instantiate the DOM parser. + static const XMLCh gLS[] = { XERCES_CPP_NAMESPACE::chLatin_L, + XERCES_CPP_NAMESPACE::chLatin_S, + XERCES_CPP_NAMESPACE::chNull }; + + // Get an implementation of the Load-Store (LS) interface + // and cache it for later use + impl_ = + XERCES_CPP_NAMESPACE::DOMImplementationRegistry::getDOMImplementation(gLS); + } + + int + Helper::validate_dom (const ACE_TCHAR *url) + { + if (url == 0) + return 0; + + try + { + if (this->parser_ == 0) + this->parser_ = new XERCES_CPP_NAMESPACE::XercesDOMParser (); + + // Discard comment nodes in the document + this->parser_->setCreateCommentNodes (false); + + // Do not create EntityReference nodes in the DOM tree. No + // EntityReference nodes will be created, only the nodes + // corresponding to their fully expanded sustitution text will be + // created. + this->parser_->setCreateEntityReferenceNodes (false); + + // Perform Validation + this->parser_->setValidationScheme ( + XERCES_CPP_NAMESPACE::AbstractDOMParser::Val_Always); + + // Do not include ignorable whitespace in the DOM tree. + this->parser_->setIncludeIgnorableWhitespace (false); + + // Enable full schema constraint checking, including checking which + // may be time-consuming or memory intensive. Currently, particle + // unique attribution constraint checking and particle derivation + // restriction checking are controlled by this option. + this->parser_->setValidationSchemaFullChecking (true); + + this->parser_->setErrorHandler (&e_handler_); + + this->parser_->parse (ACE_TEXT_ALWAYS_CHAR (url)); + + if (e_handler_.getErrors ()) + return 1; + + return 0; + } + catch (...) + { + ACE_DEBUG ((LM_DEBUG, + "(%P|%t) Caught an unknown exception\n")); + throw; + } + + return 0; + } + + void + Helper::terminate_parser (void) + { + XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate (); + } + } +} diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h new file mode 100644 index 00000000000..869742e2274 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h @@ -0,0 +1,67 @@ +// $Id$ +//============================================================ +/** + * @file XML_Helper.h + * + * @brief Some helper functions for XML + * + * @author Bala Natarajan <bala@dre.vanderbilt.edu> + * @author William R. Otte <wotte@dre.vanderbilt.edu> + */ +//============================================================ + +#ifndef CIAO_XML_HELPER_H +#define CIAO_XML_HELPER_H +#include /**/ "ace/pre.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "XML/XML_Error_Handler.h" + +#include "xercesc/util/XercesDefs.hpp" + +namespace XERCES_CPP_NAMESPACE +{ + class DOMImplementation; + class XercesDOMParser; +} + +namespace Test +{ + namespace XML + { + /** + * @class Helper + * + * @brief Helper class for some routine XML stuff. + */ + class Helper + { + public: + // Initialize the resolver we should use. + Helper (CIAO::XML::XML_Error_Handler &eh); + + ~Helper (void); + + int validate_dom (const ACE_TCHAR *uri); + + protected: + /// Intialize the parser + void init_parser (void); + + /// Terminate the parser + void terminate_parser (void); + + private: + XERCES_CPP_NAMESPACE::DOMImplementation *impl_; + XERCES_CPP_NAMESPACE::XercesDOMParser *parser_; + + CIAO::XML::XML_Error_Handler &e_handler_; + }; + } +} + +#include /**/ "ace/post.h" +#endif/*CIAO_XML_HELPER_H*/ diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl new file mode 100755 index 00000000000..57b96125210 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl @@ -0,0 +1,59 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; + +$status = 0; + +$I2X = new PerlACE::Process ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi"); +#$VAL = new PerlACE::Process ("/usr/bin/xmlstarlet"); +$VAL = new PerlACE::Process ("xmlvalidator"); + +my $idl_tests_dir = "$ENV{'TAO_ROOT'}/tests/IDL_Test"; +opendir(DIR, $idl_tests_dir) || die "can't opendir $idl_tests_dir: $!"; + +my @idls = grep { /\.idl$/ && -f "$idl_tests_dir/$_" } readdir(DIR); +foreach my $idl_file (@idls) { + my $idl = "$idl_tests_dir/$idl_file"; + my $dtd = "../XMI.dtd"; + (my $xmi = $idl_file) =~ s/\.idl$/.xmi/; + unlink $xmi; + + $I2X->Arguments ("-I$idl_tests_dir -xd $dtd -of $xmi $idl"); + + $target_status = $I2X->SpawnWaitKill (30); + + if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + $status = 1; + } + + if (! -f $xmi) { + print STDERR "ERROR: tao_idl3_to_xmi didn't produce XMI\n"; + print "\n"; + next; + } + + #$VAL->Arguments ("val -d $dtd $xmi"); + $VAL->Arguments ("-i $xmi"); + + $target_status = $VAL->SpawnWaitKill (30); + + if ($target_status != 0) { + print STDERR "ERROR: xmlvalidator returned $target_status\n"; + $status = 1; + } + + unlink $xmi; + + print "\n"; +} + +closedir DIR; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp new file mode 100644 index 00000000000..2603fb30403 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp @@ -0,0 +1,64 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ace/OS_NS_stdio.h" + +#include "XML_Helper.h" + +ACE_RCSID (IDL2XMI_Test, + xmlvalidator, + "$Id$") + +const ACE_TCHAR *inp_file = ACE_TEXT (""); + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("i:")); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'i': + inp_file = get_opts.opt_arg (); + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("usage: %s ") + ACE_TEXT ("-i <inputfile>") + ACE_TEXT ("\n"), + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} + +int +ACE_TMAIN(int argc, ACE_TCHAR *argv[]) +{ + if (parse_args (argc, argv) != 0) + { + return 1; + } + + CIAO::XML::XML_Error_Handler handler; + Test::XML::Helper helper (handler); + + if (0 != helper.validate_dom (inp_file)) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("%s - invalid xml\n"), + inp_file)); + return 1; + } + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("%s - valid xml\n"), + inp_file)); + + return 0; +} diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd b/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd new file mode 100644 index 00000000000..c8cf164befd --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd @@ -0,0 +1,6384 @@ +<!-- ===================================================================== --> +<!-- + This file is the same for all the XMI tests. + This is XMI 1.1 RTF UML DTD which can be found at + http://www.omg.org/cgi-bin/apps/doc?ad/99-10-05.dtd +--> +<!-- ===================================================================== --> +<!-- Generated by: XMI Framework 1.0 --> +<!-- Date: Fri Oct 22 14:31:09 PDT 1999 --> + + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- This section of the DTD contains XML declarations required by --> +<!-- XMI. --> +<!-- _______________________________________________________________ --> + + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI is the top-level XML element for XMI transfer text --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*, + XMI.extensions*) > +<!ATTLIST XMI + xmi.version CDATA #FIXED "1.1" + timestamp CDATA #IMPLIED + verified (true | false) #IMPLIED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.header contains documentation and identifies the model, --> +<!-- metamodel, and metametamodel --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*, + XMI.metametamodel*, XMI.import*) > + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- documentation for transfer data --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact | + XMI.longDescription | XMI.shortDescription | + XMI.exporter | XMI.exporterVersion | + XMI.notice)* > +<!ELEMENT XMI.owner ANY > +<!ELEMENT XMI.contact ANY > +<!ELEMENT XMI.longDescription ANY > +<!ELEMENT XMI.shortDescription ANY > +<!ELEMENT XMI.exporter ANY > +<!ELEMENT XMI.exporterVersion ANY > +<!ELEMENT XMI.exporterID ANY > +<!ELEMENT XMI.notice ANY > + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.element.att defines the attributes that each XML element --> +<!-- that corresponds to a metamodel class must have to conform to --> +<!-- the XMI specification. --> +<!-- _______________________________________________________________ --> + + +<!ENTITY % XMI.element.att + 'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid + CDATA #IMPLIED ' > + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.link.att defines the attributes that each XML element that --> +<!-- corresponds to a metamodel class must have to enable it to --> +<!-- function as a simple XLink as well as refer to model --> +<!-- constructs within the same XMI file. --> +<!-- _______________________________________________________________ --> + + +<!ENTITY % XMI.link.att + 'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link + CDATA #IMPLIED xlink:inline (true | false) #IMPLIED + xlink:actuate (show | user) #IMPLIED xlink:content-role + CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show + (embed | replace | new) #IMPLIED xlink:behavior CDATA + #IMPLIED' > + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.model identifies the model(s) being transferred --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.model ANY > +<!ATTLIST XMI.model + %XMI.link.att; + xmi.name CDATA #REQUIRED + xmi.version CDATA #IMPLIED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.metamodel identifies the metamodel(s) for the transferred --> +<!-- data --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.metamodel ANY > +<!ATTLIST XMI.metamodel + %XMI.link.att; + xmi.name CDATA #REQUIRED + xmi.version CDATA #IMPLIED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.metametamodel identifies the metametamodel(s) for the --> +<!-- transferred data --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.metametamodel ANY > +<!ATTLIST XMI.metametamodel + %XMI.link.att; + xmi.name CDATA #REQUIRED + xmi.version CDATA #IMPLIED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.metametamodel identifies other files associated with the --> +<!-- transferred data --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.import ANY > +<!ATTLIST XMI.import + %XMI.link.att; + xmi.name CDATA #REQUIRED + xmi.version CDATA #IMPLIED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.content is the actual data being transferred --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.content ANY > + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.extensions contains data to transfer that does not conform --> +<!-- to the metamodel(s) in the header --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.extensions ANY > +<!ATTLIST XMI.extensions + xmi.extender CDATA #REQUIRED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- extension contains information related to a specific model --> +<!-- construct that is not defined in the metamodel(s) in the header --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.extension ANY > +<!ATTLIST XMI.extension + %XMI.element.att; + %XMI.link.att; + xmi.extender CDATA #REQUIRED + xmi.extenderID CDATA #IMPLIED +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.difference holds XML elements representing differences to a --> +<!-- base model --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add | + XMI.replace)* > +<!ATTLIST XMI.difference + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.delete represents a deletion from a base model --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.delete EMPTY > +<!ATTLIST XMI.delete + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.add represents an addition to a base model --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.add ANY > +<!ATTLIST XMI.add + %XMI.element.att; + %XMI.link.att; + xmi.position CDATA "-1" +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.replace represents the replacement of a model construct --> +<!-- with another model construct in a base model --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.replace ANY > +<!ATTLIST XMI.replace + %XMI.element.att; + %XMI.link.att; + xmi.position CDATA "-1" +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- XMI.reference may be used to refer to data types not defined in --> +<!-- the metamodel --> +<!-- _______________________________________________________________ --> + +<!ELEMENT XMI.reference ANY > +<!ATTLIST XMI.reference + %XMI.link.att; +> + +<!ATTLIST XMI + xmlns:UML CDATA #IMPLIED +> + + +<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment | + UML:Namespace | UML:GeneralizableElement | + UML:Feature | UML:Parameter | + UML:Constraint | UML:Dependency | + UML:Generalization | UML:AssociationEnd | + UML:Request | UML:ActionSequence | + UML:Action | UML:Link | UML:LinkEnd | + UML:Instance | UML:AttributeLink | + UML:MessageInstance | UML:Interaction | + UML:Message | UML:StateMachine | + UML:Guard | UML:StateVertex | + UML:Transition | UML:Event | + UML:Partition | UML:Collaboration | + UML:Classifier | UML:Association | + UML:Stereotype | UML:Package | + UML:Signal | UML:Node | UML:Component | + UML:Interface | UML:Class | UML:DataType | + UML:Subsystem | UML:ClassifierRole | + UML:Actor | UML:UseCase | + UML:ClassifierInState | + UML:AssociationClass | UML:Enumeration | + UML:Primitive | UML:Structure | + UML:AssociationRole | UML:Model | + UML:Exception | UML:StructuralFeature | + UML:BehavioralFeature | UML:Attribute | + UML:Operation | UML:Method | + UML:Reception | UML:Refinement | + UML:Usage | UML:Trace | UML:Binding | + UML:AssociationEndRole | + UML:CreateAction | UML:CallAction | + UML:LocalInvocation | UML:ReturnAction | + UML:SendAction | UML:UninterpretedAction | + UML:TerminateAction | UML:DestroyAction | + UML:LinkObject | UML:Object | + UML:DataValue | UML:UseCaseInstance | + UML:ActivityModel | UML:PseudoState | + UML:State | UML:CompositeState | + UML:SimpleState | UML:SubmachineState | + UML:ActionState | UML:ObjectFlowState | + UML:ActivityState | UML:SignalEvent | + UML:CallEvent | UML:TimeEvent | + UML:ChangeEvent)* > + + +<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* > + + +<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment | + UML:Namespace | + UML:GeneralizableElement | + UML:Feature | UML:Parameter | + UML:Constraint | UML:Dependency | + UML:Generalization | + UML:AssociationEnd | UML:Request | + UML:ActionSequence | UML:Action | + UML:Link | UML:LinkEnd | + UML:Instance | UML:AttributeLink | + UML:MessageInstance | + UML:Interaction | UML:Message | + UML:StateMachine | UML:Guard | + UML:StateVertex | UML:Transition | + UML:Event | UML:Partition | + UML:Collaboration | UML:Classifier | + UML:Association | UML:Stereotype | + UML:Package | UML:Signal | + UML:Node | UML:Component | + UML:Interface | UML:Class | + UML:DataType | UML:Subsystem | + UML:ClassifierRole | UML:Actor | + UML:UseCase | + UML:ClassifierInState | + UML:AssociationClass | + UML:Enumeration | UML:Primitive | + UML:Structure | + UML:AssociationRole | UML:Model | + UML:Exception | + UML:StructuralFeature | + UML:BehavioralFeature | + UML:Attribute | UML:Operation | + UML:Method | UML:Reception | + UML:Refinement | UML:Usage | + UML:Trace | UML:Binding | + UML:AssociationEndRole | + UML:CreateAction | UML:CallAction | + UML:LocalInvocation | + UML:ReturnAction | UML:SendAction | + UML:UninterpretedAction | + UML:TerminateAction | + UML:DestroyAction | UML:LinkObject | + UML:Object | UML:DataValue | + UML:UseCaseInstance | + UML:ActivityModel | + UML:PseudoState | UML:State | + UML:CompositeState | + UML:SimpleState | + UML:SubmachineState | + UML:ActionState | + UML:ObjectFlowState | + UML:ActivityState | + UML:SignalEvent | UML:CallEvent | + UML:TimeEvent | UML:ChangeEvent)* > + + +<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature | + UML:BehavioralFeature | UML:Attribute | + UML:Operation | UML:Method | + UML:Reception)* > + + +<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* > + + +<!ELEMENT UML:Dependency.subDependencies (UML:Dependency | + UML:Refinement | UML:Usage | + UML:Trace | UML:Binding)* > + + +<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* > + + +<!ELEMENT UML:Association.connection (UML:AssociationEnd | + UML:AssociationEndRole)* > + + +<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* > + + +<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* > + + +<!ELEMENT UML:Signal.parameter (UML:Parameter)* > + + +<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction | + UML:CallAction | + UML:LocalInvocation | + UML:ReturnAction | UML:SendAction | + UML:UninterpretedAction | + UML:TerminateAction | + UML:DestroyAction)* > + + +<!ELEMENT UML:Action.actualArgument (UML:Argument)* > + + +<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* > + + +<!ELEMENT UML:Instance.slot (UML:AttributeLink)* > + + +<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* > + + +<!ELEMENT UML:Interaction.message (UML:Message)* > + + +<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState | + UML:SimpleState | UML:SubmachineState | + UML:ActionState | UML:ObjectFlowState | + UML:ActivityState)* > + +<!ELEMENT UML:StateMachine.transitions (UML:Transition)* > + + +<!ELEMENT UML:Transition.guard (UML:Guard)* > + +<!ELEMENT UML:Transition.effect (UML:ActionSequence)* > + + +<!ELEMENT UML:State.internalTransition (UML:Transition)* > + +<!ELEMENT UML:State.entry (UML:ActionSequence)* > + +<!ELEMENT UML:State.exit (UML:ActionSequence)* > + + +<!ELEMENT UML:CompositeState.substate (UML:StateVertex | + UML:PseudoState | UML:State | + UML:CompositeState | + UML:SimpleState | + UML:SubmachineState | + UML:ActionState | + UML:ObjectFlowState | + UML:ActivityState)* > + + +<!ELEMENT UML:ActivityModel.partition (UML:Partition)* > + + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Refinement --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Refinement.mapping (UML:Mapping) > + +<!ELEMENT UML:Refinement (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Dependency.description | + UML:Refinement.mapping | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Dependency.owningDependency | + UML:Dependency.client | + UML:Dependency.supplier | + UML:ModelElement.taggedValue | + UML:Dependency.subDependencies)* > +<!ATTLIST UML:Refinement + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + description CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owningDependency IDREFS #IMPLIED + client IDREFS #IMPLIED + supplier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Usage --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Usage (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Dependency.description | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Dependency.owningDependency | + UML:Dependency.client | UML:Dependency.supplier | + UML:ModelElement.taggedValue | + UML:Dependency.subDependencies)* > +<!ATTLIST UML:Usage + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + description CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owningDependency IDREFS #IMPLIED + client IDREFS #IMPLIED + supplier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Trace --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Trace (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Dependency.description | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Dependency.owningDependency | + UML:Dependency.client | UML:Dependency.supplier | + UML:ModelElement.taggedValue | + UML:Dependency.subDependencies)* > +<!ATTLIST UML:Trace + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + description CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owningDependency IDREFS #IMPLIED + client IDREFS #IMPLIED + supplier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Binding --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Binding (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Dependency.description | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Dependency.owningDependency | + UML:Dependency.client | UML:Dependency.supplier | + UML:ModelElement.taggedValue | + UML:Dependency.subDependencies | + UML:Binding.argument)* > +<!ATTLIST UML:Binding + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + description CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owningDependency IDREFS #IMPLIED + client IDREFS #IMPLIED + supplier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Node --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Node.component (UML:Component)* > + +<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | XMI.extension | + UML:ModelElement.binding | UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:Node.component | UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Node + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + component IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Component --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Component.deployment (UML:Node)* > + +<!ELEMENT UML:Component.implements (UML:ModelElement)* > + +<!ELEMENT UML:Component (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:Component.deployment | + UML:Component.implements | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Component + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + deployment IDREFS #IMPLIED + implements IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Comment --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Comment (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Comment + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ViewElement.model (UML:ModelElement)* > + +<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* > + +<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model | + UML:ViewElement.presentation)* > +<!ATTLIST UML:ViewElement + model IDREFS #IMPLIED + presentation IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Auxiliary_Elements.Presentation --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Presentation.geometry (UML:Geometry) > + +<!ELEMENT UML:Presentation.style (UML:GraphicMarker) > + +<!ELEMENT UML:Presentation.model (UML:ModelElement)* > + +<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* > + +<!ELEMENT UML:Presentation (UML:Presentation.geometry | + UML:Presentation.style | XMI.extension | + UML:Presentation.model | + UML:Presentation.viewElement)* > +<!ATTLIST UML:Presentation + model IDREFS #IMPLIED + viewElement IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Element --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Element (XMI.extension)* > +<!ATTLIST UML:Element + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.ModelElement --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:ModelElement.visibility EMPTY > +<!ATTLIST UML:ModelElement.visibility + xmi.value (public | protected | private) #REQUIRED +> + +<!ELEMENT UML:ModelElement.binding (UML:Binding)* > + +<!ELEMENT UML:ModelElement.template (UML:ModelElement)* > + +<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* > + +<!ELEMENT UML:ModelElement.implementation (UML:Component)* > + +<!ELEMENT UML:ModelElement.view (UML:ViewElement)* > + +<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* > + +<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* > + +<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* > + +<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* > + +<!ELEMENT UML:ModelElement.provision (UML:Dependency)* > + +<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* > + +<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* > + +<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* > + +<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* > + +<!ELEMENT UML:ModelElement.partition (UML:Partition)* > + +<!ELEMENT UML:ModelElement (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:ModelElement + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Namespace --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Namespace (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement)* > +<!ATTLIST UML:Namespace + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.GeneralizableElement --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:GeneralizableElement.isRoot EMPTY > +<!ATTLIST UML:GeneralizableElement.isRoot + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY > +<!ATTLIST UML:GeneralizableElement.isLeaf + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY > +<!ATTLIST UML:GeneralizableElement.isAbstract + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:GeneralizableElement.generalization + (UML:Generalization)* > + +<!ELEMENT UML:GeneralizableElement.specialization + (UML:Generalization)* > + +<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement)* > +<!ATTLIST UML:GeneralizableElement + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Classifier --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Classifier.parameter (UML:Parameter)* > + +<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* > + +<!ELEMENT UML:Classifier.specification (UML:Classifier)* > + +<!ELEMENT UML:Classifier.realization (UML:Classifier)* > + +<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* > + +<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* > + +<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* > + +<!ELEMENT UML:Classifier.instance (UML:Instance)* > + +<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* > + +<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* > + +<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* > + +<!ELEMENT UML:Classifier (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Classifier + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Interface --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Interface (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Interface + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Class --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Class.isActive EMPTY > +<!ATTLIST UML:Class.isActive + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:Class (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:Class.isActive | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Class + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + isActive (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.DataType --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:DataType (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:DataType + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Feature --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Feature.ownerScope EMPTY > +<!ATTLIST UML:Feature.ownerScope + xmi.value (classifier | instance) #REQUIRED +> + +<!ELEMENT UML:Feature.owner (UML:Classifier)* > + +<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* > + +<!ELEMENT UML:Feature (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Feature.owner | + UML:Feature.classifierRole | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Feature + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.StructuralFeature --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA | + XMI.reference)* > + +<!ELEMENT UML:StructuralFeature.changeable EMPTY > +<!ATTLIST UML:StructuralFeature.changeable + xmi.value (none | frozen | addOnly) #REQUIRED +> + +<!ELEMENT UML:StructuralFeature.targetScope EMPTY > +<!ATTLIST UML:StructuralFeature.targetScope + xmi.value (classifier | instance) #REQUIRED +> + +<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* > + +<!ELEMENT UML:StructuralFeature (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | + UML:StructuralFeature.multiplicity | + UML:StructuralFeature.changeable | + UML:StructuralFeature.targetScope | + XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Feature.owner | + UML:Feature.classifierRole | + UML:StructuralFeature.type | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:StructuralFeature + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + multiplicity CDATA #IMPLIED + changeable (none | frozen | addOnly) #IMPLIED + targetScope (classifier | instance) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + type IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.BehavioralFeature --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:BehavioralFeature.isQuery EMPTY > +<!ATTLIST UML:BehavioralFeature.isQuery + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* > + +<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | + UML:BehavioralFeature.isQuery | + XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Feature.owner | + UML:Feature.classifierRole | + UML:BehavioralFeature.raisedException | + UML:ModelElement.taggedValue | + UML:BehavioralFeature.parameter)* > +<!ATTLIST UML:BehavioralFeature + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + isQuery (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + raisedException IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Operation --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Operation.isPolymorphic EMPTY > +<!ATTLIST UML:Operation.isPolymorphic + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:Operation.concurrency EMPTY > +<!ATTLIST UML:Operation.concurrency + xmi.value (sequential | guarded | concurrent) #REQUIRED +> + +<!ELEMENT UML:Operation.method (UML:Method)* > + +<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* > + +<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* > + +<!ELEMENT UML:Operation (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | + UML:BehavioralFeature.isQuery | + UML:Operation.specification | + UML:Operation.isPolymorphic | + UML:Operation.concurrency | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Feature.owner | + UML:Feature.classifierRole | + UML:BehavioralFeature.raisedException | + UML:Request.action | + UML:Request.messageInstance | + UML:Operation.method | + UML:Operation.collaboration | + UML:Operation.occurrence | + UML:ModelElement.taggedValue | + UML:BehavioralFeature.parameter)* > +<!ATTLIST UML:Operation + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + isQuery (false | true) #IMPLIED + specification CDATA #IMPLIED + isPolymorphic (false | true) #IMPLIED + concurrency (sequential | guarded | concurrent) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + raisedException IDREFS #IMPLIED + action IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + method IDREFS #IMPLIED + Operation.collaboration IDREFS #IMPLIED + occurrence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Method --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Method.body (UML:ProcedureExpression) > + +<!ELEMENT UML:Method.specification (UML:Operation)* > + +<!ELEMENT UML:Method (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | + UML:BehavioralFeature.isQuery | UML:Method.body | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Feature.owner | + UML:Feature.classifierRole | + UML:BehavioralFeature.raisedException | + UML:Method.specification | + UML:ModelElement.taggedValue | + UML:BehavioralFeature.parameter)* > +<!ATTLIST UML:Method + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + isQuery (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + raisedException IDREFS #IMPLIED + specification IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Parameter --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Parameter.defaultValue (UML:Expression | + UML:ProcedureExpression | + UML:ObjectSetExpression | + UML:TimeExpression | + UML:BooleanExpression) > + +<!ELEMENT UML:Parameter.kind EMPTY > +<!ATTLIST UML:Parameter.kind + xmi.value (in | inout | out | return) #REQUIRED +> + +<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* > + +<!ELEMENT UML:Parameter.type (UML:Classifier)* > + +<!ELEMENT UML:Parameter.signal (UML:Signal)* > + +<!ELEMENT UML:Parameter (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Parameter.defaultValue | UML:Parameter.kind | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Parameter.behavioralFeature | + UML:Parameter.type | UML:Parameter.signal | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Parameter + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + kind (in | inout | out | return) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + behavioralFeature IDREFS #IMPLIED + type IDREFS #IMPLIED + signal IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Constraint --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Constraint.body (UML:BooleanExpression) > + +<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* > + +<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* > + +<!ELEMENT UML:Constraint (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Constraint.body | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Constraint.constrainedElement | + UML:Constraint.constrainedStereotype | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Constraint + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + constrainedElement IDREFS #IMPLIED + constrainedStereotype IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Dependency --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* > + +<!ELEMENT UML:Dependency.client (UML:ModelElement)* > + +<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* > + +<!ELEMENT UML:Dependency (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Dependency.description | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Dependency.owningDependency | + UML:Dependency.client | + UML:Dependency.supplier | + UML:ModelElement.taggedValue | + UML:Dependency.subDependencies)* > +<!ATTLIST UML:Dependency + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + description CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owningDependency IDREFS #IMPLIED + client IDREFS #IMPLIED + supplier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Generalization --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* > + +<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* > + +<!ELEMENT UML:Generalization (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Generalization.discriminator | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Generalization.subtype | + UML:Generalization.supertype | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Generalization + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + discriminator CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + subtype IDREFS #IMPLIED + supertype IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.AssociationEnd --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:AssociationEnd.isNavigable EMPTY > +<!ATTLIST UML:AssociationEnd.isNavigable + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:AssociationEnd.isOrdered EMPTY > +<!ATTLIST UML:AssociationEnd.isOrdered + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:AssociationEnd.aggregation EMPTY > +<!ATTLIST UML:AssociationEnd.aggregation + xmi.value (none | shared | composite) #REQUIRED +> + +<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:AssociationEnd.changeable EMPTY > +<!ATTLIST UML:AssociationEnd.changeable + xmi.value (none | frozen | addOnly) #REQUIRED +> + +<!ELEMENT UML:AssociationEnd.targetScope EMPTY > +<!ATTLIST UML:AssociationEnd.targetScope + xmi.value (classifier | instance) #REQUIRED +> + +<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* > + +<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* > + +<!ELEMENT UML:AssociationEnd.association (UML:Association)* > + +<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* > + +<!ELEMENT UML:AssociationEnd.associationEndRole + (UML:AssociationEndRole)* > + +<!ELEMENT UML:AssociationEnd (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:AssociationEnd.isNavigable | + UML:AssociationEnd.isOrdered | + UML:AssociationEnd.aggregation | + UML:AssociationEnd.multiplicity | + UML:AssociationEnd.changeable | + UML:AssociationEnd.targetScope | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:AssociationEnd.type | + UML:AssociationEnd.specification | + UML:AssociationEnd.association | + UML:AssociationEnd.linkEnd | + UML:AssociationEnd.associationEndRole | + UML:ModelElement.taggedValue | + UML:AssociationEnd.qualifier)* > +<!ATTLIST UML:AssociationEnd + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isNavigable (false | true) #IMPLIED + isOrdered (false | true) #IMPLIED + aggregation (none | shared | composite) #IMPLIED + multiplicity CDATA #IMPLIED + changeable (none | frozen | addOnly) #IMPLIED + targetScope (classifier | instance) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + type IDREFS #IMPLIED + specification IDREFS #IMPLIED + association IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + associationEndRole IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Association --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Association.link (UML:Link)* > + +<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* > + +<!ELEMENT UML:Association (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Association.link | + UML:Association.associationEnd | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Association.connection)* > +<!ATTLIST UML:Association + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + link IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.AssociationClass --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:AssociationClass (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:Class.isActive | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:Association.link | + UML:Association.associationEnd | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature | + UML:Association.connection)* > +<!ATTLIST UML:AssociationClass + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + isActive (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + Classifier.associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + link IDREFS #IMPLIED + Association.associationEnd IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Core.Attribute --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Attribute.initialValue (UML:Expression | + UML:ProcedureExpression | + UML:ObjectSetExpression | + UML:TimeExpression | + UML:BooleanExpression) > + +<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* > + +<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* > + +<!ELEMENT UML:Attribute (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | + UML:StructuralFeature.multiplicity | + UML:StructuralFeature.changeable | + UML:StructuralFeature.targetScope | + UML:Attribute.initialValue | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Feature.owner | + UML:Feature.classifierRole | + UML:StructuralFeature.type | + UML:Attribute.associationEnd | + UML:Attribute.attributeLink | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Attribute + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + multiplicity CDATA #IMPLIED + changeable (none | frozen | addOnly) #IMPLIED + targetScope (classifier | instance) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + type IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + attributeLink IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* > + +<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* > + +<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value | + XMI.extension | UML:TaggedValue.modelElement | + UML:TaggedValue.stereotype)* > +<!ATTLIST UML:TaggedValue + tag CDATA #IMPLIED + value CDATA #IMPLIED + modelElement IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Stereotype.icon (UML:Geometry) > + +<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* > + +<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* > + +<!ELEMENT UML:Stereotype (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:Stereotype.icon | UML:Stereotype.baseClass | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Stereotype.extendedElement | + UML:Stereotype.stereotypeConstraint | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Stereotype.requiredTag)* > +<!ATTLIST UML:Stereotype + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + baseClass CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + extendedElement IDREFS #IMPLIED + stereotypeConstraint IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.Enumeration --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Enumeration (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature | + UML:Enumeration.literal)* > +<!ATTLIST UML:Enumeration + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.EnumerationLiteral --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* > + +<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name | + XMI.extension | + UML:EnumerationLiteral.enumeration)* > +<!ATTLIST UML:EnumerationLiteral + name CDATA #IMPLIED + enumeration IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.Primitive --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Primitive (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Primitive + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.Structure --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Structure (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Structure + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.MultiplicityRange --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower | + UML:MultiplicityRange.upper | + XMI.extension)* > +<!ATTLIST UML:MultiplicityRange + lower CDATA #IMPLIED + upper CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.Geometry --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* > +<!ATTLIST UML:Geometry + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.GraphicMarker --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* > +<!ATTLIST UML:GraphicMarker + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.Mapping --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* > +<!ATTLIST UML:Mapping + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.Expression --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body | + XMI.extension)* > +<!ATTLIST UML:Expression + language CDATA #IMPLIED + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.ProcedureExpression --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ProcedureExpression (UML:Expression.language | + UML:Expression.body | XMI.extension)* > +<!ATTLIST UML:ProcedureExpression + language CDATA #IMPLIED + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.ObjectSetExpression --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ObjectSetExpression (UML:Expression.language | + UML:Expression.body | XMI.extension)* > +<!ATTLIST UML:ObjectSetExpression + language CDATA #IMPLIED + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.TimeExpression --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:TimeExpression (UML:Expression.language | + UML:Expression.body | XMI.extension)* > +<!ATTLIST UML:TimeExpression + language CDATA #IMPLIED + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Foundation.Data_Types.BooleanExpression --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:BooleanExpression (UML:Expression.language | + UML:Expression.body | XMI.extension)* > +<!ATTLIST UML:BooleanExpression + language CDATA #IMPLIED + body CDATA #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Model_Management.Package --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Package.elementReference (UML:ElementReference)* > + +<!ELEMENT UML:Package (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Package.elementReference | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement)* > +<!ATTLIST UML:Package + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + ModelElement.elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + Package.elementReference IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Model_Management.Subsystem --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Subsystem.isInstantiable EMPTY > +<!ATTLIST UML:Subsystem.isInstantiable + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:Subsystem (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:Subsystem.isInstantiable | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:Package.elementReference | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Subsystem + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + isInstantiable (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + ModelElement.elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + Package.elementReference IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Model_Management.Model --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Model (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Package.elementReference | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement)* > +<!ATTLIST UML:Model + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + ModelElement.elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + Package.elementReference IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Model_Management.ElementReference --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ElementReference.visibility EMPTY > +<!ATTLIST UML:ElementReference.visibility + xmi.value (public | protected | private) #REQUIRED +> + +<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* > + +<!ELEMENT UML:ElementReference.package (UML:Package)* > + +<!ELEMENT UML:ElementReference (UML:ElementReference.visibility | + UML:ElementReference.alias | + XMI.extension | + UML:ElementReference.referencedElement | + UML:ElementReference.package)* > +<!ATTLIST UML:ElementReference + visibility (public | protected | private) #IMPLIED + alias CDATA #IMPLIED + referencedElement IDREFS #IMPLIED + package IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Request --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Request.action (UML:Action)* > + +<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* > + +<!ELEMENT UML:Request (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Request.action | + UML:Request.messageInstance | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Request + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + action IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Signal.reception (UML:Reception)* > + +<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* > + +<!ELEMENT UML:Signal (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Request.action | UML:Request.messageInstance | + UML:Signal.reception | UML:Signal.occurrence | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Signal.parameter)* > +<!ATTLIST UML:Signal + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + action IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + reception IDREFS #IMPLIED + occurrence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* > + +<!ELEMENT UML:Exception (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Request.action | + UML:Request.messageInstance | + UML:Signal.reception | UML:Signal.occurrence | + UML:Exception.context | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Signal.parameter)* > +<!ATTLIST UML:Exception + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + action IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + reception IDREFS #IMPLIED + occurrence IDREFS #IMPLIED + context IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Reception.isPolymorphic EMPTY > +<!ATTLIST UML:Reception.isPolymorphic + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Reception.signal (UML:Signal)* > + +<!ELEMENT UML:Reception (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Feature.ownerScope | + UML:BehavioralFeature.isQuery | + UML:Reception.isPolymorphic | + UML:Reception.specification | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Feature.owner | + UML:Feature.classifierRole | + UML:BehavioralFeature.raisedException | + UML:Reception.signal | + UML:ModelElement.taggedValue | + UML:BehavioralFeature.parameter)* > +<!ATTLIST UML:Reception + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + ownerScope (classifier | instance) #IMPLIED + isQuery (false | true) #IMPLIED + isPolymorphic (false | true) #IMPLIED + specification CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + owner IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + raisedException IDREFS #IMPLIED + signal IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression | + UML:ObjectSetExpression | + UML:TimeExpression | + UML:BooleanExpression) > + +<!ELEMENT UML:Argument.action (UML:Action)* > + +<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension | + UML:Argument.action)* > +<!ATTLIST UML:Argument + action IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ActionSequence.transition (UML:Transition)* > + +<!ELEMENT UML:ActionSequence.state (UML:State)* > + +<!ELEMENT UML:ActionSequence.state2 (UML:State)* > + +<!ELEMENT UML:ActionSequence (UML:ModelElement.name | + UML:ModelElement.visibility | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:ActionSequence.transition | + UML:ActionSequence.state | + UML:ActionSequence.state2 | + UML:ModelElement.taggedValue | + UML:ActionSequence.action)* > +<!ATTLIST UML:ActionSequence + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + transition IDREFS #IMPLIED + state IDREFS #IMPLIED + state2 IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Action --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Action.recurrence (UML:Expression | + UML:ProcedureExpression | + UML:ObjectSetExpression | + UML:TimeExpression | + UML:BooleanExpression) > + +<!ELEMENT UML:Action.target (UML:ObjectSetExpression) > + +<!ELEMENT UML:Action.isAsynchronous EMPTY > +<!ATTLIST UML:Action.isAsynchronous + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:Action.request (UML:Request)* > + +<!ELEMENT UML:Action.message (UML:Message)* > + +<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* > + +<!ELEMENT UML:Action (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | UML:Action.script | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Action.request | + UML:Action.message | UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:Action + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* > + +<!ELEMENT UML:CreateAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | + UML:Action.script | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:CreateAction.instantiation | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:CreateAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + instantiation IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:CallAction.mode EMPTY > +<!ATTLIST UML:CallAction.mode + xmi.value (synchronous | asynchronous) #REQUIRED +> + +<!ELEMENT UML:CallAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | UML:Action.script | + UML:CallAction.mode | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:CallAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + mode (synchronous | asynchronous) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:LocalInvocation (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | + UML:Action.script | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:LocalInvocation + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ReturnAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | + UML:Action.script | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:ReturnAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:SendAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | UML:Action.script | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:SendAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | + UML:Action.target | + UML:Action.isAsynchronous | + UML:Action.script | + UML:UninterpretedAction.body | + XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | + UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:UninterpretedAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + body CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:TerminateAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | + UML:Action.script | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:TerminateAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:DestroyAction (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:Action.recurrence | UML:Action.target | + UML:Action.isAsynchronous | + UML:Action.script | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Action.request | UML:Action.message | + UML:Action.actionSequence | + UML:ModelElement.taggedValue | + UML:Action.actualArgument)* > +<!ATTLIST UML:DestroyAction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isAsynchronous (false | true) #IMPLIED + script CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + request IDREFS #IMPLIED + message IDREFS #IMPLIED + actionSequence IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Link --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Link.association (UML:Association)* > + +<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Link.association | + UML:ModelElement.taggedValue | UML:Link.linkRole)* > +<!ATTLIST UML:Link + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + association IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:LinkEnd.link (UML:Link)* > + +<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* > + +<!ELEMENT UML:LinkEnd.instance (UML:Instance)* > + +<!ELEMENT UML:LinkEnd (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:LinkEnd.link | + UML:LinkEnd.associationEnd | UML:LinkEnd.instance | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:LinkEnd + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + link IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + instance IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* > + +<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* > + +<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* > + +<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* > + +<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* > + +<!ELEMENT UML:Instance.classifier (UML:Classifier)* > + +<!ELEMENT UML:Instance (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Instance.linkEnd | + UML:Instance.messageInstance3 | + UML:Instance.messageInstance2 | + UML:Instance.messageInstance | + UML:Instance.attributeLink | + UML:Instance.classifier | + UML:ModelElement.taggedValue | + UML:Instance.slot)* > +<!ATTLIST UML:Instance + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + messageInstance3 IDREFS #IMPLIED + messageInstance2 IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + attributeLink IDREFS #IMPLIED + classifier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:AttributeLink.instance (UML:Instance)* > + +<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* > + +<!ELEMENT UML:AttributeLink.value (UML:Instance)* > + +<!ELEMENT UML:AttributeLink (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:AttributeLink.instance | + UML:AttributeLink.attribute | + UML:AttributeLink.value | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:AttributeLink + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + instance IDREFS #IMPLIED + attribute IDREFS #IMPLIED + value IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.Object --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Object (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Instance.linkEnd | + UML:Instance.messageInstance3 | + UML:Instance.messageInstance2 | + UML:Instance.messageInstance | + UML:Instance.attributeLink | + UML:Instance.classifier | + UML:ModelElement.taggedValue | UML:Instance.slot)* > +<!ATTLIST UML:Object + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + messageInstance3 IDREFS #IMPLIED + messageInstance2 IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + attributeLink IDREFS #IMPLIED + classifier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:DataValue (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Instance.linkEnd | + UML:Instance.messageInstance3 | + UML:Instance.messageInstance2 | + UML:Instance.messageInstance | + UML:Instance.attributeLink | + UML:Instance.classifier | + UML:ModelElement.taggedValue | + UML:Instance.slot)* > +<!ATTLIST UML:DataValue + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + messageInstance3 IDREFS #IMPLIED + messageInstance2 IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + attributeLink IDREFS #IMPLIED + classifier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:LinkObject (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Instance.linkEnd | + UML:Instance.messageInstance3 | + UML:Instance.messageInstance2 | + UML:Instance.messageInstance | + UML:Instance.attributeLink | + UML:Instance.classifier | UML:Link.association | + UML:ModelElement.taggedValue | + UML:Instance.slot | UML:Link.linkRole)* > +<!ATTLIST UML:LinkObject + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + messageInstance3 IDREFS #IMPLIED + messageInstance2 IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + attributeLink IDREFS #IMPLIED + classifier IDREFS #IMPLIED + association IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:MessageInstance.specification (UML:Request)* > + +<!ELEMENT UML:MessageInstance.sender (UML:Instance)* > + +<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* > + +<!ELEMENT UML:MessageInstance.argument (UML:Instance)* > + +<!ELEMENT UML:MessageInstance (UML:ModelElement.name | + UML:ModelElement.visibility | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:MessageInstance.specification | + UML:MessageInstance.sender | + UML:MessageInstance.receiver | + UML:MessageInstance.argument | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:MessageInstance + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + specification IDREFS #IMPLIED + sender IDREFS #IMPLIED + receiver IDREFS #IMPLIED + argument IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* > + +<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* > + +<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* > + +<!ELEMENT UML:Collaboration (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Collaboration.representedClassifier | + UML:Collaboration.representedOperation | + UML:Collaboration.constrainingElement | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Collaboration.interaction)* > +<!ATTLIST UML:Collaboration + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + representedClassifier IDREFS #IMPLIED + representedOperation IDREFS #IMPLIED + constrainingElement IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Collaborations.Interaction --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Interaction.context (UML:Collaboration)* > + +<!ELEMENT UML:Interaction (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Interaction.context | + UML:ModelElement.taggedValue | + UML:Interaction.message)* > +<!ATTLIST UML:Interaction + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + context IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:AssociationRole.base (UML:Association)* > + +<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* > + +<!ELEMENT UML:AssociationRole (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:AssociationRole.multiplicity | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Association.link | + UML:Association.associationEnd | + UML:AssociationRole.base | + UML:AssociationRole.namespace | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Association.connection)* > +<!ATTLIST UML:AssociationRole + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + multiplicity CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + ModelElement.namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + link IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + base IDREFS #IMPLIED + AssociationRole.namespace IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:AssociationEndRole.associationRole + (UML:AssociationRole)* > + +<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* > + +<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:AssociationEnd.isNavigable | + UML:AssociationEnd.isOrdered | + UML:AssociationEnd.aggregation | + UML:AssociationEnd.multiplicity | + UML:AssociationEnd.changeable | + UML:AssociationEnd.targetScope | + XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:AssociationEnd.type | + UML:AssociationEnd.specification | + UML:AssociationEnd.association | + UML:AssociationEnd.linkEnd | + UML:AssociationEnd.associationEndRole | + UML:AssociationEndRole.associationRole | + UML:AssociationEndRole.base | + UML:ModelElement.taggedValue | + UML:AssociationEnd.qualifier)* > +<!ATTLIST UML:AssociationEndRole + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isNavigable (false | true) #IMPLIED + isOrdered (false | true) #IMPLIED + aggregation (none | shared | composite) #IMPLIED + multiplicity CDATA #IMPLIED + changeable (none | frozen | addOnly) #IMPLIED + targetScope (classifier | instance) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + type IDREFS #IMPLIED + specification IDREFS #IMPLIED + association IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + associationEndRole IDREFS #IMPLIED + associationRole IDREFS #IMPLIED + base IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Collaborations.Message --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Message.interaction (UML:Interaction)* > + +<!ELEMENT UML:Message.predecessor (UML:Message)* > + +<!ELEMENT UML:Message.message2 (UML:Message)* > + +<!ELEMENT UML:Message.message (UML:Message)* > + +<!ELEMENT UML:Message.activator (UML:Message)* > + +<!ELEMENT UML:Message.action (UML:Action)* > + +<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* > + +<!ELEMENT UML:Message.sender (UML:ClassifierRole)* > + +<!ELEMENT UML:Message (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Message.interaction | UML:Message.predecessor | + UML:Message.message2 | UML:Message.message | + UML:Message.activator | UML:Message.action | + UML:Message.receiver | UML:Message.sender | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Message + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + interaction IDREFS #IMPLIED + predecessor IDREFS #IMPLIED + message2 IDREFS #IMPLIED + message IDREFS #IMPLIED + activator IDREFS #IMPLIED + action IDREFS #IMPLIED + receiver IDREFS #IMPLIED + sender IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:ClassifierRole.associationEndRole + (UML:AssociationEndRole)* > + +<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* > + +<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* > + +<!ELEMENT UML:ClassifierRole.message (UML:Message)* > + +<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* > + +<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* > + +<!ELEMENT UML:ClassifierRole (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:ClassifierRole.multiplicity | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ClassifierRole.associationEndRole | + UML:ClassifierRole.namespace | + UML:ClassifierRole.message2 | + UML:ClassifierRole.message | + UML:ClassifierRole.base | + UML:ClassifierRole.availableFeature | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:ClassifierRole + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + multiplicity CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + ModelElement.namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + associationEndRole IDREFS #IMPLIED + ClassifierRole.namespace IDREFS #IMPLIED + message2 IDREFS #IMPLIED + message IDREFS #IMPLIED + base IDREFS #IMPLIED + availableFeature IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Use_Cases.Actor --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Actor (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:Actor + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* > + +<!ELEMENT UML:UseCase (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + UML:UseCase.extensionPoint | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:UseCase + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + extensionPoint CDATA #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name | + UML:ModelElement.visibility | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Instance.linkEnd | + UML:Instance.messageInstance3 | + UML:Instance.messageInstance2 | + UML:Instance.messageInstance | + UML:Instance.attributeLink | + UML:Instance.classifier | + UML:ModelElement.taggedValue | + UML:Instance.slot)* > +<!ATTLIST UML:UseCaseInstance + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + linkEnd IDREFS #IMPLIED + messageInstance3 IDREFS #IMPLIED + messageInstance2 IDREFS #IMPLIED + messageInstance IDREFS #IMPLIED + attributeLink IDREFS #IMPLIED + classifier IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:StateMachine.context (UML:ModelElement)* > + +<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* > + +<!ELEMENT UML:StateMachine (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateMachine.context | + UML:StateMachine.submachineState | + UML:ModelElement.taggedValue | + UML:StateMachine.top | + UML:StateMachine.transitions)* > +<!ATTLIST UML:StateMachine + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + context IDREFS #IMPLIED + submachineState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.Guard --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Guard.expression (UML:BooleanExpression) > + +<!ELEMENT UML:Guard.transition (UML:Transition)* > + +<!ELEMENT UML:Guard (UML:ModelElement.name | + UML:ModelElement.visibility | UML:Guard.expression | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Guard.transition | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Guard + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + transition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* > + +<!ELEMENT UML:StateVertex.incoming (UML:Transition)* > + +<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* > + +<!ELEMENT UML:StateVertex (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:StateVertex + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.Transition --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Transition.source (UML:StateVertex)* > + +<!ELEMENT UML:Transition.target (UML:StateVertex)* > + +<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* > + +<!ELEMENT UML:Transition.state (UML:State)* > + +<!ELEMENT UML:Transition.trigger (UML:Event)* > + +<!ELEMENT UML:Transition (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Transition.source | UML:Transition.target | + UML:Transition.statemachine | + UML:Transition.state | UML:Transition.trigger | + UML:ModelElement.taggedValue | + UML:Transition.guard | UML:Transition.effect)* > +<!ATTLIST UML:Transition + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + source IDREFS #IMPLIED + target IDREFS #IMPLIED + statemachine IDREFS #IMPLIED + state IDREFS #IMPLIED + trigger IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:PseudoState.kind EMPTY > +<!ATTLIST UML:PseudoState.kind + xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED +> + +<!ELEMENT UML:PseudoState (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:PseudoState.kind | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:PseudoState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.State --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:State.stateMachine (UML:StateMachine)* > + +<!ELEMENT UML:State.deferredEvent (UML:Event)* > + +<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* > + +<!ELEMENT UML:State (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | UML:StateVertex.incoming | + UML:StateVertex.parent | UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:ModelElement.taggedValue | + UML:State.internalTransition | UML:State.entry | + UML:State.exit)* > +<!ATTLIST UML:State + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:CompositeState.isConcurrent EMPTY > +<!ATTLIST UML:CompositeState.isConcurrent + xmi.value (false | true) #REQUIRED +> + +<!ELEMENT UML:CompositeState (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:CompositeState.isConcurrent | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:ModelElement.taggedValue | + UML:State.internalTransition | + UML:State.entry | UML:State.exit | + UML:CompositeState.substate)* > +<!ATTLIST UML:CompositeState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isConcurrent (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:SimpleState (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:ModelElement.taggedValue | + UML:State.internalTransition | + UML:State.entry | UML:State.exit)* > +<!ATTLIST UML:SimpleState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* > + +<!ELEMENT UML:SubmachineState (UML:ModelElement.name | + UML:ModelElement.visibility | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:SubmachineState.stateMachine | + UML:ModelElement.taggedValue | + UML:State.internalTransition | + UML:State.entry | UML:State.exit)* > +<!ATTLIST UML:SubmachineState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + State.stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + SubmachineState.stateMachine IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.Event --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Event.state (UML:State)* > + +<!ELEMENT UML:Event.transition (UML:Transition)* > + +<!ELEMENT UML:Event (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Event.state | + UML:Event.transition | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Event + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + state IDREFS #IMPLIED + transition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:SignalEvent.signal (UML:Signal)* > + +<!ELEMENT UML:SignalEvent (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Event.state | + UML:Event.transition | UML:SignalEvent.signal | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:SignalEvent + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + state IDREFS #IMPLIED + transition IDREFS #IMPLIED + signal IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:CallEvent.operation (UML:Operation)* > + +<!ELEMENT UML:CallEvent (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Event.state | + UML:Event.transition | UML:CallEvent.operation | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:CallEvent + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + state IDREFS #IMPLIED + transition IDREFS #IMPLIED + operation IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) > + +<!ELEMENT UML:TimeEvent (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:TimeEvent.duration | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Event.state | + UML:Event.transition | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:TimeEvent + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + state IDREFS #IMPLIED + transition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) > + +<!ELEMENT UML:ChangeEvent (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:ChangeEvent.changeExpression | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | UML:Event.state | + UML:Event.transition | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:ChangeEvent + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + state IDREFS #IMPLIED + transition IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ActivityModel (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateMachine.context | + UML:StateMachine.submachineState | + UML:ModelElement.taggedValue | + UML:StateMachine.top | + UML:StateMachine.transitions | + UML:ActivityModel.partition)* > +<!ATTLIST UML:ActivityModel + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + context IDREFS #IMPLIED + submachineState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.Partition --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:Partition.contents (UML:ModelElement)* > + +<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* > + +<!ELEMENT UML:Partition (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:Partition.contents | + UML:Partition.activityModel | + UML:ModelElement.taggedValue)* > +<!ATTLIST UML:Partition + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + contents IDREFS #IMPLIED + activityModel IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.ActionState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ActionState (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:ModelElement.taggedValue | + UML:State.internalTransition | + UML:State.entry | UML:State.exit)* > +<!ATTLIST UML:ActionState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* > + +<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name | + UML:ModelElement.visibility | + XMI.extension | UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:ObjectFlowState.typeState | + UML:ModelElement.taggedValue | + UML:State.internalTransition | + UML:State.entry | UML:State.exit)* > +<!ATTLIST UML:ObjectFlowState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + typeState IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* > + +<!ELEMENT UML:ClassifierInState.inState (UML:State)* > + +<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* > + +<!ELEMENT UML:ClassifierInState (UML:ModelElement.name | + UML:ModelElement.visibility | + UML:GeneralizableElement.isRoot | + UML:GeneralizableElement.isLeaf | + UML:GeneralizableElement.isAbstract | + XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:GeneralizableElement.generalization | + UML:GeneralizableElement.specialization | + UML:Classifier.parameter | + UML:Classifier.structuralFeature | + UML:Classifier.specification | + UML:Classifier.realization | + UML:Classifier.associationEnd | + UML:Classifier.participant | + UML:Classifier.createAction | + UML:Classifier.instance | + UML:Classifier.collaboration | + UML:Classifier.classifierRole | + UML:Classifier.classifierInState | + UML:ClassifierInState.objectFlowState | + UML:ClassifierInState.inState | + UML:ClassifierInState.type | + UML:ModelElement.taggedValue | + UML:Namespace.ownedElement | + UML:Classifier.feature)* > +<!ATTLIST UML:ClassifierInState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + isRoot (false | true) #IMPLIED + isLeaf (false | true) #IMPLIED + isAbstract (false | true) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + ModelElement.collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + generalization IDREFS #IMPLIED + specialization IDREFS #IMPLIED + parameter IDREFS #IMPLIED + structuralFeature IDREFS #IMPLIED + specification IDREFS #IMPLIED + realization IDREFS #IMPLIED + associationEnd IDREFS #IMPLIED + participant IDREFS #IMPLIED + createAction IDREFS #IMPLIED + instance IDREFS #IMPLIED + Classifier.collaboration IDREFS #IMPLIED + classifierRole IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + objectFlowState IDREFS #IMPLIED + inState IDREFS #IMPLIED + type IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!-- _______________________________________________________________ --> +<!-- --> +<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState --> +<!-- _______________________________________________________________ --> + +<!ELEMENT UML:ActivityState (UML:ModelElement.name | + UML:ModelElement.visibility | XMI.extension | + UML:ModelElement.binding | + UML:ModelElement.template | + UML:ModelElement.templateParameter | + UML:ModelElement.implementation | + UML:ModelElement.view | + UML:ModelElement.presentation | + UML:ModelElement.namespace | + UML:ModelElement.constraint | + UML:ModelElement.requirement | + UML:ModelElement.provision | + UML:ModelElement.stereotype | + UML:ModelElement.elementReference | + UML:ModelElement.collaboration | + UML:ModelElement.behavior | + UML:ModelElement.partition | + UML:StateVertex.outgoing | + UML:StateVertex.incoming | + UML:StateVertex.parent | + UML:State.stateMachine | + UML:State.deferredEvent | + UML:State.classifierInState | + UML:SubmachineState.stateMachine | + UML:ModelElement.taggedValue | + UML:State.internalTransition | + UML:State.entry | UML:State.exit)* > +<!ATTLIST UML:ActivityState + name CDATA #IMPLIED + visibility (public | protected | private) #IMPLIED + binding IDREFS #IMPLIED + template IDREFS #IMPLIED + templateParameter IDREFS #IMPLIED + implementation IDREFS #IMPLIED + view IDREFS #IMPLIED + presentation IDREFS #IMPLIED + namespace IDREFS #IMPLIED + constraint IDREFS #IMPLIED + requirement IDREFS #IMPLIED + provision IDREFS #IMPLIED + stereotype IDREFS #IMPLIED + elementReference IDREFS #IMPLIED + collaboration IDREFS #IMPLIED + behavior IDREFS #IMPLIED + partition IDREFS #IMPLIED + outgoing IDREFS #IMPLIED + incoming IDREFS #IMPLIED + parent IDREFS #IMPLIED + State.stateMachine IDREFS #IMPLIED + deferredEvent IDREFS #IMPLIED + classifierInState IDREFS #IMPLIED + SubmachineState.stateMachine IDREFS #IMPLIED + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core | + UML:Extension_Mechanisms | UML:Data_Types)* > +<!ATTLIST UML:Foundation + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage | + UML:Trace | UML:Binding | UML:Node | + UML:Component | UML:Comment | + UML:ViewElement | UML:Presentation)* > +<!ATTLIST UML:Auxiliary_Elements + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace | + UML:GeneralizableElement | UML:Classifier | + UML:Interface | UML:Class | UML:DataType | + UML:Feature | UML:StructuralFeature | + UML:BehavioralFeature | UML:Operation | UML:Method | + UML:Parameter | UML:Constraint | UML:Dependency | + UML:Generalization | UML:AssociationEnd | + UML:Association | UML:AssociationClass | + UML:Attribute)* > +<!ATTLIST UML:Core + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* > +<!ATTLIST UML:Extension_Mechanisms + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral | + UML:Primitive | UML:Structure | + UML:MultiplicityRange | UML:Geometry | + UML:GraphicMarker | UML:Mapping | + UML:Expression | UML:ProcedureExpression | + UML:ObjectSetExpression | UML:TimeExpression | + UML:BooleanExpression)* > +<!ATTLIST UML:Data_Types + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model | + UML:ElementReference)* > +<!ATTLIST UML:Model_Management + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior | + UML:Collaborations | UML:Use_Cases | + UML:State_Machines)* > +<!ATTLIST UML:Behavioral_Elements + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception | + UML:Reception | UML:Argument | + UML:ActionSequence | UML:Action | + UML:CreateAction | UML:CallAction | + UML:LocalInvocation | UML:ReturnAction | + UML:SendAction | UML:UninterpretedAction | + UML:TerminateAction | UML:DestroyAction | + UML:Link | UML:LinkEnd | UML:Instance | + UML:AttributeLink | UML:Object | + UML:DataValue | UML:LinkObject | + UML:MessageInstance)* > +<!ATTLIST UML:Common_Behavior + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction | + UML:AssociationRole | + UML:AssociationEndRole | UML:Message | + UML:ClassifierRole)* > +<!ATTLIST UML:Collaborations + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase | + UML:UseCaseInstance)* > +<!ATTLIST UML:Use_Cases + %XMI.element.att; + %XMI.link.att; +> + +<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard | + UML:StateVertex | UML:Transition | + UML:PseudoState | UML:State | + UML:CompositeState | UML:SimpleState | + UML:SubmachineState | UML:Event | + UML:SignalEvent | UML:CallEvent | + UML:TimeEvent | UML:ChangeEvent | + UML:ActivityModel | UML:Partition | + UML:ActionState | UML:ObjectFlowState | + UML:ClassifierInState | + UML:ActivityState)* > +<!ATTLIST UML:State_Machines + %XMI.element.att; + %XMI.link.att; +> diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl new file mode 100755 index 00000000000..e619e3616cd --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl @@ -0,0 +1,56 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; + +my $idl = "test.idl"; +my $dtd = "../XMI.dtd"; +my $xmi = "generated.xmi"; +my $target_idl = $target->LocalFile ($idl); +my $target_dtd = $target->LocalFile ($dtd); +my $target_xmi = $target->LocalFile ($xmi); +$target->DeleteFile($xmi); +unlink $xmi; + +$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi", + "-f -xd $target_dtd -of $target_xmi $target_idl"); + +$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval()); + +if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + exit 1; +} + +if ($target->GetFile ($xmi) == -1) { + print STDERR "ERROR: cannot retrieve file <$xmi>\n"; + exit 1; +} + +# search for right tag in generated xmi +open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!"); +@data=<DAT>; +close (DAT); + +$num = grep (/<UML:Attribute/, @data); +if ($num == 6) { + print "TEST OK. Correct tags in there.\n"; +} else { + print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n"; + print "@data\n\n"; + $status = 1; +} + +$target->DeleteFile($xmi); +unlink $xmi; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl new file mode 100644 index 00000000000..548c7aa2073 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl @@ -0,0 +1,20 @@ +// $Id$ + +#ifndef TEST_IDL +#define TEST_IDL + +module TestXMIArray { + typedef char CharArray [4][5]; + + struct A + { + CharArray bar; + }; + + struct B + { + char bar[3][2]; + }; +}; + +#endif // TEST_IDL diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl new file mode 100644 index 00000000000..4c3659f4f48 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl @@ -0,0 +1,15 @@ +// $Id$ + +#ifndef File_1_ +#define File_1_ + +module File1 { + + typedef sequence <short> Seq1; + + typedef string type2; + typedef sequence <type2> Seq2; + +}; + +#endif diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl new file mode 100644 index 00000000000..f8c3106e352 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl @@ -0,0 +1,20 @@ +// $Id$ + +#ifndef FILE_2_ +#define FILE_2_ + +#include <File1.idl> + +module File2 { + + interface Test { + + void op1(in File1::Seq1 s1); + + void op2(in File1::Seq2 s2); + + }; + +}; + +#endif // FILE_2_ diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl new file mode 100755 index 00000000000..73300c2ccec --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl @@ -0,0 +1,56 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; + +my $idl = "File2.idl"; +my $dtd = "../XMI.dtd"; +my $xmi = "generated.xmi"; +my $target_idl = $target->LocalFile ($idl); +my $target_dtd = $target->LocalFile ($dtd); +my $target_xmi = $target->LocalFile ($xmi); +$target->DeleteFile($xmi); +unlink $xmi; + +$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi", + "-f -xd $target_dtd -of $target_xmi $target_idl"); + +$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval()); + +if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + exit 1; +} + +if ($target->GetFile ($xmi) == -1) { + print STDERR "ERROR: cannot retrieve file <$xmi>\n"; + exit 1; +} + +# search for right tag in generated xmi +open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!"); +@data=<DAT>; +close (DAT); + +$num = grep (/<UML:Attribute/, @data); +if ($num == 2) { + print "TEST OK. Correct tags in there.\n"; +} else { + print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n"; + print "@data\n\n"; + $status = 1; +} + +$target->DeleteFile($xmi); +unlink $xmi; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl new file mode 100755 index 00000000000..011b44803f4 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl @@ -0,0 +1,79 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; + +my $idl = "test.idl"; +my $dtd = "../XMI.dtd"; +my $xmi = "generated.xmi"; +my $target_idl = $target->LocalFile ($idl); +my $target_dtd = $target->LocalFile ($dtd); +my $target_xmi = $target->LocalFile ($xmi); +$target->DeleteFile($xmi); +unlink $xmi; + +$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi", + "-f -xd $target_dtd -of $target_xmi $target_idl"); + +$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval()); + +if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + exit 1; +} + +if ($target->GetFile ($xmi) == -1) { + print STDERR "ERROR: cannot retrieve file <$xmi>\n"; + exit 1; +} + +$A_occurs = 0; +$A_indent = ""; +$A_line = ""; +$A_xmiid = "one"; +$B_occurs = 0; +$B_indent = ""; +$B_line = ""; +$B_ns = "two"; +@data = (); + +# search for right tag in generated xmi +open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!"); +while ($line = <DAT>) { + push @data, $line; + if ($line =~ /(\s*)<UML:Package name=\"A\".*xmi\.id=\"([^\"]*)\"/) { + ++$A_occurs; + $A_indent = $1; + $A_xmiid = $2 unless ($2 eq ""); + $A_line = $line; + } elsif ($line =~ /(\s*)<UML:Package name=\"B\".*namespace=\"([^\"]*)\"/) { + ++$B_occurs; + $B_indent = $1; + $B_ns = $2 unless ($2 eq ""); + $B_line = $line; + } +} +close (DAT); + +if ($A_occurs == 1 && $B_occurs == 1 && $A_xmiid eq $B_ns && + length ($A_indent) < length ($B_indent)) { + print "TEST OK. Correct tags are there.\n$A_line$B_line"; +} else { + print STDERR "ERROR: generated XMI does is not correct!\n\nXMI is:\n\n"; + print "@data\n\n"; + $status = 1; +} + +$target->DeleteFile($xmi); +unlink $xmi; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl new file mode 100644 index 00000000000..9ec8562abb9 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl @@ -0,0 +1,43 @@ +// $Id$ + +#ifndef TEST_IDL +#define TEST_IDL + +module A { + module C { + interface B_itf { + }; + + interface C_itf { + }; + + eventtype E_evt { + }; + + eventtype F_evt { + }; + + component B_comp { + provides C_itf c_facet; + consumes E_evt e_consumer; + }; + }; +}; + +module A { + module B { + module C { + module D { + component A_comp : ::A::C::B_comp { + provides ::A::C::B_itf a_facet; + consumes ::A::C::F_evt f_consumer; + }; + + home A_home manages ::A::B::C::D::A_comp { + }; + }; + }; + }; +}; + +#endif // TEST_IDL diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl new file mode 100755 index 00000000000..112c65967cd --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl @@ -0,0 +1,63 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; + +my $idl = "test.idl"; +my $dtd = "../XMI.dtd"; +my $xmi = "generated.xmi"; +my $target_idl = $target->LocalFile ($idl); +my $target_dtd = $target->LocalFile ($dtd); +my $target_xmi = $target->LocalFile ($xmi); +$target->DeleteFile($xmi); +unlink $xmi; + +$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi", + "-f -xd $target_dtd -of $target_xmi $target_idl"); + +$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval()); + +if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + exit 1; +} + +if ($target->GetFile ($xmi) == -1) { + print STDERR "ERROR: cannot retrieve file <$xmi>\n"; + exit 1; +} + +$native_correct = 0; +@data = (); + +# search for right tag in generated xmi +open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!"); +while ($line = <DAT>) { + push @data, $line; + if ($line =~ /name\s*=\s*\"CORBAnative\"/) { + $native_correct = 1; + } +} +close (DAT); + +if ($native_correct) { + print "TEST OK. Correct tags are there.\n"; +} else { + print STDERR "ERROR: generated XMI is not correct!\n\nXMI is:\n\n"; + print "@data\n\n"; + $status = 1; +} + +$target->DeleteFile($xmi); +unlink $xmi; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl new file mode 100644 index 00000000000..f3d97257e7e --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl @@ -0,0 +1,6 @@ +// $Id$ + +#ifndef TEST_IDL +#define TEST_IDL + +#endif // TEST_IDL diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl new file mode 100755 index 00000000000..0285c156fbb --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl @@ -0,0 +1,56 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +$status = 0; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; + +my $idl = "test.idl"; +my $dtd = "../XMI.dtd"; +my $xmi = "generated.xmi"; +my $target_idl = $target->LocalFile ($idl); +my $target_dtd = $target->LocalFile ($dtd); +my $target_xmi = $target->LocalFile ($xmi); +$target->DeleteFile($xmi); +unlink $xmi; + +$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi", + "-f -xd $target_dtd -of $target_xmi $target_idl"); + +$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval()); + +if ($target_status != 0) { + print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n"; + exit 1; +} + +if ($target->GetFile ($xmi) == -1) { + print STDERR "ERROR: cannot retrieve file <$xmi>\n"; + exit 1; +} + +# search for right tag in generated xmi +open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!"); +@data=<DAT>; +close (DAT); + +$num = grep (/<UML:Attribute/, @data); +if ($num == 8) { + print "TEST OK. Correct tags in there.\n"; +} else { + print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n"; + print "@data\n\n"; + $status = 1; +} + +$target->DeleteFile($xmi); +unlink $xmi; + +exit $status; diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl new file mode 100644 index 00000000000..1fced580bc2 --- /dev/null +++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl @@ -0,0 +1,25 @@ +// $Id$ + +#ifndef TEST_IDL +#define TEST_IDL + +module TestXMISequence { + typedef sequence<char> SeqChar; + typedef sequence<char, 10> SeqChar10; + + struct A { + sequence<char> field; + }; + struct A10 { + sequence<char, 10> field; + }; + + struct B { + SeqChar field; + }; + struct B10 { + SeqChar10 field; + }; +}; + +#endif // TEST_IDL diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl new file mode 100644 index 00000000000..f94418f9fe7 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl @@ -0,0 +1,134 @@ +// $Id$ +/** + * @file Cornucopia.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests TAO_IDL generation of CIAO servant, executor IDL + * and executor implementation stencil for a variety of + * IDL3 constructs. + */ + +#include <Components.idl> + +module Supported +{ + interface IfacePawPaw + { + long paw_paw_op (out short spew); + attribute boolean inbred; + }; + + interface IfaceMom : IfacePawPaw + { + readonly attribute wchar uni_tag; + IfacePawPaw get_paw_paw (); + }; + + interface IfaceDad : IfacePawPaw + { + attribute string msg; + long long get_big_int (in IfacePawPaw genealogy); + }; + + interface Iface : IfaceMom, IfaceDad + { + attribute wstring uni_uuid; + void supported_op (inout unsigned long index); + }; +}; + +interface pface {}; +interface uface {}; +interface umface {}; + +abstract interface IfAb +{ + long op (out long value); +}; + +interface IfConcr : IfAb +{ + long concr_op (out long value); +}; + +valuetype pkey : Components::PrimaryKeyBase +{ + public string info; +}; + +eventtype pubtype {}; +eventtype emittype {}; +eventtype eattype {}; + +exception BadGet {}; +exception BadSet {}; +exception Whatever {}; + +module BaseMod +{ +component CompBase supports Supported::Iface + { + attribute octet the_byte + getraises (BadGet, Whatever) setraises (BadSet); + }; +}; + +enum Color +{ + RED, + WHITE, + BLUE +}; + +module DerivedMod +{ + porttype CombinedPort + { + provides pface pface_provider; + uses uface uface_user; + uses multiple umface umface_umuser; + }; + + component CompCombinedPort + { + port CombinedPort cc; + }; + + component MirrorCompCombinedPort + { + mirrorport CombinedPort cc; + }; + + component CompDerived : BaseMod::CompBase + { + attribute Color stripe; + provides pface pface_provider; + uses uface uface_user; + uses multiple umface umface_umuser; + publishes pubtype pubtype_publisher; + emits emittype emittype_emitter; + consumes eattype eattype_consumer; + }; +}; + +module HomeMod +{ + home CompBaseHome supports Supported::Iface manages BaseMod::CompBase + { + readonly attribute Color shade; + pface fetch_managed_ports (out uface recep); + factory base_init (in string id, in unsigned short uni_raw) + raises (Whatever); + finder bathroom_sink (); + }; + + home CompDerivedHome : CompBaseHome manages DerivedMod::CompDerived + { + exception ch_except {}; + void ch_op () raises (ch_except); + factory def_init (); + finder kitchen_sink (in string uid, in pkey key, in boolean all) + raises (ch_except); + }; +}; + diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc new file mode 100644 index 00000000000..5053203513f --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc @@ -0,0 +1,129 @@ +// $Id$ + +project(Cornucopia_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=CORNUCOPIA_STUB_Export \ + -Wb,stub_export_include=Cornucopia_stub_export.h \ + -Wb,skel_export_macro=CORNUCOPIA_SKEL_Export \ + -Wb,skel_export_include=Cornucopia_skel_export.h \ + -Wb,svnt_export_macro=CORNUCOPIA_SVNT_Export \ + -Wb,svnt_export_include=Cornucopia_svnt_export.h \ + -Wb,exec_export_macro=CORNUCOPIA_EXEC_Export \ + -Wb,exec_export_include=Cornucopia_exec_export.h \ + -Gex -Gxhst -Gxhsk -Gxhsv -Gxhex + + IDL_Files { + Cornucopia.idl >> Cornucopia_stub_export.h Cornucopia_skel_export.h Cornucopia_svnt_export.h Cornucopia_exec_export.h + } +} + +project(Cornucopia_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Cornucopia_idl_gen + idlflags += -Wb,export_macro=CORNUCOPIA_EXEC_Export \ + -Wb,export_include=Cornucopia_exec_export.h \ + -SS + + IDL_Files { + CornucopiaE.idl + } +} + +project(Cornucopia_stub) : ccm_stub { + after += Cornucopia_idl_gen + + sharedname = Cornucopia_stub + dynamicflags = CORNUCOPIA_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CornucopiaC.cpp + } + + Header_Files { + CornucopiaC.h + Cornucopia_stub_export.h + } + + Inline_Files { + CornucopiaC.inl + } +} + +project(Cornucopia_exec) : ciao_executor { + after += Cornucopia_lem_gen Cornucopia_stub + sharedname = Cornucopia_exec + libs += Cornucopia_stub + + dynamicflags = CORNUCOPIA_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CornucopiaEC.cpp + Cornucopia_exec.cpp + } + + Header_Files { + CornucopiaEC.h + Cornucopia_exec.h + Cornucopia_exec_export.h + } + + Inline_Files { + CornucopiaEC.inl + } +} + +project(Cornucopia_skel) : ccm_svnt { + after += Cornucopia_stub + sharedname = Cornucopia_skel + libs += Cornucopia_stub + + dynamicflags = CORNUCOPIA_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CornucopiaS.cpp + } + + Header_Files { + CornucopiaS.h + Cornucopia_skel_export.h + } + + Inline_Files { + CornucopiaS.inl + } +} + +project(Cornucopia_svnt) : ciao_servant { + after += Cornucopia_exec Cornucopia_skel Cornucopia_stub + sharedname = Cornucopia_svnt + libs += Cornucopia_exec \ + Cornucopia_skel \ + Cornucopia_stub + + dynamicflags = CORNUCOPIA_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Cornucopia_svnt.cpp + } + + Header_Files { + Cornucopia_svnt.h + Cornucopia_svnt_export.h + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/README b/modules/CIAO/tests/IDL_Test/Cornucopia/README new file mode 100644 index 00000000000..476030cd33d --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Cornucopia/README @@ -0,0 +1,30 @@ + +Cornucopia Code Generation Test +=============================== + +This test is for correct code generation, the various +artifacts compile and link, but there is no executable. + +The IDL file in this directory was put together to have +a wide variety of IDL3 constructs, and some features +not yet present in other CIAO tests and examples: + +- inheritance of operations and attributes in: + - facet interfaces + - supported interfaces + - homes + - components (attributes only) + +- inheritance of factory and finder operations + +- raises, getraises and setraises constructs + +- separate scoping for supported interfaces, + port interfaces, derived components, and homes + +- skeleton and servant generated files in separate + builds/libraries + + +Jeff Parsons +June 16, 2009 diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl new file mode 100644 index 00000000000..57dff3e58b0 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl @@ -0,0 +1,8 @@ +// $Id$ + +#include "IC_Foo.idl" +#include "IC_FooE.idl" + +component Bar +{ +}; diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc new file mode 100644 index 00000000000..f8ce62bac16 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc @@ -0,0 +1,105 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl IC_Bar" + +project(IC_Bar_idl_gen) : componentidldefaults { + after += IC_Foo_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=IC_BAR_STUB_Export \ + -Wb,stub_export_include=IC_Bar_stub_export.h \ + -Wb,skel_export_macro=IC_BAR_SVNT_Export \ + -Wb,skel_export_include=IC_Bar_svnt_export.h \ + -Wb,exec_export_macro=IC_BAR_EXEC_Export \ + -Wb,exec_export_include=IC_Bar_exec_export.h + + IDL_Files { + IC_Bar.idl + } +} + +project(IC_Bar_lem_gen) : ciaoidldefaults { + after += IC_Bar_idl_gen + custom_only = 1 + idlflags += -Wb,export_macro=IC_BAR_EXEC_Export \ + -Wb,export_include=IC_Bar_exec_export.h \ + -SS + + IDL_Files { + IC_BarE.idl + } +} + +project(IC_Bar_stub) : ccm_stub { + after += IC_Bar_idl_gen IC_Foo_lem_gen + libs += + + sharedname = IC_Bar_stub + dynamicflags = IC_BAR_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IC_BarC.cpp + } + + Header_Files { + IC_BarC.h + IC_Bar_stub_export.h + } + + Inline_Files { + IC_BarC.inl + } +} + +project(IC_Bar_exec) : ciao_executor { + sharedname = IC_Bar_exec + after += IC_Bar_lem_gen IC_Bar_stub + libs += IC_Bar_stub + + dynamicflags = IC_BAR_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IC_BarEC.cpp + } + + Header_Files { + IC_BarEC.h + IC_Bar_exec_export.h + } + + Inline_Files { + IC_BarEC.inl + } +} + +project(IC_Bar_svnt) : ciao_servant { + sharedname = IC_Bar_svnt + after += IC_Bar_exec IC_Foo_exec IC_Bar_stub IC_Foo_svnt IC_Foo_stub + libs += IC_Bar_exec IC_Foo_exec IC_Bar_stub IC_Foo_svnt IC_Foo_stub + + dynamicflags = IC_BAR_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IC_BarS.cpp + IC_Bar_svnt.cpp + } + + Header_Files { + IC_BarS.h + IC_Bar_svnt.h + IC_Bar_svnt_export.h + } + + Inline_Files { + IC_BarS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl new file mode 100644 index 00000000000..13d2785b3d2 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl @@ -0,0 +1,12 @@ +// $Id$ +#ifndef IC_Foo_IDL +#define IC_Foo_IDL + +#include <Components.idl> + +component Foo +{ +}; + + +#endif diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc new file mode 100644 index 00000000000..7ab7e183409 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc @@ -0,0 +1,104 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl IC_Foo" + +project(IC_Foo_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=IC_FOO_STUB_Export \ + -Wb,stub_export_include=IC_Foo_stub_export.h \ + -Wb,skel_export_macro=IC_FOO_SVNT_Export \ + -Wb,skel_export_include=IC_Foo_svnt_export.h \ + -Wb,exec_export_macro=IC_FOO_EXEC_Export \ + -Wb,exec_export_include=IC_Foo_exec_export.h + + IDL_Files { + IC_Foo.idl + } +} + +project(IC_Foo_lem_gen) : ciaoidldefaults { + after += IC_Foo_idl_gen + custom_only = 1 + idlflags += -Wb,export_macro=IC_FOO_EXEC_Export \ + -Wb,export_include=IC_Foo_exec_export.h \ + -SS + + IDL_Files { + IC_FooE.idl + } +} + +project(IC_Foo_stub) : ccm_stub { + after += IC_Foo_idl_gen + libs += + + sharedname = IC_Foo_stub + dynamicflags = IC_FOO_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IC_FooC.cpp + } + + Header_Files { + IC_FooC.h + IC_Foo_stub_export.h + } + + Inline_Files { + IC_FooC.inl + } +} + +project(IC_Foo_exec) : ciao_executor { + sharedname = IC_Foo_exec + after += IC_Foo_lem_gen IC_Foo_stub + libs += IC_Foo_stub + + dynamicflags = IC_FOO_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IC_FooEC.cpp + } + + Header_Files { + IC_FooEC.h + IC_Foo_exec_export.h + } + + Inline_Files { + IC_FooEC.inl + } +} + +project(IC_Foo_svnt) : ciao_servant { + sharedname = IC_Foo_svnt + after += IC_Foo_exec + libs += IC_Foo_stub IC_Foo_exec + + dynamicflags = IC_FOO_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IC_FooS.cpp + IC_Foo_svnt.cpp + } + + Header_Files { + IC_FooS.h + IC_Foo_svnt.h + IC_Foo_svnt_export.h + } + + Inline_Files { + IC_FooS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl new file mode 100644 index 00000000000..94804cd867b --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl @@ -0,0 +1,9 @@ +// $Id$ + +#include <Components.idl> +#include "IhC_Foo.idl" +#include "IhC_FooE.idl" + +component Bar : Foo +{ +}; diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc new file mode 100644 index 00000000000..2e73abdfef6 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc @@ -0,0 +1,137 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p IhC_Foo IhC_Bar" + +project(IhC_Foo_IhC_Bar_idl_gen) : componentidldefaults { + requires += dummy_label + custom_only = 1 + after += IhC_Foo_idl_gen + idlflags += -Wb,stub_export_macro=IHC_BAR_STUB_Export \ + -Wb,stub_export_include=IhC_Bar_stub_export.h \ + -Wb,skel_export_macro=IHC_BAR_SVNT_Export \ + -Wb,skel_export_include=IhC_Bar_svnt_export.h \ + -Wb,exec_export_macro=IHC_BAR_EXEC_Export \ + -Wb,exec_export_include=IhC_Bar_exec_export.h + + IDL_Files { + IhC_Bar.idl + } +} + +project(IhC_Foo_IhC_Bar_lem_gen) : ciaoidldefaults { + requires += dummy_label + after += IhC_Foo_IhC_Bar_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=IHC_BAR_LEM_STUB_Export \ + -Wb,stub_export_include=IhC_Bar_lem_stub_export.h \ + -SS -Gxhst + + IDL_Files { + IhC_BarE.idl + } +} + +project(IhC_Foo_IhC_Bar_lem_stub) : ccm_svnt { + requires += dummy_label + after += IhC_Foo_IhC_Bar_lem_gen IhC_Foo_IhC_Bar_stub IhC_Foo_stub + libs += IhC_Foo_stub IhC_Bar_stub + + sharedname = IhC_Bar_lem_stub + dynamicflags = IHC_BAR_LEM_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_BarEC.cpp + } + + Header_Files { + IhC_BarEC.h + IhC_Bar_lem_stub_export.h + } + + Inline_Files { + IhC_BarEC.inl + } +} + +project(IhC_Foo_IhC_Bar_stub) : ccm_stub { + requires += dummy_label + after += IhC_Foo_IhC_Bar_idl_gen IhC_Foo_stub + libs += IhC_Foo_stub + + sharedname = IhC_Bar_stub + dynamicflags = IHC_BAR_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_BarC.cpp + } + + Header_Files { + IhC_BarC.h + IhC_Bar_stub_export.h + } + + Inline_Files { + IhC_BarC.inl + } +} + +project(IhC_Foo_IhC_Bar_exec) : ciao_executor { + requires += dummy_label + after += IhC_Foo_IhC_Bar_lem_stub IhC_Foo_IhC_Bar_stub + sharedname = IhC_Bar_exec + libs += IhC_Bar_stub IhC_Bar_lem_stub IhC_Foo_stub + + dynamicflags = IHC_BAR_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_Bar_exec.cpp + } + + Header_Files { + IhC_Bar_exec.h + IhC_Bar_exec_export.h + } + + Inline_Files { + } +} + + +project(IhC_Foo_IhC_Bar_svnt) : ciao_servant { + requires += dummy_label + after += IhC_Foo_skel IhC_Foo_IhC_Bar_lem_stub + sharedname = IhC_Bar_svnt + libs += IhC_Bar_stub IhC_Bar_lem_stub \ + IhC_Foo_skel \ + IhC_Foo_stub + + dynamicflags = IHC_BAR_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_BarS.cpp + IhC_Bar_svnt.cpp + } + + Header_Files { + IhC_BarS.h + IhC_Bar_svnt.h + IhC_Bar_svnt_export.h + } + + Inline_Files { + IhC_BarS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl new file mode 100644 index 00000000000..34a547ccde9 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl @@ -0,0 +1,13 @@ +// $Id$ + +#include <Components.idl> + +interface foo_intf +{ +}; + + +component Foo +{ + provides foo_intf foo_port; +}; diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc new file mode 100644 index 00000000000..133b5352e00 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc @@ -0,0 +1,132 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl IhC_Foo" + +project(IhC_Foo_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=IHC_FOO_STUB_Export \ + -Wb,stub_export_include=IhC_Foo_stub_export.h \ + -Wb,skel_export_macro=IHC_FOO_SVNT_Export \ + -Wb,skel_export_include=IhC_Foo_svnt_export.h \ + -Wb,exec_export_macro=IHC_FOO_EXEC_Export \ + -Wb,exec_export_include=IhC_Foo_exec_export.h -Gex + + IDL_Files { + IhC_Foo.idl + } +} + +project(IhC_Foo_lem_gen) : ciaoidldefaults { + after += IhC_Foo_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=IHC_FOO_LEM_STUB_Export \ + -Wb,stub_export_include=IhC_Foo_lem_stub_export.h \ + -SS -Gxhst + + IDL_Files { + IhC_FooE.idl + } +} + +project(IhC_Foo_lem_stub) : ccm_svnt { + after += IhC_Foo_lem_gen IhC_Foo_stub + libs += IhC_Foo_stub + + + sharedname = IhC_Foo_lem_stub + dynamicflags = IHC_FOO_LEM_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_FooEC.cpp + } + + Header_Files { + IhC_FooEC.h + IhC_Foo_lem_stub_export.h + } + + Inline_Files { + IhC_FooEC.inl + } +} + +project(IhC_Foo_stub) : ccm_stub { + after += IhC_Foo_idl_gen + libs += + + + sharedname = IhC_Foo_stub + dynamicflags = IHC_FOO_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_FooC.cpp + } + + Header_Files { + IhC_FooC.h + IhC_Foo_stub_export.h + } + + Inline_Files { + IhC_FooC.inl + } +} + +project(IhC_Foo_exec) : ciao_executor { + after += IhC_Foo_lem_stub IhC_Foo_stub + sharedname = IhC_Foo_exec + libs += IhC_Foo_stub IhC_Foo_lem_stub + + + dynamicflags = IHC_FOO_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_Foo_exec.cpp + } + + Header_Files { + IhC_Foo_exec.h + IhC_Foo_exec_export.h + } + + Inline_Files { + } +} + + +project(IhC_Foo_svnt) : ciao_servant { + after += IhC_Foo_lem_stub + sharedname = IhC_Foo_svnt + libs += IhC_Foo_stub IhC_Foo_lem_stub + + + dynamicflags = IHC_FOO_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + IhC_FooS.cpp + IhC_Foo_svnt.cpp + } + + Header_Files { + IhC_FooS.h + IhC_Foo_svnt.h + IhC_Foo_svnt_export.h + } + + Inline_Files { + IhC_FooS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl b/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl new file mode 100644 index 00000000000..d78b200cddd --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl @@ -0,0 +1,110 @@ +// $Id$ +/** + * @file Keyword_Clash.idl + * @author Jeff Parsons <j.parsons@vanderbilt.edu> + * + * Tests handling of C++ keywords and escaped identifiers (IDL + * keywords) in generating CIAO servant code and executor IDL. + */ + +#ifndef KEYWORD_CLASH_IDL +#define KEYWORD_CLASH_IDL + +#include "Components.idl" + +module _interface +{ + interface _attribute + { + exception _inout {}; + }; +}; + +module static +{ + module _readonly + { + module protected + { + interface virtual + { + }; + + interface _port + { + }; + + interface _alias + { + }; + + interface _mirrorport + { + }; + + interface _porttype + { + }; + + interface _connector + { + }; + + eventtype _eventtype + { + private virtual _public; + }; + }; + }; +}; + +eventtype _eventtype +{ + public string _factory; + private string friend; + public string _wstring; +}; + +interface _oneway {}; + +module _component +{ + component _out supports static::_readonly::protected::virtual + { + provides _interface::_attribute _local; + provides _oneway else; + provides static::_readonly::protected::virtual while; + + attribute long _abstract; + + uses multiple _interface::_attribute if; + uses multiple _oneway mutable; + uses multiple static::_readonly::protected::virtual register; + + uses _interface::_attribute _union; + uses _oneway _struct; + uses static::_readonly::protected::virtual volatile; + + publishes _eventtype _object; + publishes static::_readonly::protected::_eventtype do; + + consumes _eventtype _const; + consumes static::_readonly::protected::_eventtype const_cast; + + emits _eventtype class; + emits static::_readonly::protected::_eventtype delete; + }; + + home new manages _out + { + static::_readonly::protected::virtual + catch ( + inout static::_readonly::protected::_eventtype try) + raises (_interface::_attribute::_inout); + + finder continue (in _interface::_attribute _inout); + }; +}; + +#endif /* KEYWORD_CLASH_IDL */ + diff --git a/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc b/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc new file mode 100644 index 00000000000..5778561bf53 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc @@ -0,0 +1,109 @@ +// -*- MPC -*- +// $Id$ + +project(Keyword_Clash_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=KEYWORD_CLASH_STUB_Export \ + -Wb,stub_export_include=Keyword_Clash_stub_export.h \ + -Wb,skel_export_macro=KEYWORD_CLASH_SVNT_Export \ + -Wb,skel_export_include=Keyword_Clash_svnt_export.h \ + -Wb,exec_export_macro=KEYWORD_CLASH_EXEC_Export \ + -Wb,exec_export_include=Keyword_Clash_exec_export.h \ + -Gex -Gxhst -Gxhsk -Gxhex + + IDL_Files { + Keyword_Clash.idl + } +} + +project(Keyword_Clash_lem_gen) : ciaoidldefaults { + after += Keyword_Clash_idl_gen + custom_only = 1 + idlflags += -Wb,export_macro=KEYWORD_CLASH_EXEC_Export \ + -Wb,export_include=Keyword_Clash_exec_export.h \ + -SS + + IDL_Files { + Keyword_ClashE.idl + } +} + +project(Keyword_Clash_stub) : ccm_stub { + avoids += mfc + after += Keyword_Clash_idl_gen + sharedname = Keyword_Clash_stub + dynamicflags = KEYWORD_CLASH_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Keyword_ClashC.cpp + } + + Header_Files { + Keyword_ClashC.h + Keyword_Clash_stub_export.h + } + + Inline_Files { + Keyword_ClashC.inl + } +} + +project(Keyword_Clash_exec) : ciao_executor { + avoids += mfc + after += Keyword_Clash_lem_gen Keyword_Clash_stub + sharedname = Keyword_Clash_exec + libs += Keyword_Clash_stub + + dynamicflags = KEYWORD_CLASH_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Keyword_ClashEC.cpp + Keyword_Clash_exec.cpp + } + + Header_Files { + Keyword_ClashEC.h + Keyword_Clash_exec.h + Keyword_Clash_exec_export.h + } + + Inline_Files { + Keyword_ClashEC.inl + } +} + +project(Keyword_Clash_svnt) : ciao_servant { + avoids += mfc + after += Keyword_Clash_exec + sharedname = Keyword_Clash_svnt + libs += Keyword_Clash_exec \ + Keyword_Clash_stub + + dynamicflags = KEYWORD_CLASH_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Keyword_ClashS.cpp + Keyword_Clash_svnt.cpp + } + + Header_Files { + Keyword_ClashS.h + Keyword_Clash_svnt.h + Keyword_Clash_svnt_export.h + } + + Inline_Files { + Keyword_ClashS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl new file mode 100644 index 00000000000..28248068aff --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl @@ -0,0 +1,8 @@ + +// $Id$ + +#include <Components.idl> + +component Foo +{ +}; diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc new file mode 100644 index 00000000000..a5eeaa65369 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc @@ -0,0 +1,128 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl Lem_Export" + +project(Lem_Export_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=LEM_EXPORT_STUB_Export \ + -Wb,stub_export_include=Lem_Export_stub_export.h \ + -Wb,skel_export_macro=LEM_EXPORT_SVNT_Export \ + -Wb,skel_export_include=Lem_Export_svnt_export.h \ + -Wb,exec_export_macro=LEM_EXPORT_EXEC_Export \ + -Wb,exec_export_include=Lem_Export_exec_export.h + + IDL_Files { + Lem_Export.idl + } +} + +project(Lem_Export_lem_gen) : ciaoidldefaults { + after += Lem_Export_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=LEM_EXPORT_LEM_STUB_Export \ + -Wb,stub_export_include=Lem_Export_lem_stub_export.h \ + -SS -Gxhst + + IDL_Files { + Lem_ExportE.idl + } +} + +project(Lem_Export_stub) : ccm_stub { + after += Lem_Export_idl_gen + libs += + + sharedname = Lem_Export_stub + dynamicflags = LEM_EXPORT_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Lem_ExportC.cpp + } + + Header_Files { + Lem_ExportC.h + Lem_Export_stub_export.h + } + + Inline_Files { + Lem_ExportC.inl + } +} + +project(Lem_Export_lem_stub) : ccm_svnt { + after += Lem_Export_lem_gen + libs += + + sharedname = Lem_Export_lem_stub + dynamicflags = LEM_EXPORT_LEM_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Lem_ExportEC.cpp + } + + Header_Files { + Lem_ExportEC.h + Lem_Export_lem_stub_export.h + } + + Inline_Files { + Lem_ExportEC.inl + } +} + +project(Lem_Export_exec) : ciao_executor { + after += Lem_Export_lem_stub Lem_Export_stub + sharedname = Lem_Export_exec + libs += Lem_Export_stub Lem_Export_lem_stub + + dynamicflags = LEM_EXPORT_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Lem_Export_exec.cpp + } + + Header_Files { + Lem_Export_exec.h + Lem_Export_exec_export.h + } + + Inline_Files { + } +} + + +project(Lem_Export_svnt) : ciao_servant { + after += Lem_Export_lem_stub Lem_Export_stub + sharedname = Lem_Export_svnt + libs += Lem_Export_stub Lem_Export_lem_stub + + dynamicflags = LEM_EXPORT_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Lem_ExportS.cpp + Lem_Export_svnt.cpp + } + + Header_Files { + Lem_ExportS.h + Lem_Export_svnt.h + Lem_Export_svnt_export.h + } + + Inline_Files { + Lem_ExportS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp new file mode 100644 index 00000000000..d9d5eaf0928 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp @@ -0,0 +1,106 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.6.9 **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:1278 + +#include "Lem_Export_exec.h" + +namespace CIAO_Foo_Impl +{ + //============================================================ + // Component Executor Implementation Class: Foo_exec_i + //============================================================ + + Foo_exec_i::Foo_exec_i (void) + { + } + + Foo_exec_i::~Foo_exec_i (void) + { + } + + // Supported operations and attributes. + + // Component attributes. + + // Port operations. + + // Operations from Components::SessionComponent. + + void + Foo_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Foo_Context::_narrow (ctx); + + if ( ::CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Foo_exec_i::configuration_complete (void) + { + /* Your code here. */ + } + + void + Foo_exec_i::ccm_activate (void) + { + /* Your code here. */ + } + + void + Foo_exec_i::ccm_passivate (void) + { + /* Your code here. */ + } + + void + Foo_exec_i::ccm_remove (void) + { + /* Your code here. */ + } + + extern "C" LEM_EXPORT_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Foo_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN ( + retval, + Foo_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h new file mode 100644 index 00000000000..a60906d3aa5 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h @@ -0,0 +1,84 @@ +// -*- C++ -*- +// +// $Id$ + +// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.6.9 **** +// TAO and the TAO IDL Compiler have been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// and +// Distributed Object Computing Laboratory +// University of California at Irvine +// Irvine, CA +// USA +// http://doc.ece.uci.edu/ +// and +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about TAO is available at: +// http://www.cs.wustl.edu/~schmidt/TAO.html + +// TAO_IDL - Generated from +// be/be_codegen.cpp:1217 + +#ifndef CIAO_LEM_EXPORT_EXEC_H_ +#define CIAO_LEM_EXPORT_EXEC_H_ + +#include /**/ "ace/pre.h" + +#include "Lem_ExportEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include /**/ "Lem_Export_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Foo_Impl +{ + class LEM_EXPORT_EXEC_Export Foo_exec_i + : public virtual Foo_Exec, + public virtual ::CORBA::LocalObject + { + public: + Foo_exec_i (void); + virtual ~Foo_exec_i (void); + + // Supported operations and attributes. + + // Component attributes. + + // Port operations. + + // Operations from Components::SessionComponent. + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (void); + + virtual void ccm_activate (void); + virtual void ccm_passivate (void); + virtual void ccm_remove (void); + + private: + ::CCM_Foo_Context_var context_; + }; + + extern "C" LEM_EXPORT_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Foo_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* ifndef */ + diff --git a/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl new file mode 100644 index 00000000000..b56142dbf2d --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl @@ -0,0 +1,14 @@ +// $Id$ + +#include <Components.idl> +#include "tao/StringSeq.pidl" + +interface foo_intf +{ + typedef sequence<string> MyStringSeq; +}; + +component Foo +{ + provides foo_intf foo_port; +}; diff --git a/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc new file mode 100644 index 00000000000..c790417197e --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc @@ -0,0 +1,131 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl PIDLInclude" + +project(PIDLInclude_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=PIDLINCLUDE_STUB_Export \ + -Wb,stub_export_include=PIDLInclude_stub_export.h \ + -Wb,skel_export_macro=PIDLINCLUDE_SVNT_Export \ + -Wb,skel_export_include=PIDLInclude_svnt_export.h \ + -Wb,exec_export_macro=PIDLINCLUDE_EXEC_Export \ + -Wb,exec_export_include=PIDLInclude_exec_export.h -Gex + + IDL_Files { + PIDLInclude.idl + } +} + +project(PIDLInclude_lem_gen) : ciaoidldefaults { + after += PIDLInclude_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=PIDLINCLUDE_LEM_STUB_Export \ + -Wb,stub_export_include=PIDLInclude_lem_stub_export.h \ + -SS -Gxhst + + IDL_Files { + PIDLIncludeE.idl + } +} + +project(PIDLInclude_lem_stub) : ccm_svnt { + after += PIDLInclude_lem_gen PIDLInclude_stub + libs += PIDLInclude_stub + + sharedname = PIDLInclude_lem_stub + dynamicflags = PIDLINCLUDE_LEM_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + PIDLIncludeEC.cpp + } + + Header_Files { + PIDLIncludeEC.h + PIDLInclude_lem_stub_export.h + } + + Inline_Files { + PIDLIncludeEC.inl + } +} + +project(PIDLInclude_stub) : ccm_stub { + after += PIDLInclude_idl_gen + libs += + + + sharedname = PIDLInclude_stub + dynamicflags = PIDLINCLUDE_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + PIDLIncludeC.cpp + } + + Header_Files { + PIDLIncludeC.h + PIDLInclude_stub_export.h + } + + Inline_Files { + PIDLIncludeC.inl + } +} + +project(PIDLInclude_exec) : ciao_executor { + after += PIDLInclude_lem_stub PIDLInclude_stub + sharedname = PIDLInclude_exec + libs += PIDLInclude_stub PIDLInclude_lem_stub + + + dynamicflags = PIDLINCLUDE_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + PIDLInclude_exec.cpp + } + + Header_Files { + PIDLInclude_exec.h + PIDLInclude_exec_export.h + } + + Inline_Files { + } +} + + +project(PIDLInclude_svnt) : ciao_servant { + after += PIDLInclude_lem_stub + sharedname = PIDLInclude_svnt + libs += PIDLInclude_stub PIDLInclude_lem_stub + + + dynamicflags = PIDLINCLUDE_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + PIDLIncludeS.cpp + PIDLInclude_svnt.cpp + } + + Header_Files { + PIDLIncludeS.h + PIDLInclude_svnt.h + PIDLInclude_svnt_export.h + } + + Inline_Files { + PIDLIncludeS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl new file mode 100644 index 00000000000..4e686a47fab --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl @@ -0,0 +1,54 @@ +// $Id$ +//============================================================================= +/** + * @file Basic.idl + * + * Definition of events, and common interfaces used in the BasicSP module. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + * Jeff Parsons <j.parsons@vanderbilt.edu> + */ +//============================================================================= + +#ifndef CIAO_BASIC_IDL +#define CIAO_BASIC_IDL + +#include <Components.idl> + +module Extra +{ + exception NoReason {}; + exception NoRhyme {}; + + interface Superfluous + { + attribute string useless_attr; + long superfluous_op (in string empty_arg) + raises (NoReason); + }; + + interface Supernumerary + { + void supernumerary_op (out string dummy_arg) + raises (NoRhyme, NoReason); + }; +}; + +module Basic +{ + interface ReadData : Extra::Superfluous + { + string get_data (); + }; + + interface AnalyzeData + { + void perform_analysis (inout string data); + attribute boolean fine_tooth_comb; + }; + + eventtype TimeOut {}; + eventtype DataAvailable {}; +}; + +#endif /* CIAO_BASIC_IDL */ diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc new file mode 100644 index 00000000000..4e70cbe8ac3 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc @@ -0,0 +1,82 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Basic" + +project(Reused_Facet_Interface_Basic_idl_gen) : ciaoidldefaults, anytypecode { + custom_only = 1 + idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \ + -Wb,stub_export_include=Basic_stub_export.h \ + -Wb,skel_export_macro=BASIC_SKEL_Export \ + -Wb,skel_export_include=Basic_skel_export.h \ + -Gxhst -Gxhsk -Glem + + IDL_Files { + Basic.idl + } +} + +project(Reused_Facet_Interface_Basic_lem_gen) : ciaoidldefaults, anytypecode { + custom_only = 1 + after += Reused_Facet_Interface_Basic_idl_gen + idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \ + -Wb,stub_export_include=Basic_stub_export.h \ + -Wb,skel_export_macro=BASIC_SKEL_Export \ + -Wb,skel_export_include=Basic_skel_export.h \ + -Gxhst + + IDL_Files { + BasicE.idl + } +} + +project(Reused_Facet_Interface_Basic_stub) : ccm_stub { + after += Reused_Facet_Interface_Basic_lem_gen + libs += + + sharedname = Basic_stub + dynamicflags = BASIC_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + BasicC.cpp + BasicEC.cpp + } + + Header_Files { + BasicC.h + Basic_stub_export.h + } + + Inline_Files { + BasicC.inl + } +} + + +project(Reused_Facet_Interface_Basic_skel) : ciao_executor { + after += Reused_Facet_Interface_Basic_stub + sharedname = Basic_skel + libs += Basic_stub + + + dynamicflags = BASIC_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + BasicS.cpp + } + + Header_Files { + BasicS.h + Basic_skel_export.h + } + + Inline_Files { + BasicS.inl + } +} + + diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl new file mode 100644 index 00000000000..b55848abaa8 --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl @@ -0,0 +1,47 @@ +//$Id$ + +#include "Basic.idl" +#include "BasicE.idl" + +module Basic +{ + component Base supports Extra::Supernumerary, Extra::Superfluous + { + provides ReadData data_read; + attribute boolean is_not_necessary; + }; + + component CodeGen : Base + { + provides ReadData data_out; + uses ReadData data_in; + publishes DataAvailable out_avail; + consumes DataAvailable in_avail; + provides AnalyzeData data_crunch; + + readonly attribute boolean is_necessary; + }; + + home BaseHome supports Extra::Supernumerary manages Base + { + void base_do_nothing (); + + factory create_no_base (in long fake_id) + raises (Extra::NoRhyme); + + finder find_no_base (); + + readonly attribute boolean is_useful; + }; + + home CodeGenHome : BaseHome manages CodeGen + { + factory create_no_derived (); + + finder find_no_derived (); + + attribute boolean is_not_useful; + + string do_nothing (); + }; +}; diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README new file mode 100644 index 00000000000..b25ef8cfd1a --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README @@ -0,0 +1,12 @@ + +Reused Facet Interface Test +=========================== + +This test uses IDL that contains a variety of port, attribute, +operation, factory and finder definitions, some inherited. The +main focus of the test, however, is the reuse of the same +interface for two different facet ports. The facet servant class, +and facet executor IDL interface must be generated only once. + +Jeff Parsons +June 16, 2009
\ No newline at end of file diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc new file mode 100644 index 00000000000..fdb07b403ca --- /dev/null +++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc @@ -0,0 +1,112 @@ +// $Id$ +// + +project(Reused_Facet_Interface_idl_gen) : componentidldefaults { + after += Reused_Facet_Interface_Basic_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export \ + -Wb,stub_export_include=CodeGen_stub_export.h \ + -Wb,skel_export_macro=CODEGEN_SVNT_Export \ + -Wb,skel_export_include=CodeGen_svnt_export.h \ + -Wb,exec_export_macro=CODEGEN_EXEC_Export \ + -Wb,exec_export_include=CodeGen_exec_export.h \ + -Gex + + IDL_Files { + CodeGen.idl + } +} + +project(Reused_Facet_Interface_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Reused_Facet_Interface_idl_gen + idlflags += -Wb,export_macro=CODEGEN_EXEC_Export \ + -Wb,export_include=CodeGen_exec_export.h \ + -SS + + IDL_Files { + CodeGenE.idl + } +} + +project(Reused_Facet_Interface_stub) : ccm_stub { + after += Reused_Facet_Interface_idl_gen Reused_Facet_Interface_Basic_stub + libs += Basic_stub + + sharedname = CodeGen_stub + dynamicflags = CODEGEN_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CodeGenC.cpp + } + + Header_Files { + CodeGenC.h + CodeGen_stub_export.h + } + + Inline_Files { + CodeGenC.inl + } +} + +project(Reused_Facet_Interface_exec) : ciao_executor { + after += Reused_Facet_Interface_lem_gen Reused_Facet_Interface_stub + sharedname = CodeGen_exec + libs += CodeGen_stub Basic_stub + + dynamicflags = CODEGEN_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CodeGenEC.cpp + CodeGen_exec.cpp + } + + Header_Files { + CodeGenEC.h + CodeGen_exec.h + CodeGen_exec_export.h + } + + Inline_Files { + CodeGenEC.inl + } +} + + +project(Reused_Facet_Interface_svnt) : ciao_servant { + after += Reused_Facet_Interface_Basic_skel Reused_Facet_Interface_exec + sharedname = CodeGen_svnt + libs += CodeGen_exec \ + CodeGen_stub \ + Basic_skel \ + Basic_stub + + dynamicflags = CODEGEN_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + CodeGenS.cpp + CodeGen_svnt.cpp + } + + Header_Files { + CodeGenS.h + CodeGen_svnt.h + CodeGen_svnt_export.h + } + + Inline_Files { + CodeGenS.inl + } +} + + diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl new file mode 100644 index 00000000000..e82cb0066a8 --- /dev/null +++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl @@ -0,0 +1,17 @@ +//$Id$: + +#ifndef CIAO_MINIMUM_IDL +#define CIAO_MINIMUM_IDL + +#include <Components.idl> + +module Minimum +{ + interface ReadMessage + { + void foo (); + }; + +}; + +#endif /* CIAO_MINIMUM_IDL */ diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc new file mode 100644 index 00000000000..afa77118760 --- /dev/null +++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc @@ -0,0 +1,65 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Minimum_Base" + +project(Minimum_Base_idl_gen) : ciaoidldefaults, anytypecode, ccm { + custom_only = 1 + idlflags += -Wb,stub_export_macro=MINIMUM_BASE_STUB_Export \ + -Wb,stub_export_include=Minimum_Base_stub_export.h \ + -Wb,skel_export_macro=MINIMUM_BASE_SKEL_Export \ + -Wb,skel_export_include=Minimum_Base_skel_export.h + + IDL_Files { + Minimum_Base.idl + } +} + +project(Minimum_Base_stub) : ccm_stub { + after += Minimum_Base_idl_gen + libs += + + sharedname = Minimum_Base_stub + dynamicflags = MINIMUM_BASE_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Minimum_BaseC.cpp + } + + Header_Files { + Minimum_BaseC.h + Minimum_Base_stub_export.h + } + + Inline_Files { + Minimum_BaseC.inl + } +} + +project(Minimum_Base_skel) : ccm_stub, portableserver { + after += Minimum_Base_stub + sharedname = Minimum_Base_skel + libs += Minimum_Base_stub + + + dynamicflags = MINIMUM_BASE_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Minimum_BaseS.cpp + } + + Header_Files { + Minimum_BaseS.h + Minimum_Base_skel_export.h + } + + Inline_Files { + Minimum_BaseS.inl + } +} + + diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h new file mode 100644 index 00000000000..48d7cd0979b --- /dev/null +++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl MINIMUM_BASE_SVNT +// ------------------------------ +#ifndef MINIMUM_BASE_SKEL_EXPORT_H +#define MINIMUM_BASE_SKEL_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (MINIMUM_BASE_SKEL_HAS_DLL) +# define MINIMUM_BASE_SKEL_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && MINIMUM_BASE_SKEL_HAS_DLL */ + +#if !defined (MINIMUM_BASE_SKEL_HAS_DLL) +# define MINIMUM_BASE_SKEL_HAS_DLL 1 +#endif /* ! MINIMUM_BASE_SKEL_HAS_DLL */ + +#if defined (MINIMUM_BASE_SKEL_HAS_DLL) && (MINIMUM_BASE_SKEL_HAS_DLL == 1) +# if defined (MINIMUM_BASE_SKEL_BUILD_DLL) +# define MINIMUM_BASE_SKEL_Export ACE_Proper_Export_Flag +# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* MINIMUM_BASE_SKEL_BUILD_DLL */ +# define MINIMUM_BASE_SKEL_Export ACE_Proper_Import_Flag +# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* MINIMUM_BASE_SKEL_BUILD_DLL */ +#else /* MINIMUM_BASE_SKEL_HAS_DLL == 1 */ +# define MINIMUM_BASE_SKEL_Export +# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) +# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* MINIMUM_BASE_SKEL_HAS_DLL == 1 */ + +// Set MINIMUM_BASE_SKEL_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (MINIMUM_BASE_SKEL_NTRACE) +# if (ACE_NTRACE == 1) +# define MINIMUM_BASE_SKEL_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define MINIMUM_BASE_SKEL_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !MINIMUM_BASE_SKEL_NTRACE */ + +#if (MINIMUM_BASE_SKEL_NTRACE == 1) +# define MINIMUM_BASE_SKEL_TRACE(X) +#else /* (MINIMUM_BASE_SKEL_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define MINIMUM_BASE_SKEL_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (MINIMUM_BASE_SKEL_NTRACE == 1) */ + +#endif /* MINIMUM_BASE_SKEL_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h new file mode 100644 index 00000000000..99c1d64369b --- /dev/null +++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl MINIMUM_BASE_STUB +// ------------------------------ +#ifndef MINIMUM_BASE_STUB_EXPORT_H +#define MINIMUM_BASE_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (MINIMUM_BASE_STUB_HAS_DLL) +# define MINIMUM_BASE_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && MINIMUM_BASE_STUB_HAS_DLL */ + +#if !defined (MINIMUM_BASE_STUB_HAS_DLL) +# define MINIMUM_BASE_STUB_HAS_DLL 1 +#endif /* ! MINIMUM_BASE_STUB_HAS_DLL */ + +#if defined (MINIMUM_BASE_STUB_HAS_DLL) && (MINIMUM_BASE_STUB_HAS_DLL == 1) +# if defined (MINIMUM_BASE_STUB_BUILD_DLL) +# define MINIMUM_BASE_STUB_Export ACE_Proper_Export_Flag +# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* MINIMUM_BASE_STUB_BUILD_DLL */ +# define MINIMUM_BASE_STUB_Export ACE_Proper_Import_Flag +# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* MINIMUM_BASE_STUB_BUILD_DLL */ +#else /* MINIMUM_BASE_STUB_HAS_DLL == 1 */ +# define MINIMUM_BASE_STUB_Export +# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) +# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* MINIMUM_BASE_STUB_HAS_DLL == 1 */ + +// Set MINIMUM_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (MINIMUM_BASE_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define MINIMUM_BASE_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define MINIMUM_BASE_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !MINIMUM_BASE_STUB_NTRACE */ + +#if (MINIMUM_BASE_STUB_NTRACE == 1) +# define MINIMUM_BASE_STUB_TRACE(X) +#else /* (MINIMUM_BASE_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define MINIMUM_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (MINIMUM_BASE_STUB_NTRACE == 1) */ + +#endif /* MINIMUM_BASE_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver.idl b/modules/CIAO/tests/Minimum/Receiver/Receiver.idl new file mode 100644 index 00000000000..219baec17d0 --- /dev/null +++ b/modules/CIAO/tests/Minimum/Receiver/Receiver.idl @@ -0,0 +1,18 @@ +//$Id$: + +#ifndef RECEIVER_IDL +#define RECEIVER_IDL + +#include "../Minimum_Base/Minimum_Base.idl" + +module Minimum +{ + component Receiver + { + }; + + home ReceiverHome manages Receiver + { + }; +}; +#endif /*RECEIVER_IDL*/ diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc b/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc new file mode 100644 index 00000000000..0bd74e3971f --- /dev/null +++ b/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc @@ -0,0 +1,134 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Minimum_Base Receiver" + +project(Minimum_Base_Receiver_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \ + -Wb,stub_export_include=Receiver_stub_export.h \ + -Wb,skel_export_macro=RECEIVER_SVNT_Export \ + -Wb,skel_export_include=Receiver_svnt_export.h \ + -Wb,exec_export_macro=RECEIVER_EXEC_Export \ + -Wb,exec_export_include=Receiver_exec_export.h + + IDL_Files { + Receiver.idl + } +} + +project(Minimum_Base_Receiver_lem_gen) : ciaoidldefaults { + after += Minimum_Base_Receiver_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=RECEIVER_LEM_STUB_Export \ + -Wb,stub_export_include=Receiver_lem_stub_export.h \ + -SS -Gxhst + + IDL_Files { + ReceiverE.idl + } +} + +project(Minimum_Base_Receiver_lem_stub) : ccm_svnt { + after += Minimum_Base_Receiver_lem_gen Minimum_Base_Receiver_stub Minimum_Base_stub + libs += Minimum_Base_stub Receiver_stub + libpaths += ../Minimum_Base + + sharedname = Receiver_lem_stub + dynamicflags = RECEIVER_LEM_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverEC.cpp + } + + Header_Files { + ReceiverEC.h + Receiver_lem_stub_export.h + } + + Inline_Files { + ReceiverEC.inl + } +} + +project(Minimum_Base_Receiver_stub) : ccm_stub { + after += Minimum_Base_Receiver_idl_gen Minimum_Base_stub + libs += Minimum_Base_stub + libpaths += ../Minimum_Base + + sharedname = Receiver_stub + dynamicflags = RECEIVER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverC.cpp + } + + Header_Files { + ReceiverC.h + Receiver_stub_export.h + } + + Inline_Files { + ReceiverC.inl + } +} + +project(Minimum_Base_Receiver_exec) : ciao_executor { + after += Minimum_Base_Receiver_lem_stub Minimum_Base_Receiver_stub + sharedname = Receiver_exec + libs += Receiver_stub Receiver_lem_stub Minimum_Base_stub + libpaths += ../Minimum_Base + + dynamicflags = RECEIVER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Receiver_exec.cpp + } + + Header_Files { + Receiver_exec.h + Receiver_exec_export.h + } + + Inline_Files { + } +} + + +project(Minimum_Base_Receiver_svnt) : ciao_servant { + after += Minimum_Base_skel Minimum_Base_Receiver_lem_stub + sharedname = Receiver_svnt + libs += Receiver_stub Receiver_lem_stub \ + Minimum_Base_skel \ + Minimum_Base_stub + libpaths += ../Minimum_Base + + dynamicflags = RECEIVER_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverS.cpp + Receiver_svnt.cpp + } + + Header_Files { + ReceiverS.h + Receiver_svnt.h + Receiver_svnt_export.h + } + + Inline_Files { + ReceiverS.inl + } +} + + diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp new file mode 100644 index 00000000000..19d56a21b0b --- /dev/null +++ b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp @@ -0,0 +1,132 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Receiver_exec.h" + +namespace CIAO_Minimum_Receiver_Impl +{ + //================================================================== + // Component Executor Implementation Class: Receiver_exec_i + //================================================================== + + Receiver_exec_i::Receiver_exec_i (void) + { + } + + Receiver_exec_i::~Receiver_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + void + Receiver_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::Minimum::CCM_Receiver_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Receiver_exec_i::configuration_complete () + { + // Your code here. + } + + void + Receiver_exec_i::ccm_activate () + { + // Your code here. + } + + void + Receiver_exec_i::ccm_passivate () + { + // Your code here. + } + + void + Receiver_exec_i::ccm_remove () + { + // Your code here. + } + + //================================================================== + // Home Executor Implementation Class: ReceiverHome_exec_i + //================================================================== + + ReceiverHome_exec_i::ReceiverHome_exec_i (void) + { + } + + ReceiverHome_exec_i::~ReceiverHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + ReceiverHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Receiver_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Minimum_ReceiverHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + ReceiverHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h new file mode 100644 index 00000000000..b8e7b3fae39 --- /dev/null +++ b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h @@ -0,0 +1,98 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_RECEIVER_EXEC_H +#define CIAO_RECEIVER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "ReceiverEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Receiver_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Minimum_Receiver_Impl +{ + class RECEIVER_EXEC_Export Receiver_exec_i + : public virtual Receiver_Exec, + public virtual ::CORBA::LocalObject + { + public: + Receiver_exec_i (void); + virtual ~Receiver_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + private: + ::Minimum::CCM_Receiver_Context_var context_; + }; + + class RECEIVER_EXEC_Export ReceiverHome_exec_i + : public virtual ReceiverHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + ReceiverHome_exec_i (void); + virtual ~ReceiverHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Minimum_ReceiverHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_RECEIVER_EXEC_H */ + diff --git a/modules/CIAO/tests/Minimum/Sender/Sender.idl b/modules/CIAO/tests/Minimum/Sender/Sender.idl new file mode 100644 index 00000000000..74b9bf76f9a --- /dev/null +++ b/modules/CIAO/tests/Minimum/Sender/Sender.idl @@ -0,0 +1,28 @@ +//$Id$ + +#ifndef CIAO_SENDER_IDL +#define CIAO_SENDER_IDL + + +#include "../Minimum_Base/Minimum_Base.idl" + +module Minimum +{ + /* This is a Sender specific interface which will be used to get the + * process start. + */ + + interface trigger + { + void bar (); + }; + + component Sender supports trigger + { + }; + + home SenderHome manages Sender + { + }; +}; +#endif /*CIAO_SENDER_IDL*/ diff --git a/modules/CIAO/tests/Minimum/Sender/Sender.mpc b/modules/CIAO/tests/Minimum/Sender/Sender.mpc new file mode 100644 index 00000000000..3e1aea88bac --- /dev/null +++ b/modules/CIAO/tests/Minimum/Sender/Sender.mpc @@ -0,0 +1,113 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Minimum_Base Sender" + +project(Minimum_Base_Sender_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=SENDER_STUB_Export \ + -Wb,stub_export_include=Sender_stub_export.h \ + -Wb,skel_export_macro=SENDER_SVNT_Export \ + -Wb,skel_export_include=Sender_svnt_export.h \ + -Wb,exec_export_macro=SENDER_EXEC_Export \ + -Wb,exec_export_include=Sender_exec_export.h \ + + IDL_Files { + Sender.idl + } +} + +project(Minimum_Base_Sender_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Minimum_Base_Sender_idl_gen + idlflags += -Wb,export_macro=SENDER_EXEC_Export \ + -Wb,export_include=Sender_exec_export.h \ + -SS + + IDL_Files { + SenderE.idl + } +} + +project(Minimum_Base_Sender_stub) : ccm_stub { + after += Minimum_Base_Sender_idl_gen Minimum_Base_stub + libs += Minimum_Base_stub + libpaths += ../Minimum_Base + + sharedname = Sender_stub + dynamicflags = SENDER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SenderC.cpp + } + + Header_Files { + SenderC.h + Sender_stub_export.h + } + + Inline_Files { + SenderC.inl + } +} + +project(Minimum_Base_Sender_exec) : ciao_executor { + after += Minimum_Base_Sender_lem_gen Minimum_Base_Sender_stub + sharedname = Sender_exec + libs += Sender_stub Minimum_Base_stub + libpaths += ../Minimum_Base + + dynamicflags = SENDER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SenderEC.cpp + Sender_exec.cpp + } + + Header_Files { + SenderEC.h + Sender_exec.h + Sender_exec_export.h + } + + Inline_Files { + SenderEC.inl + } +} + + +project(Minimum_Base_Sender_svnt) : ciao_servant { + after += Minimum_Base_skel Minimum_Base_Sender_exec + sharedname = Sender_svnt + libs += Sender_exec \ + Sender_stub \ + Minimum_Base_skel \ + Minimum_Base_stub + libpaths += ../Minimum_Base + + dynamicflags = SENDER_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SenderS.cpp + Sender_svnt.cpp + } + + Header_Files { + SenderS.h + Sender_svnt.h + Sender_svnt_export.h + } + + Inline_Files { + SenderS.inl + } +} + + diff --git a/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp b/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp new file mode 100644 index 00000000000..3e05bf6987c --- /dev/null +++ b/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp @@ -0,0 +1,138 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Sender_exec.h" + +namespace CIAO_Minimum_Sender_Impl +{ + //================================================================== + // Component Executor Implementation Class: Sender_exec_i + //================================================================== + + Sender_exec_i::Sender_exec_i (void) + { + } + + Sender_exec_i::~Sender_exec_i (void) + { + } + + // Supported or inherited operations. + + void + Sender_exec_i::bar () + { + // Your code here. + } + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + void + Sender_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::Minimum::CCM_Sender_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Sender_exec_i::configuration_complete () + { + // Your code here. + } + + void + Sender_exec_i::ccm_activate () + { + // Your code here. + } + + void + Sender_exec_i::ccm_passivate () + { + // Your code here. + } + + void + Sender_exec_i::ccm_remove () + { + // Your code here. + } + + //================================================================== + // Home Executor Implementation Class: SenderHome_exec_i + //================================================================== + + SenderHome_exec_i::SenderHome_exec_i (void) + { + } + + SenderHome_exec_i::~SenderHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + SenderHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Sender_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Minimum_SenderHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + SenderHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/tests/Minimum/Sender/Sender_exec.h b/modules/CIAO/tests/Minimum/Sender/Sender_exec.h new file mode 100644 index 00000000000..bbabf471aae --- /dev/null +++ b/modules/CIAO/tests/Minimum/Sender/Sender_exec.h @@ -0,0 +1,101 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_SENDER_EXEC_H +#define CIAO_SENDER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "SenderEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Sender_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Minimum_Sender_Impl +{ + class SENDER_EXEC_Export Sender_exec_i + : public virtual Sender_Exec, + public virtual ::CORBA::LocalObject + { + public: + Sender_exec_i (void); + virtual ~Sender_exec_i (void); + + // Supported or inherited operations. + + virtual void + bar (); + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + private: + ::Minimum::CCM_Sender_Context_var context_; + }; + + class SENDER_EXEC_Export SenderHome_exec_i + : public virtual SenderHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + SenderHome_exec_i (void); + virtual ~SenderHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Minimum_SenderHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_SENDER_EXEC_H */ + diff --git a/modules/CIAO/tests/tests.mwc b/modules/CIAO/tests/tests.mwc new file mode 100644 index 00000000000..6479880bd23 --- /dev/null +++ b/modules/CIAO/tests/tests.mwc @@ -0,0 +1,9 @@ +// -*- MPC -*- +// $Id$ + +workspace { + exclude { + RTCCM + } + +}
\ No newline at end of file |