diff options
author | roopa <roopa@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-05-17 21:18:30 +0000 |
---|---|---|
committer | roopa <roopa@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2006-05-17 21:18:30 +0000 |
commit | 66c750f8dc586b1ce740938e512e6036727c12fc (patch) | |
tree | a16c53568fe0a3799e71541d48c0bee7199dfc3f | |
parent | 397ca321376d3879e758db98cf5659b46318cae6 (diff) | |
download | ATCD-66c750f8dc586b1ce740938e512e6036727c12fc.tar.gz |
Ported Display example to new CIAO framework
40 files changed, 2224 insertions, 420 deletions
diff --git a/TAO/CIAO/examples/Display/HUDisplay.idl b/TAO/CIAO/examples/Display/Display_Base/Display_Base.idl index 58b02bacded..337d4101c2b 100644 --- a/TAO/CIAO/examples/Display/HUDisplay.idl +++ b/TAO/CIAO/examples/Display/Display_Base/Display_Base.idl @@ -1,7 +1,7 @@ // $Id$ /** - * @file HUDisplay.idl + * @file Display_Base.idl * * Definition of events, and common interfaces used in HUDisplay module. * @@ -21,9 +21,7 @@ module HUDisplay interface opmode { void start (); - void stop (); - boolean active (); }; diff --git a/TAO/CIAO/examples/Display/Display_Base/Display_Base.mpc b/TAO/CIAO/examples/Display/Display_Base/Display_Base.mpc new file mode 100644 index 00000000000..2e58d9ac2fb --- /dev/null +++ b/TAO/CIAO/examples/Display/Display_Base/Display_Base.mpc @@ -0,0 +1,38 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Display_Base" + +project(Display_Base_stub): ciao_client_dnc { + + sharedname = Display_Base_stub + idlflags += -Wb,stub_export_macro=DISPLAY_BASE_STUB_Export -Wb,stub_export_include=Display_Base_stub_export.h -Wb,skel_export_macro=DISPLAY_BASE_SVNT_Export -Wb,skel_export_include=Display_Base_svnt_export.h + dynamicflags = DISPLAY_BASE_STUB_BUILD_DLL + + IDL_Files { + Display_Base.idl + } + + Source_Files { + Display_BaseC.cpp + } +} + +project(Display_Base_svnt) : ciao_servant_dnc { + after += Display_Base_stub + sharedname = Display_Base_svnt + libs += Display_Base_stub + + idlflags += -Wb,export_macro=DISPLAY_BASE_SVNT_Export -Wb,export_include=Display_Base_svnt_export.h + dynamicflags = DISPLAY_BASE_SVNT_BUILD_DLL + + IDL_Files { + Display_Base.idl + } + + Source_Files { + Display_BaseS.cpp + } +} + + + + diff --git a/TAO/CIAO/examples/Display/Display_Base/Display_Base_stub_export.h b/TAO/CIAO/examples/Display/Display_Base/Display_Base_stub_export.h new file mode 100644 index 00000000000..e5e412c22a6 --- /dev/null +++ b/TAO/CIAO/examples/Display/Display_Base/Display_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 DISPLAY_BASE_STUB +// ------------------------------ +#ifndef DISPLAY_BASE_STUB_EXPORT_H +#define DISPLAY_BASE_STUB_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (DISPLAY_BASE_STUB_HAS_DLL) +# define DISPLAY_BASE_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && DISPLAY_BASE_STUB_HAS_DLL */ + +#if !defined (DISPLAY_BASE_STUB_HAS_DLL) +# define DISPLAY_BASE_STUB_HAS_DLL 1 +#endif /* ! DISPLAY_BASE_STUB_HAS_DLL */ + +#if defined (DISPLAY_BASE_STUB_HAS_DLL) && (DISPLAY_BASE_STUB_HAS_DLL == 1) +# if defined (DISPLAY_BASE_STUB_BUILD_DLL) +# define DISPLAY_BASE_STUB_Export ACE_Proper_Export_Flag +# define DISPLAY_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DISPLAY_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DISPLAY_BASE_STUB_BUILD_DLL */ +# define DISPLAY_BASE_STUB_Export ACE_Proper_Import_Flag +# define DISPLAY_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DISPLAY_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DISPLAY_BASE_STUB_BUILD_DLL */ +#else /* DISPLAY_BASE_STUB_HAS_DLL == 1 */ +# define DISPLAY_BASE_STUB_Export +# define DISPLAY_BASE_STUB_SINGLETON_DECLARATION(T) +# define DISPLAY_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DISPLAY_BASE_STUB_HAS_DLL == 1 */ + +// Set DISPLAY_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DISPLAY_BASE_STUB_NTRACE) +# if (ACE_NTRACE == 1) +# define DISPLAY_BASE_STUB_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DISPLAY_BASE_STUB_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DISPLAY_BASE_STUB_NTRACE */ + +#if (DISPLAY_BASE_STUB_NTRACE == 1) +# define DISPLAY_BASE_STUB_TRACE(X) +#else /* (DISPLAY_BASE_STUB_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define DISPLAY_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (DISPLAY_BASE_STUB_NTRACE == 1) */ + +#endif /* DISPLAY_BASE_STUB_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/examples/Display/Display_Base/Display_Base_svnt_export.h b/TAO/CIAO/examples/Display/Display_Base/Display_Base_svnt_export.h new file mode 100644 index 00000000000..7e0460322a5 --- /dev/null +++ b/TAO/CIAO/examples/Display/Display_Base/Display_Base_svnt_export.h @@ -0,0 +1,58 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl DISPLAY_BASE_SVNT +// ------------------------------ +#ifndef DISPLAY_BASE_SVNT_EXPORT_H +#define DISPLAY_BASE_SVNT_EXPORT_H + +#include "ace/config-all.h" + +#if defined (ACE_AS_STATIC_LIBS) && !defined (DISPLAY_BASE_SVNT_HAS_DLL) +# define DISPLAY_BASE_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && DISPLAY_BASE_SVNT_HAS_DLL */ + +#if !defined (DISPLAY_BASE_SVNT_HAS_DLL) +# define DISPLAY_BASE_SVNT_HAS_DLL 1 +#endif /* ! DISPLAY_BASE_SVNT_HAS_DLL */ + +#if defined (DISPLAY_BASE_SVNT_HAS_DLL) && (DISPLAY_BASE_SVNT_HAS_DLL == 1) +# if defined (DISPLAY_BASE_SVNT_BUILD_DLL) +# define DISPLAY_BASE_SVNT_Export ACE_Proper_Export_Flag +# define DISPLAY_BASE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define DISPLAY_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* DISPLAY_BASE_SVNT_BUILD_DLL */ +# define DISPLAY_BASE_SVNT_Export ACE_Proper_Import_Flag +# define DISPLAY_BASE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define DISPLAY_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* DISPLAY_BASE_SVNT_BUILD_DLL */ +#else /* DISPLAY_BASE_SVNT_HAS_DLL == 1 */ +# define DISPLAY_BASE_SVNT_Export +# define DISPLAY_BASE_SVNT_SINGLETON_DECLARATION(T) +# define DISPLAY_BASE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* DISPLAY_BASE_SVNT_HAS_DLL == 1 */ + +// Set DISPLAY_BASE_SVNT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (DISPLAY_BASE_SVNT_NTRACE) +# if (ACE_NTRACE == 1) +# define DISPLAY_BASE_SVNT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define DISPLAY_BASE_SVNT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !DISPLAY_BASE_SVNT_NTRACE */ + +#if (DISPLAY_BASE_SVNT_NTRACE == 1) +# define DISPLAY_BASE_SVNT_TRACE(X) +#else /* (DISPLAY_BASE_SVNT_NTRACE == 1) */ +# if !defined (ACE_HAS_TRACE) +# define ACE_HAS_TRACE +# endif /* ACE_HAS_TRACE */ +# define DISPLAY_BASE_SVNT_TRACE(X) ACE_TRACE_IMPL(X) +# include "ace/Trace.h" +#endif /* (DISPLAY_BASE_SVNT_NTRACE == 1) */ + +#endif /* DISPLAY_BASE_SVNT_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/CIAO/examples/Display/Display_Base/GNUmakefile b/TAO/CIAO/examples/Display/Display_Base/GNUmakefile new file mode 100644 index 00000000000..de0ebfa2e6e --- /dev/null +++ b/TAO/CIAO/examples/Display/Display_Base/GNUmakefile @@ -0,0 +1,39 @@ +# -*- makefile -*- +#------------------------------------------------------------------------- +# GNU ACE Workspace +# +# $Id$ +# +# This file was generated by MPC. Any changes made directly to +# this file will be lost the next time it is generated. +# +# MPC Command: +# /home/research/roopa/projects/ACE_wrappers_CIAO/build/CIAO_Build/bin/mwc.pl +# +#------------------------------------------------------------------------- +MAKEFILE = GNUmakefile + +ifeq ($(findstring k,$(MAKEFLAGS)),k) + KEEP_GOING = - +endif + +include $(ACE_ROOT)/include/makeinclude/macros.GNU + +all: Display_Base_stub Display_Base_svnt +REMAINING_TARGETS := $(subst all, , $(TARGETS_NESTED:.nested=)) $(CUSTOM_TARGETS) + +$(REMAINING_TARGETS): + @$(MAKE) -f GNUmakefile.Display_Base_stub $(@) + @$(MAKE) -f GNUmakefile.Display_Base_svnt $(@) + +.PHONY: Display_Base_stub +Display_Base_stub: + @$(MAKE) -f GNUmakefile.Display_Base_stub all + +.PHONY: Display_Base_svnt +Display_Base_svnt: Display_Base_stub + @$(MAKE) -f GNUmakefile.Display_Base_svnt all + +project_name_list: + @echo Display_Base_stub + @echo Display_Base_svnt diff --git a/TAO/CIAO/examples/Display/Display_Base/GNUmakefile.Display_Base_stub b/TAO/CIAO/examples/Display/Display_Base/GNUmakefile.Display_Base_stub new file mode 100644 index 00000000000..3fb41cffcc3 --- /dev/null +++ b/TAO/CIAO/examples/Display/Display_Base/GNUmakefile.Display_Base_stub @@ -0,0 +1,248 @@ +# -*- Makefile -*- +#---------------------------------------------------------------------------- +# GNU Makefile +# +# @file GNUmakefile.Display_Base_stub +# +# $Id$ +# +# This file was automatically generated by MPC. Any changes made directly to +# this file will be lost the next time it is generated. +# +#---------------------------------------------------------------------------- +MAKEFILE = GNUmakefile.Display_Base_stub +DEPENDENCY_FILE = .depend.Display_Base_stub + +## LIB may be set to empty later on in this file +LIB_UNCHECKED = libDisplay_Base_stub.a +LIB = $(LIB_UNCHECKED) +LIB_NAME = libDisplay_Base_stub + +## SHLIB may be set to empty later on in this file +SHLIB_UNCHECKED = libDisplay_Base_stub.$(SOEXT) +SHLIB = $(SHLIB_UNCHECKED) + +TAO_ROOT ?= $(ACE_ROOT)/TAO +CIAO_ROOT ?= $(TAO_ROOT)/CIAO + +FILES = \ + Display_BaseC.cpp + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- +ACE_SHLIBS = -lCIAO_DnC_Client -lTAO_IFR_Client -lTAO_Security -lTAO_PI -lTAO_CodecFactory -lTAO_Valuetype -lTAO_PortableServer -lTAO_AnyTypeCode -lTAO -lACE -lzzip -lz +TAO_IDL = $(ACE_ROOT)/bin/tao_idl +TAO_IDL_DEP = $(ACE_ROOT)/bin/tao_idl$(EXEEXT) +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) + +PRJ_TYPE = library + +INSLIB ?= $(ACE_ROOT)/lib +ifeq ($(INSLIB),.) + ifeq ($(PWD),) + PWD=$(shell pwd) + endif + INSLIB = $(PWD) +endif +OUTPUT_DIRECTORY = $(INSLIB) + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +## We don't need the ACELIB setting from wrapper_macros.GNU +ACELIB = +tao_dont_use_idl_make_rule = 1 +include $(TAO_ROOT)/rules.tao.GNU +include $(CIAO_ROOT)/rules.ciao.GNU + +# To build multiple targets in the same directory on AIX, it works +# best to have a template directory per project. +# The compiler/linker isn't too smart about instantiating templates... +ifdef TEMPINCDIR +TEMPINCDIR := $(TEMPINCDIR)/Display_Base_stub +all: $(TEMPINCDIR) +endif + +ifneq ($(OUTPUT_DIRECTORY),) +all: $(OUTPUT_DIRECTORY) +$(OUTPUT_DIRECTORY): + -@$(MKDIR) "$(OUTPUT_DIRECTORY)" +endif + +# turn off libcheck if doing a dry run +ifeq ($(findstring n, $(MAKEFLAGS)),n) + LIBCHECK = 1 +else + # turn off libcheck if keep going was passed too + ifeq ($(findstring k, $(MAKEFLAGS)),k) + LIBCHECK = 1 + else + LIBCHECK ?= $(filter-out $(foreach lib,CIAO_DnC_Client TAO_IFR_Client TAO_Security TAO_PI TAO_CodecFactory TAO_Valuetype TAO_PortableServer TAO_AnyTypeCode TAO ACE zzip,$(findstring $(lib),$(foreach libpath,. $(ZLIB_ROOT)/lib $(ZZIP_ROOT)/lib $(ACE_ROOT)/lib /usr/lib $(INSLIB),$(wildcard $(libpath)/lib$(lib).* $(libpath)/$(lib).lib)))),CIAO_DnC_Client TAO_IFR_Client TAO_Security TAO_PI TAO_CodecFactory TAO_Valuetype TAO_PortableServer TAO_AnyTypeCode TAO ACE zzip) + ifeq ($(LIBCHECK),) + LIBCHECK = 1 + endif + endif +endif +ifeq ($(interceptors),1) +ifeq ($(corba_messaging),1) +ifneq ($(LIBCHECK), 1) + LIB = + SHLIB = + all: lib_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif + +ifeq (,$(TAO_ORBSVCS)) +ifeq ($(interceptors),1) +ifeq ($(corba_messaging),1) +else + LIB = + SHLIB = + all: require_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +else +ifeq ($(interceptors),1) +ifeq ($(corba_messaging),1) + ifeq (Security, $(findstring Security, $(TAO_ORBSVCS))) + else + LIB = + SHLIB = + endif +else + LIB = + SHLIB = + all: require_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +endif +LSRC = $(FILES) + +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU +ifeq ($(VXWORKSLINK),true) +include $(TGT_DIR)/h/make/rules.$(PRJ_TYPE) +endif + +ifeq ($(VXWORKSLINK),true) +LDLIBPATH = -L. -L$(ZLIB_ROOT)/lib -L$(ZZIP_ROOT)/lib -L$(ACE_ROOT)/lib +else +LDFLAGS += -L. -L$(ZLIB_ROOT)/lib -L$(ZZIP_ROOT)/lib -L$(ACE_ROOT)/lib +endif +CPPFLAGS += -I$(ZLIB_ROOT)/include -I$(ZZIP_ROOT)/include -I$(ACE_ROOT) -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -I$(CIAO_ROOT) -I$(CIAO_ROOT)/ciao -I$(CIAO_ROOT)/DAnCE +CPPFLAGS += -DZLIB -DUSE_ZZIP +ifeq ($(shared_libs),1) + ifneq ($(SHLIB),) + CPPFLAGS += -DDISPLAY_BASE_STUB_BUILD_DLL + endif +endif +ifeq ($(static_libs),1) + CPPFLAGS += -DACE_AS_STATIC_LIBS -DTAO_AS_STATIC_LIBS +endif + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- +lib_warning: + @echo This project will not be built due to the following missing library: + @echo $(LIBCHECK) + +require_warning: + @echo This project will not be built due to one of the following missing features: + @echo interceptors corba_messaging + +## Some OS's have /bin/test others only have /usr/bin/test +ifeq ($(wildcard /bin/test), /bin/test) + TEST_EXE = /bin/test +else +ifeq ($(wildcard /usr/bin/test), /usr/bin/test) + TEST_EXE = /usr/bin/test +endif +endif + +DYLD_LIBRARY_PATH := $(DYLD_LIBRARY_PATH):$(ACE_ROOT)/lib +LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(ACE_ROOT)/lib +SHLIB_PATH := $(SHLIB_PATH):$(ACE_ROOT)/lib +LIBPATH := $(LIBPATH):$(ACE_ROOT)/lib +PATH := $(PATH):$(ACE_ROOT)/lib + +GENERATED_DIRTY += Display_BaseS.inl Display_BaseC.inl Display_BaseS_T.inl Display_BaseC.h Display_BaseS.h Display_BaseS_T.h Display_BaseC.cpp Display_BaseS_T.cpp +OBJS_DEPEND_ON_GENERATED = 1 +## More than one file is generated by the command and therefore +## it can not be run in parallel. Unfortunately, there is no way to +## say that only this rule can't be run in parallel. However, we can +## determine if the generated files have already been generated. If that's +## the case, then we don't need this special rule. +ifeq ($(wildcard $(GENERATED_DIRTY)), $(GENERATED_DIRTY)) + ## If we can find /bin/test, then we will continue + ifneq ($(TEST_EXE),) + ## If all of the generated files are there, then we need to check + ## and make sure that the generated files are up-to-date. If they are not + ## then we need the special rule. + ifneq ($(shell $(TEST_EXE) Display_Base.idl -nt Display_BaseS.inl 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseC.inl 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS_T.inl 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseC.h 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS.h 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS_T.h 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseC.cpp 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS_T.cpp 2> /dev/null && echo 0),) + .NOTPARALLEL: + else + ## By this point, all of the generated files are here and up-to-date + ## with respect to the source file. Now we need to make sure that + ## they are up-to-date with respect to the generation tool. If the tool + ## is newer than the generated files, then we need the special rule. + ifneq ($(shell $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS.inl 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseC.inl 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS_T.inl 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseC.h 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS.h 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS_T.h 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseC.cpp 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS_T.cpp 2> /dev/null && echo 0),) + .NOTPARALLEL: + endif + endif + else + .NOTPARALLEL: + endif +else +.NOTPARALLEL: +endif +Display_BaseS.inl Display_BaseC.inl Display_BaseS_T.inl Display_BaseC.h Display_BaseS.h Display_BaseS_T.h Display_BaseC.cpp Display_BaseS_T.cpp: Display_Base.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -I$(TAO_ROOT)/orbsvcs -GT -I$(CIAO_ROOT) -I$(CIAO_ROOT)/ciao -I$(CIAO_ROOT)/DAnCE -Sc -Wb,stub_export_macro=DISPLAY_BASE_STUB_Export -Wb,stub_export_include=Display_Base_stub_export.h -Wb,skel_export_macro=DISPLAY_BASE_SVNT_Export -Wb,skel_export_include=Display_Base_svnt_export.h Display_Base.idl + +ifneq ($(GENERATED_DIRTY),) +.PRECIOUS: $(GENERATED_DIRTY) +## If the generated files are anything but source files, we need to +## ensure that those files are generated before we attempt to build anything +## else. +ifeq ($(OBJS_DEPEND_ON_GENERATED),1) +$(VDIR)$(ACE_PCH_FILE) $(addprefix $(VDIR), $(OBJS)): $(GENERATED_DIRTY) +$(VSHDIR)$(ACE_PCH_FILE) $(VSHOBJS): $(GENERATED_DIRTY) +endif +endif + +ADDITIONAL_IDL_TARGETS += Display_Base$(IDL_CLIENT_HDR_EXT) +idl_stubs: $(ADDITIONAL_IDL_TARGETS) + +# This assignment forces make to run the idl_stubs +# target before building any of the source files. +FORCED_IDL_STUBS = Display_BaseC.cpp +FORCED_IDL_STUBS := $(FORCED_IDL_STUBS:Display_BaseC.cpp=) + +ifneq ($(FORCED_IDL_STUBS),) +$(FORCED_IDL_STUBS): idl_stubs +endif + +realclean: clean +ifneq ($(GENERATED_DIRTY),) + -$(RM) -r $(GENERATED_DIRTY) +endif + diff --git a/TAO/CIAO/examples/Display/Display_Base/GNUmakefile.Display_Base_svnt b/TAO/CIAO/examples/Display/Display_Base/GNUmakefile.Display_Base_svnt new file mode 100644 index 00000000000..1e8cefb1934 --- /dev/null +++ b/TAO/CIAO/examples/Display/Display_Base/GNUmakefile.Display_Base_svnt @@ -0,0 +1,283 @@ +# -*- Makefile -*- +#---------------------------------------------------------------------------- +# GNU Makefile +# +# @file GNUmakefile.Display_Base_svnt +# +# $Id$ +# +# This file was automatically generated by MPC. Any changes made directly to +# this file will be lost the next time it is generated. +# +#---------------------------------------------------------------------------- +MAKEFILE = GNUmakefile.Display_Base_svnt +DEPENDENCY_FILE = .depend.Display_Base_svnt + +## LIB may be set to empty later on in this file +LIB_UNCHECKED = libDisplay_Base_svnt.a +LIB = $(LIB_UNCHECKED) +LIB_NAME = libDisplay_Base_svnt + +## SHLIB may be set to empty later on in this file +SHLIB_UNCHECKED = libDisplay_Base_svnt.$(SOEXT) +SHLIB = $(SHLIB_UNCHECKED) + +TAO_ROOT ?= $(ACE_ROOT)/TAO +CIAO_ROOT ?= $(TAO_ROOT)/CIAO + +FILES = \ + Display_BaseS.cpp + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- +ACE_SHLIBS = -lDisplay_Base_stub -lCIAO_DnC_Server -lTAO_CosNaming -lTAO_Utils -lCIAO_Deployment_svnt -lCIAO_DnC_Events -lCIAO_RTEvent -lTAO_RTEvent_Serv -lTAO_RTEvent_Skel -lTAO_RTEvent -lTAO_Svc_Utils -lTAO_Messaging -lCIAO_Deployment_stub -lCIAO_DnC_Events_Base -lCIAO_DnC_Container -lCIAO_DnC_Client -lTAO_IFR_Client -lTAO_Security -lTAO_PI -lTAO_CodecFactory -lTAO_Valuetype -lTAO_PortableServer -lTAO_AnyTypeCode -lTAO -lACE -lzzip -lz +TAO_IDL = $(ACE_ROOT)/bin/tao_idl +TAO_IDL_DEP = $(ACE_ROOT)/bin/tao_idl$(EXEEXT) +TAO_IDLFLAGS = -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -I$(TAO_ROOT) +CIDLC = $(CIAO_ROOT)/bin/cidlc +CIDLC_DEP = $(CIAO_ROOT)/bin/cidlc$(EXEEXT) +CIDLC_FLAGS = -I $(CIAO_ROOT) -I$(CIAO_ROOT)/DAnCE -I$(CIAO_ROOT)/ciao -I$(TAO_ROOT) -I$(TAO_ROOT)/tao -I$(TAO_ROOT)/orbsvcs -- + +PRJ_TYPE = library + +INSLIB ?= $(ACE_ROOT)/lib +ifeq ($(INSLIB),.) + ifeq ($(PWD),) + PWD=$(shell pwd) + endif + INSLIB = $(PWD) +endif +OUTPUT_DIRECTORY = $(INSLIB) + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +## We don't need the ACELIB setting from wrapper_macros.GNU +ACELIB = +tao_dont_use_idl_make_rule = 1 +include $(TAO_ROOT)/rules.tao.GNU +include $(CIAO_ROOT)/rules.ciao.GNU + +# To build multiple targets in the same directory on AIX, it works +# best to have a template directory per project. +# The compiler/linker isn't too smart about instantiating templates... +ifdef TEMPINCDIR +TEMPINCDIR := $(TEMPINCDIR)/Display_Base_svnt +all: $(TEMPINCDIR) +endif + +ifneq ($(OUTPUT_DIRECTORY),) +all: $(OUTPUT_DIRECTORY) +$(OUTPUT_DIRECTORY): + -@$(MKDIR) "$(OUTPUT_DIRECTORY)" +endif + +# turn off libcheck if doing a dry run +ifeq ($(findstring n, $(MAKEFLAGS)),n) + LIBCHECK = 1 +else + # turn off libcheck if keep going was passed too + ifeq ($(findstring k, $(MAKEFLAGS)),k) + LIBCHECK = 1 + else + LIBCHECK ?= $(filter-out $(foreach lib,Display_Base_stub CIAO_DnC_Server TAO_CosNaming TAO_Utils CIAO_Deployment_svnt CIAO_DnC_Events CIAO_RTEvent TAO_RTEvent_Serv TAO_RTEvent_Skel TAO_RTEvent TAO_Svc_Utils TAO_Messaging CIAO_Deployment_stub CIAO_DnC_Events_Base CIAO_DnC_Container CIAO_DnC_Client TAO_IFR_Client TAO_Security TAO_PI TAO_CodecFactory TAO_Valuetype TAO_PortableServer TAO_AnyTypeCode TAO ACE zzip,$(findstring $(lib),$(foreach libpath,. $(ZLIB_ROOT)/lib $(ZZIP_ROOT)/lib $(ACE_ROOT)/lib /usr/lib $(INSLIB),$(wildcard $(libpath)/lib$(lib).* $(libpath)/$(lib).lib)))),Display_Base_stub CIAO_DnC_Server TAO_CosNaming TAO_Utils CIAO_Deployment_svnt CIAO_DnC_Events CIAO_RTEvent TAO_RTEvent_Serv TAO_RTEvent_Skel TAO_RTEvent TAO_Svc_Utils TAO_Messaging CIAO_Deployment_stub CIAO_DnC_Events_Base CIAO_DnC_Container CIAO_DnC_Client TAO_IFR_Client TAO_Security TAO_PI TAO_CodecFactory TAO_Valuetype TAO_PortableServer TAO_AnyTypeCode TAO ACE zzip) + ifeq ($(LIBCHECK),) + LIBCHECK = 1 + endif + endif +endif +ifeq ($(interceptors),1) +ifeq ($(corba_messaging),1) +ifneq ($(ace_for_tao),1) +ifneq ($(LIBCHECK), 1) + LIB = + SHLIB = + all: lib_warning +endif +else + LIB = + SHLIB = + all: avoid_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif + +ifeq (,$(TAO_ORBSVCS)) +ifeq ($(interceptors),1) +ifeq ($(corba_messaging),1) +ifneq ($(ace_for_tao),1) +else + LIB = + SHLIB = + all: avoid_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +else +ifeq ($(interceptors),1) +ifeq ($(corba_messaging),1) +ifneq ($(ace_for_tao),1) + ifeq (Security, $(findstring Security, $(TAO_ORBSVCS))) + ifeq (RTEvent, $(findstring RTEvent, $(TAO_ORBSVCS))) + ifeq (Naming, $(findstring Naming, $(TAO_ORBSVCS))) + else + LIB = + SHLIB = + endif + else + LIB = + SHLIB = + endif + else + LIB = + SHLIB = + endif +else + LIB = + SHLIB = + all: avoid_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +else + LIB = + SHLIB = + all: require_warning +endif +endif +LSRC = $(FILES) + +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU +ifeq ($(VXWORKSLINK),true) +include $(TGT_DIR)/h/make/rules.$(PRJ_TYPE) +endif + +ifeq ($(VXWORKSLINK),true) +LDLIBPATH = -L. -L$(ZLIB_ROOT)/lib -L$(ZZIP_ROOT)/lib -L$(ACE_ROOT)/lib +else +LDFLAGS += -L. -L$(ZLIB_ROOT)/lib -L$(ZZIP_ROOT)/lib -L$(ACE_ROOT)/lib +endif +CPPFLAGS += -I$(ZLIB_ROOT)/include -I$(ZZIP_ROOT)/include -I$(ACE_ROOT) -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -I$(CIAO_ROOT) -I$(CIAO_ROOT)/ciao -I$(CIAO_ROOT)/DAnCE -I$(CIAO_ROOT)/ciaosvcs/Events -I$(CIAO_ROOT)/DAnCE/ciao +CPPFLAGS += -DZLIB -DUSE_ZZIP +ifeq ($(shared_libs),1) + ifneq ($(SHLIB),) + CPPFLAGS += -DDISPLAY_BASE_SVNT_BUILD_DLL + endif +endif +ifeq ($(static_libs),1) + CPPFLAGS += -DACE_AS_STATIC_LIBS -DTAO_AS_STATIC_LIBS +endif + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- +lib_warning: + @echo This project will not be built due to the following missing library: + @echo $(LIBCHECK) + +require_warning: + @echo This project will not be built due to one of the following missing features: + @echo interceptors corba_messaging + +avoid_warning: + @echo This project will not be built due to one of the following enabled features: + @echo ace_for_tao + +## Some OS's have /bin/test others only have /usr/bin/test +ifeq ($(wildcard /bin/test), /bin/test) + TEST_EXE = /bin/test +else +ifeq ($(wildcard /usr/bin/test), /usr/bin/test) + TEST_EXE = /usr/bin/test +endif +endif + +DYLD_LIBRARY_PATH := $(DYLD_LIBRARY_PATH):$(ACE_ROOT)/lib +LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(ACE_ROOT)/lib +SHLIB_PATH := $(SHLIB_PATH):$(ACE_ROOT)/lib +LIBPATH := $(LIBPATH):$(ACE_ROOT)/lib +PATH := $(PATH):$(ACE_ROOT)/lib + +GENERATED_DIRTY += Display_BaseS.inl Display_BaseC.inl Display_BaseS_T.inl Display_BaseC.h Display_BaseS.h Display_BaseS_T.h Display_BaseS.cpp Display_BaseS_T.cpp +OBJS_DEPEND_ON_GENERATED = 1 +## More than one file is generated by the command and therefore +## it can not be run in parallel. Unfortunately, there is no way to +## say that only this rule can't be run in parallel. However, we can +## determine if the generated files have already been generated. If that's +## the case, then we don't need this special rule. +ifeq ($(wildcard $(GENERATED_DIRTY)), $(GENERATED_DIRTY)) + ## If we can find /bin/test, then we will continue + ifneq ($(TEST_EXE),) + ## If all of the generated files are there, then we need to check + ## and make sure that the generated files are up-to-date. If they are not + ## then we need the special rule. + ifneq ($(shell $(TEST_EXE) Display_Base.idl -nt Display_BaseS.inl 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseC.inl 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS_T.inl 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseC.h 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS.h 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS_T.h 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS.cpp 2> /dev/null && $(TEST_EXE) Display_Base.idl -nt Display_BaseS_T.cpp 2> /dev/null && echo 0),) + .NOTPARALLEL: + else + ## By this point, all of the generated files are here and up-to-date + ## with respect to the source file. Now we need to make sure that + ## they are up-to-date with respect to the generation tool. If the tool + ## is newer than the generated files, then we need the special rule. + ifneq ($(shell $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS.inl 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseC.inl 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS_T.inl 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseC.h 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS.h 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS_T.h 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS.cpp 2> /dev/null && $(TEST_EXE) $(TAO_IDL_DEP) -nt Display_BaseS_T.cpp 2> /dev/null && echo 0),) + .NOTPARALLEL: + endif + endif + else + .NOTPARALLEL: + endif +else +.NOTPARALLEL: +endif +Display_BaseS.inl Display_BaseC.inl Display_BaseS_T.inl Display_BaseC.h Display_BaseS.h Display_BaseS_T.h Display_BaseS.cpp Display_BaseS_T.cpp: Display_Base.idl $(TAO_IDL_DEP) + $(TAO_IDL) $(TAO_IDLFLAGS) -I$(TAO_ROOT)/orbsvcs -GT -I$(CIAO_ROOT) -I$(CIAO_ROOT)/ciao -I$(CIAO_ROOT)/DAnCE -Sc -I$(CIAO_ROOT)/DAnCE -Sc -I$(CIAO_ROOT)/ciaosvcs/Events -Sc -I$(CIAO_ROOT)/ciaosvcs/Events -Sc -I$(CIAO_ROOT)/DAnCE -Sc -Wb,export_macro=DISPLAY_BASE_SVNT_Export -Wb,export_include=Display_Base_svnt_export.h Display_Base.idl + +ifneq ($(GENERATED_DIRTY),) +.PRECIOUS: $(GENERATED_DIRTY) +## If the generated files are anything but source files, we need to +## ensure that those files are generated before we attempt to build anything +## else. +ifeq ($(OBJS_DEPEND_ON_GENERATED),1) +$(VDIR)$(ACE_PCH_FILE) $(addprefix $(VDIR), $(OBJS)): $(GENERATED_DIRTY) +$(VSHDIR)$(ACE_PCH_FILE) $(VSHOBJS): $(GENERATED_DIRTY) +endif +endif + +ADDITIONAL_IDL_TARGETS += Display_Base$(IDL_CLIENT_HDR_EXT) +idl_stubs: $(ADDITIONAL_IDL_TARGETS) + +# This assignment forces make to run the idl_stubs +# target before building any of the source files. +FORCED_IDL_STUBS = Display_BaseS.cpp +FORCED_IDL_STUBS := $(FORCED_IDL_STUBS:Display_BaseS.cpp=) + +ifneq ($(FORCED_IDL_STUBS),) +$(FORCED_IDL_STUBS): idl_stubs +endif + +realclean: clean +ifneq ($(GENERATED_DIRTY),) + -$(RM) -r $(GENERATED_DIRTY) +endif + diff --git a/TAO/CIAO/examples/Display/GPS/GPS.cidl b/TAO/CIAO/examples/Display/GPS/GPS.cidl index 77e7f3f746d..7fe6e4dbd64 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS.cidl +++ b/TAO/CIAO/examples/Display/GPS/GPS.cidl @@ -1,5 +1,8 @@ // $Id$ -*- IDL -*- +#ifndef GPS_CIDL +#define GPS_CIDL + #include "GPS.idl" composition session GPS_Impl @@ -11,3 +14,6 @@ composition session GPS_Impl }; }; +#endif /* GPS_CIDL */ + +//$Id$ diff --git a/TAO/CIAO/examples/Display/GPS/GPS.idl b/TAO/CIAO/examples/Display/GPS/GPS.idl index 8a2f2f50361..a3a437d98db 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS.idl +++ b/TAO/CIAO/examples/Display/GPS/GPS.idl @@ -7,8 +7,10 @@ * * @author Nanbor Wang <nanbor@cs.wustl.edu> */ +#ifndef GPS_IDL +#define GPS_IDL -#include "../HUDisplay.idl" +#include "../Display_Base/Display_Base.idl" module HUDisplay { @@ -23,3 +25,5 @@ module HUDisplay { }; }; + +#endif /* GPS_IDL */ diff --git a/TAO/CIAO/examples/Display/GPS/GPS.mpc b/TAO/CIAO/examples/Display/GPS/GPS.mpc index b72c8b64f97..8ac7f0d6fba 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS.mpc +++ b/TAO/CIAO/examples/Display/GPS/GPS.mpc @@ -1,15 +1,13 @@ // $Id$ -// This file is generated with "generate_component_mpc.pl -p HUDisplay GPS" +// This file is generated with "generate_component_mpc.pl -p Display_Base GPS" -project(GPS_DnC_stub): ciao_events_base_dnc { - avoids += ace_for_tao - after += HUDisplay_DnC_stub - sharedname = GPS_DnC_stub +project(Display_Base_GPS_stub): ciao_client_dnc { + after += Display_Base_stub + sharedname = GPS_stub idlflags += -Wb,stub_export_macro=GPS_STUB_Export -Wb,stub_export_include=GPS_stub_export.h -Wb,skel_export_macro=GPS_SVNT_Export -Wb,skel_export_include=GPS_svnt_export.h - libpaths+=.. - libs += HUDisplay_DnC_stub dynamicflags = GPS_STUB_BUILD_DLL - + libs += Display_Base_stub + IDL_Files { GPS.idl } @@ -19,12 +17,11 @@ project(GPS_DnC_stub): ciao_events_base_dnc { } } -project(GPS_DnC_svnt) : ciao_servant_dnc { - avoids += ace_for_tao - after += GPS_DnC_svnt GPS_DnC_stub HUDisplay_DnC_svnt - sharedname = GPS_DnC_svnt - libs += GPS_DnC_stub HUDisplay_DnC_stub HUDisplay_DnC_svnt - libpaths += .. +project(Display_Base_GPS_svnt) : ciao_servant_dnc { + after += Display_Base_svnt Display_Base_GPS_stub + sharedname = GPS_svnt + libs += GPS_stub Display_Base_stub Display_Base_svnt + idlflags += -Wb,export_macro=GPS_SVNT_Export -Wb,export_include=GPS_svnt_export.h dynamicflags = GPS_SVNT_BUILD_DLL @@ -44,23 +41,20 @@ project(GPS_DnC_svnt) : ciao_servant_dnc { } -project(GPS_DnC_exec) : ciao_component_dnc { - avoids += ace_for_tao - after += GPS_DnC_svnt - sharedname = GPS_DnC_exec - libs += GPS_DnC_stub GPS_DnC_svnt HUDisplay_DnC_stub HUDisplay_DnC_svnt - libpaths += .. +project(Display_Base_GPS_exec) : ciao_component_dnc { + after += Display_Base_GPS_svnt + sharedname = GPS_exec + libs += GPS_stub GPS_svnt Display_Base_stub Display_Base_svnt + idlflags += -Wb,export_macro=GPS_EXEC_Export -Wb,export_include=GPS_exec_export.h dynamicflags = GPS_EXEC_BUILD_DLL IDL_Files { - GPSEI.idl + GPSEI.idl } Source_Files { - GPSEIC.cpp - GPS_exec.cpp } } diff --git a/TAO/CIAO/examples/Display/GPS/GPS_Impl.ccd b/TAO/CIAO/examples/Display/GPS/GPS_Impl.ccd new file mode 100644 index 00000000000..559e674c080 --- /dev/null +++ b/TAO/CIAO/examples/Display/GPS/GPS_Impl.ccd @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<!DOCTYPE corbacomponent SYSTEM "corbacomponent.dtd"> + +<corbacomponent> + <corbaversion>3.0</corbaversion> + <componentrepid repid="IDL:HUDisplay/GPS:1.0"/> + <homerepid repid="IDL:HUDisplay/GPSHome:1.0"/> + <componentkind> + <session> + <servant lifetime="container"/> + </session> + </componentkind> + <threading policy="multithread"/> + <configurationcomplete set="true"/> + + <homefeatures + name="GPSHome" + repid="IDL:HUDisplay/GPSHome:1.0"> + </homefeatures> + + <componentfeatures + name="GPS" + repid="IDL:HUDisplay/GPS:1.0"> + <ports> + <provides + providesname="MyLocation" + repid="IDL:HUDisplay/position:1.0" + facettag="1"> + </provides> + <publishes + publishesname="Ready" + eventtype="IDL:HUDisplay/tick:1.0"> + <eventpolicy policy="normal"/> + </publishes> + <consumes + consumesname="Refresh" + eventtype="IDL:HUDisplay/tick:1.0"> + <eventpolicy policy="normal"/> + </consumes> + </ports> + </componentfeatures> + + <interface + name="position" + repid="IDL:HUDisplay/position:1.0"> + </interface> + +</corbacomponent> diff --git a/TAO/CIAO/examples/Display/GPS/GPS_exec.cpp b/TAO/CIAO/examples/Display/GPS/GPS_exec.cpp index 5399dbfbce3..e19fb3aa7a6 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS_exec.cpp +++ b/TAO/CIAO/examples/Display/GPS/GPS_exec.cpp @@ -1,6 +1,5 @@ // $Id$ - #include "GPS_exec.h" #include "CIAO_common.h" @@ -8,6 +7,22 @@ #define DISPLACEMENT 256 +// Operations from HUDisplay::position +CORBA::Long +MyImpl::Position_Impl::posx (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return component_.posx(); +} + +CORBA::Long +MyImpl::Position_Impl::posy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + return component_.posy(); +} + + /// Default constructor. MyImpl::GPS_exec_i::GPS_exec_i () { @@ -22,19 +37,23 @@ MyImpl::GPS_exec_i::~GPS_exec_i () } // Operations from HUDisplay::GPS - -HUDisplay::CCM_position_ptr -MyImpl::GPS_exec_i::get_MyLocation (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - ACE_THROW_SPEC ((CORBA::SystemException)) -{ - return HUDisplay::CCM_position::_duplicate (this); -} + HUDisplay::CCM_position_ptr + MyImpl::GPS_exec_i::get_MyLocation (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { +// ACE_DEBUG ((LM_DEBUG, +// "GPS_exec::get_MyLocation called\n ")); + return (new Position_Impl (*this)); + } void MyImpl::GPS_exec_i::push_Refresh (HUDisplay::tick * ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("GPS: Received Refresh Event\n"))); + // Refresh position this->positionx_ += ACE_OS::rand () % DISPLACEMENT - (DISPLACEMENT/2); this->positiony_ += ACE_OS::rand () % DISPLACEMENT - (DISPLACEMENT/2); @@ -46,8 +65,6 @@ MyImpl::GPS_exec_i::push_Refresh (HUDisplay::tick * ACE_ENV_ARG_PARAMETER); } -// Operations from HUDisplay::position - CORBA::Long MyImpl::GPS_exec_i::posx (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException)) @@ -62,6 +79,7 @@ MyImpl::GPS_exec_i::posy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) return this->positiony_; } + // Operations from Components::SessionComponent void MyImpl::GPS_exec_i::set_session_context (Components::SessionContext_ptr ctx @@ -149,5 +167,5 @@ MyImpl::GPSHome_exec_i::create (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr createGPSHome_Impl (void) { - return new MyImpl::GPSHome_exec_i; + return new MyImpl::GPSHome_exec_i(); } diff --git a/TAO/CIAO/examples/Display/GPS/GPS_exec.h b/TAO/CIAO/examples/Display/GPS/GPS_exec.h index 9d0f20e441f..079176b7ce9 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS_exec.h +++ b/TAO/CIAO/examples/Display/GPS/GPS_exec.h @@ -1,135 +1,140 @@ -// $Id$ - /** * @file GPS_exec.h + * $Id$ + * Header file for the GPS component implementation. * - * Header file for the actual GPS and GPSHome component - * implementations. These classes are the implementations of local - * interfaces defined in GPSEI.idl. - * - * @author Nanbor Wang <nanbor@cse.wustl.edu> */ #ifndef GPS_EXEC_H #define GPS_EXEC_H -#include "GPSEIC.h" +#include "GPS_exec_export.h" +#include "GPSEC.h" +#include "CIAO_common.h" +#include "ace/OS_NS_time.h" #include "tao/LocalObject.h" -// The namespace name for the actual implementation classes doesn't -// really matter. Since there may be several different -// implementations for a component, they can very well be in different -// namespaces. +#define DISPLACEMENT 256 + namespace MyImpl { - /** + /** * @class GPS_exec_i * - * An example RateGen executor implementation class. + * GPS executor implementation class. */ class GPS_EXEC_Export GPS_exec_i : - public virtual HUDisplay::GPS_Exec, - // CIAO container implementation depends on correct reference - // counting of local interfaces, so we take a short cut to + public virtual CIDL_GPS_Impl::GPS_exec, public virtual TAO_Local_RefCounted_Object { + public: /// Default constructor. GPS_exec_i (); /// Default destructor. ~GPS_exec_i (); - + // Operations from HUDisplay::GPS - - virtual HUDisplay::CCM_position_ptr - get_MyLocation (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + HUDisplay::CCM_position_ptr get_MyLocation (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void - push_Refresh (HUDisplay::tick *ev - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + + void push_Refresh (HUDisplay::tick * ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)); // Operations from HUDisplay::position - - virtual CORBA::Long - posx (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + CORBA::Long posx (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException)); - virtual CORBA::Long - posy (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + CORBA::Long posy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException)); // Operations from Components::SessionComponent - - virtual void - set_session_context (Components::SessionContext_ptr ctx - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + void set_session_context (Components::SessionContext_ptr ctx + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); + Components::CCMException)); - virtual void - ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + void ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); + Components::CCMException)); - virtual void - ccm_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); - virtual void - ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + void ccm_activate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); + Components::CCMException)); - virtual void - ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + void ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); + Components::CCMException)); - virtual void - ccm_remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + void ccm_passivate (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); - protected: - CORBA::Long positionx_; - CORBA::Long positiony_; + Components::CCMException)); - /// Copmponent specific context + void ccm_remove (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::CCMException)); + + protected: + // Component specific context HUDisplay::CCM_GPS_Context_var context_; + + private: + CORBA::Long positionx_, positiony_; }; + /** * @class GPSHome_exec_i * * GPS home executor implementation class. */ - class GPS_EXEC_Export GPSHome_exec_i : + class GPS_EXEC_Export GPSHome_exec_i : public virtual HUDisplay::CCM_GPSHome, - public virtual TAO_Local_RefCounted_Object + public virtual TAO_Local_RefCounted_Object { public: /// Default ctor. GPSHome_exec_i (); - + /// Default dtor. ~GPSHome_exec_i (); - // Explicit home operations. - - // Implicit home operations. + // Explicit home operations +/* virtual ::Components::EnterpriseComponent_ptr */ +/* new_GPS (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) */ +/* ACE_THROW_SPEC ((CORBA::SystemException)); */ + // Implicit home operations virtual ::Components::EnterpriseComponent_ptr - create (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + create (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, - Components::CCMException)); + Components::CCMException)); + }; + + + class Position_Impl : public virtual HUDisplay::CCM_position, + public virtual TAO_Local_RefCounted_Object + { + public: + Position_Impl (GPS_exec_i& component) + : component_ (component) + { + } + + // Operations from HUDisplay::position + CORBA::Long posx (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)); + + CORBA::Long posy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)); + + private: + GPS_exec_i& component_; }; } -// Executor DLL entry point. CIAO's deployment and assembly framework -// invokes this function on the resulting DLL to get the home executor. extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr createGPSHome_Impl (void); diff --git a/TAO/CIAO/examples/Display/GPS/GPS_exec_export.h b/TAO/CIAO/examples/Display/GPS/GPS_exec_export.h index 6e1dfe6a693..0a8c3fdec7f 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS_exec_export.h +++ b/TAO/CIAO/examples/Display/GPS/GPS_exec_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (GPS_EXEC_HAS_DLL) +# define GPS_EXEC_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && GPS_EXEC_HAS_DLL */ + #if !defined (GPS_EXEC_HAS_DLL) # define GPS_EXEC_HAS_DLL 1 #endif /* ! GPS_EXEC_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/GPS/GPS_stub_export.h b/TAO/CIAO/examples/Display/GPS/GPS_stub_export.h index 6ebbafa1fac..814897bfc05 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS_stub_export.h +++ b/TAO/CIAO/examples/Display/GPS/GPS_stub_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (GPS_STUB_HAS_DLL) +# define GPS_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && GPS_STUB_HAS_DLL */ + #if !defined (GPS_STUB_HAS_DLL) # define GPS_STUB_HAS_DLL 1 #endif /* ! GPS_STUB_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/GPS/GPS_svnt_export.h b/TAO/CIAO/examples/Display/GPS/GPS_svnt_export.h index 31ae8d540db..d601c703018 100644 --- a/TAO/CIAO/examples/Display/GPS/GPS_svnt_export.h +++ b/TAO/CIAO/examples/Display/GPS/GPS_svnt_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (GPS_SVNT_HAS_DLL) +# define GPS_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && GPS_SVNT_HAS_DLL */ + #if !defined (GPS_SVNT_HAS_DLL) # define GPS_SVNT_HAS_DLL 1 #endif /* ! GPS_SVNT_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/HUDisplay.mpc b/TAO/CIAO/examples/Display/HUDisplay.mpc deleted file mode 100644 index 41e3dbc1ab1..00000000000 --- a/TAO/CIAO/examples/Display/HUDisplay.mpc +++ /dev/null @@ -1,41 +0,0 @@ -// $Id$ -// This file is generated with "generate_component_mpc.pl -n HUDisplay" - -project(HUDisplay_DnC_stub): ciao_events_base_dnc { - - sharedname = HUDisplay_DnC_stub - idlflags += -Wb,stub_export_macro=HUDISPLAY_STUB_Export -Wb,stub_export_include=HUDisplay_stub_export.h -Wb,skel_export_macro=HUDISPLAY_SVNT_Export -Wb,skel_export_include=HUDisplay_svnt_export.h - dynamicflags = HUDISPLAY_STUB_BUILD_DLL - - IDL_Files { - HUDisplay.idl - } - - Source_Files { - HUDisplayC.cpp - } -} - -project(HUDisplay_DnC_svnt) : ciao_servant_dnc { - after += HUDisplay_DnC_stub - sharedname = HUDisplay_DnC_svnt - libs += HUDisplay_DnC_stub - - //idlflags += -Wb,export_macro=HUDISPLAY_SVNT_Export -Wb,export_include=HUDisplay_svnt_export.h - - idlflags += -Wb,stub_export_macro=HUDISPLAY_STUB_Export -Wb,stub_export_include=HUDisplay_stub_export.h -Wb,skel_export_macro=HUDISPLAY_SVNT_Export -Wb,skel_export_include=HUDisplay_svnt_export.h - - dynamicflags = HUDISPLAY_SVNT_BUILD_DLL - - - - Source_Files { - - HUDisplayS.cpp - - } -} - - - - diff --git a/TAO/CIAO/examples/Display/HUDisplay_stub_export.h b/TAO/CIAO/examples/Display/HUDisplay_stub_export.h deleted file mode 100644 index 466b9ca727b..00000000000 --- a/TAO/CIAO/examples/Display/HUDisplay_stub_export.h +++ /dev/null @@ -1,54 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl HUDISPLAY_STUB -// ------------------------------ -#ifndef HUDISPLAY_STUB_EXPORT_H -#define HUDISPLAY_STUB_EXPORT_H - -#include "ace/config-all.h" - -#if !defined (HUDISPLAY_STUB_HAS_DLL) -# define HUDISPLAY_STUB_HAS_DLL 1 -#endif /* ! HUDISPLAY_STUB_HAS_DLL */ - -#if defined (HUDISPLAY_STUB_HAS_DLL) && (HUDISPLAY_STUB_HAS_DLL == 1) -# if defined (HUDISPLAY_STUB_BUILD_DLL) -# define HUDISPLAY_STUB_Export ACE_Proper_Export_Flag -# define HUDISPLAY_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define HUDISPLAY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* HUDISPLAY_STUB_BUILD_DLL */ -# define HUDISPLAY_STUB_Export ACE_Proper_Import_Flag -# define HUDISPLAY_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define HUDISPLAY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* HUDISPLAY_STUB_BUILD_DLL */ -#else /* HUDISPLAY_STUB_HAS_DLL == 1 */ -# define HUDISPLAY_STUB_Export -# define HUDISPLAY_STUB_SINGLETON_DECLARATION(T) -# define HUDISPLAY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* HUDISPLAY_STUB_HAS_DLL == 1 */ - -// Set HUDISPLAY_STUB_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (HUDISPLAY_STUB_NTRACE) -# if (ACE_NTRACE == 1) -# define HUDISPLAY_STUB_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define HUDISPLAY_STUB_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !HUDISPLAY_STUB_NTRACE */ - -#if (HUDISPLAY_STUB_NTRACE == 1) -# define HUDISPLAY_STUB_TRACE(X) -#else /* (HUDISPLAY_STUB_NTRACE == 1) */ -# if !defined (ACE_HAS_TRACE) -# define ACE_HAS_TRACE -# endif /* ACE_HAS_TRACE */ -# define HUDISPLAY_STUB_TRACE(X) ACE_TRACE_IMPL(X) -# include "ace/Trace.h" -#endif /* (HUDISPLAY_STUB_NTRACE == 1) */ - -#endif /* HUDISPLAY_STUB_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/CIAO/examples/Display/HUDisplay_svnt_export.h b/TAO/CIAO/examples/Display/HUDisplay_svnt_export.h deleted file mode 100644 index 5c749ea51de..00000000000 --- a/TAO/CIAO/examples/Display/HUDisplay_svnt_export.h +++ /dev/null @@ -1,54 +0,0 @@ - -// -*- C++ -*- -// $Id$ -// Definition for Win32 Export directives. -// This file is generated automatically by generate_export_file.pl HUDISPLAY_SVNT -// ------------------------------ -#ifndef HUDISPLAY_SVNT_EXPORT_H -#define HUDISPLAY_SVNT_EXPORT_H - -#include "ace/config-all.h" - -#if !defined (HUDISPLAY_SVNT_HAS_DLL) -# define HUDISPLAY_SVNT_HAS_DLL 1 -#endif /* ! HUDISPLAY_SVNT_HAS_DLL */ - -#if defined (HUDISPLAY_SVNT_HAS_DLL) && (HUDISPLAY_SVNT_HAS_DLL == 1) -# if defined (HUDISPLAY_SVNT_BUILD_DLL) -# define HUDISPLAY_SVNT_Export ACE_Proper_Export_Flag -# define HUDISPLAY_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define HUDISPLAY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# else /* HUDISPLAY_SVNT_BUILD_DLL */ -# define HUDISPLAY_SVNT_Export ACE_Proper_Import_Flag -# define HUDISPLAY_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define HUDISPLAY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -# endif /* HUDISPLAY_SVNT_BUILD_DLL */ -#else /* HUDISPLAY_SVNT_HAS_DLL == 1 */ -# define HUDISPLAY_SVNT_Export -# define HUDISPLAY_SVNT_SINGLETON_DECLARATION(T) -# define HUDISPLAY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) -#endif /* HUDISPLAY_SVNT_HAS_DLL == 1 */ - -// Set HUDISPLAY_SVNT_NTRACE = 0 to turn on library specific tracing even if -// tracing is turned off for ACE. -#if !defined (HUDISPLAY_SVNT_NTRACE) -# if (ACE_NTRACE == 1) -# define HUDISPLAY_SVNT_NTRACE 1 -# else /* (ACE_NTRACE == 1) */ -# define HUDISPLAY_SVNT_NTRACE 0 -# endif /* (ACE_NTRACE == 1) */ -#endif /* !HUDISPLAY_SVNT_NTRACE */ - -#if (HUDISPLAY_SVNT_NTRACE == 1) -# define HUDISPLAY_SVNT_TRACE(X) -#else /* (HUDISPLAY_SVNT_NTRACE == 1) */ -# if !defined (ACE_HAS_TRACE) -# define ACE_HAS_TRACE -# endif /* ACE_HAS_TRACE */ -# define HUDISPLAY_SVNT_TRACE(X) ACE_TRACE_IMPL(X) -# include "ace/Trace.h" -#endif /* (HUDISPLAY_SVNT_NTRACE == 1) */ - -#endif /* HUDISPLAY_SVNT_EXPORT_H */ - -// End of auto generated file. diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.idl b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.idl index 6cc554d2d45..a786f7f9d06 100644 --- a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.idl +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.idl @@ -11,7 +11,7 @@ #ifndef NAVDISPLAY_IDL #define NAVDISPLAY_IDL -#include "../HUDisplay.idl" +#include "../Display_Base/Display_Base.idl" module HUDisplay { diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.mpc b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.mpc index 3addb40ebee..a205484c8aa 100644 --- a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.mpc +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay.mpc @@ -1,13 +1,12 @@ // $Id$ -// This file is generated with "generate_component_mpc.pl -p HUDisplay NavDisplay" +// This file is generated with "generate_component_mpc.pl -p Display_Base NavDisplay" -project(NavDisplay_DnC_stub): ciao_events_base_dnc { - avoids += ace_for_tao - after += HUDisplay_DnC_stub - sharedname = NavDisplay_DnC_stub +project(Display_Base_NavDisplay_stub): ciao_client_dnc { + after += Display_Base_stub + sharedname = NavDisplay_stub idlflags += -Wb,stub_export_macro=NAVDISPLAY_STUB_Export -Wb,stub_export_include=NavDisplay_stub_export.h -Wb,skel_export_macro=NAVDISPLAY_SVNT_Export -Wb,skel_export_include=NavDisplay_svnt_export.h dynamicflags = NAVDISPLAY_STUB_BUILD_DLL - libs += HUDisplay_DnC_stub + IDL_Files { NavDisplay.idl } @@ -17,11 +16,10 @@ project(NavDisplay_DnC_stub): ciao_events_base_dnc { } } -project(NavDisplay_DnC_svnt) : ciao_servant_dnc { - avoids += ace_for_tao - after += HUDisplay_DnC_svnt NavDisplay_DnC_stub - sharedname = NavDisplay_DnC_svnt - libs += NavDisplay_DnC_stub HUDisplay_DnC_stub HUDisplay_DnC_svnt +project(Display_Base_NavDisplay_svnt) : ciao_servant_dnc { + after += Display_Base_svnt Display_Base_NavDisplay_stub + sharedname = NavDisplay_svnt + libs += NavDisplay_stub Display_Base_stub Display_Base_svnt idlflags += -Wb,export_macro=NAVDISPLAY_SVNT_Export -Wb,export_include=NavDisplay_svnt_export.h dynamicflags = NAVDISPLAY_SVNT_BUILD_DLL @@ -42,21 +40,20 @@ project(NavDisplay_DnC_svnt) : ciao_servant_dnc { } -project(NavDisplay_DnC_exec) : ciao_component_dnc { - avoids += ace_for_tao - after += NavDisplay_DnC_svnt - sharedname = NavDisplay_DnC_exec - libs += NavDisplay_DnC_stub NavDisplay_DnC_svnt HUDisplay_DnC_stub HUDisplay_DnC_svnt - libpaths += .. +project(Display_Base_NavDisplay_exec) : ciao_component_dnc { + after += Display_Base_NavDisplay_svnt + sharedname = NavDisplay_exec + libs += NavDisplay_stub NavDisplay_svnt Display_Base_stub Display_Base_svnt + idlflags += -Wb,export_macro=NAVDISPLAY_EXEC_Export -Wb,export_include=NavDisplay_exec_export.h dynamicflags = NAVDISPLAY_EXEC_BUILD_DLL IDL_Files { - + } Source_Files { - + NavDisplay_exec.cpp } } diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_Impl.ccd b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_Impl.ccd new file mode 100644 index 00000000000..48446deac99 --- /dev/null +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_Impl.ccd @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<!DOCTYPE corbacomponent SYSTEM "corbacomponent.dtd"> + +<corbacomponent> + <corbaversion>3.0</corbaversion> + <componentrepid repid="IDL:HUDisplay/NavDisplay:1.0"/> + <homerepid repid="IDL:HUDisplay/NavDisplayHome:1.0"/> + <componentkind> + <session> + <servant lifetime="container"/> + </session> + </componentkind> + <threading policy="multithread"/> + <configurationcomplete set="true"/> + + <homefeatures + name="NavDisplayHome" + repid="IDL:HUDisplay/NavDisplayHome:1.0"> + </homefeatures> + + <componentfeatures + name="NavDisplay" + repid="IDL:HUDisplay/NavDisplay:1.0"> + <ports> + <consumes + consumesname="Refresh" + eventtype="IDL:HUDisplay/tick:1.0"> + <eventpolicy policy="normal"/> + </consumes> + <uses + usesname="GPSLocation" + repid="IDL:HUDisplay/position:1.0"> + </uses> + </ports> + </componentfeatures> + + <interface + name="position" + repid="IDL:HUDisplay/position:1.0"> + </interface> + +</corbacomponent> diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp index fec6505390d..e1fb5af0e48 100644 --- a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp @@ -22,6 +22,9 @@ MyImpl::NavDisplay_exec_impl::push_Refresh (HUDisplay::tick *ev { ACE_UNUSED_ARG (ev); +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("NAVDISPLAY: Received Refresh Event\n"))); + // Refresh position HUDisplay::position_var loc = this->context_->get_connection_GPSLocation (ACE_ENV_SINGLE_ARG_PARAMETER); @@ -38,7 +41,7 @@ MyImpl::NavDisplay_exec_impl::push_Refresh (HUDisplay::tick *ev CORBA::Long y = loc->posy (ACE_ENV_SINGLE_ARG_PARAMETER) % 300; ACE_CHECK; - ACE_DEBUG ((LM_DEBUG, "DISPLAY: Current Location is: (%d, %d)\n", + ACE_DEBUG ((LM_DEBUG, "NAVDISPLAY: Current Location is: (%d, %d)\n", x, y)); } diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec_export.h b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec_export.h index e190924be02..aec244fc913 100644 --- a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec_export.h +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_exec_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (NAVDISPLAY_EXEC_HAS_DLL) +# define NAVDISPLAY_EXEC_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && NAVDISPLAY_EXEC_HAS_DLL */ + #if !defined (NAVDISPLAY_EXEC_HAS_DLL) # define NAVDISPLAY_EXEC_HAS_DLL 1 #endif /* ! NAVDISPLAY_EXEC_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_stub_export.h b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_stub_export.h index 36a191e7915..957975fb857 100644 --- a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_stub_export.h +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_stub_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (NAVDISPLAY_STUB_HAS_DLL) +# define NAVDISPLAY_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && NAVDISPLAY_STUB_HAS_DLL */ + #if !defined (NAVDISPLAY_STUB_HAS_DLL) # define NAVDISPLAY_STUB_HAS_DLL 1 #endif /* ! NAVDISPLAY_STUB_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_svnt_export.h b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_svnt_export.h index bd45e862598..752b31a8ac8 100644 --- a/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_svnt_export.h +++ b/TAO/CIAO/examples/Display/NavDisplay/NavDisplay_svnt_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (NAVDISPLAY_SVNT_HAS_DLL) +# define NAVDISPLAY_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && NAVDISPLAY_SVNT_HAS_DLL */ + #if !defined (NAVDISPLAY_SVNT_HAS_DLL) # define NAVDISPLAY_SVNT_HAS_DLL 1 #endif /* ! NAVDISPLAY_SVNT_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen.cidl b/TAO/CIAO/examples/Display/RateGen/RateGen.cidl index f25875f59b4..2af0e155a84 100644 --- a/TAO/CIAO/examples/Display/RateGen/RateGen.cidl +++ b/TAO/CIAO/examples/Display/RateGen/RateGen.cidl @@ -1,5 +1,8 @@ // $Id$ -*- IDL -*- +#ifndef RATEGEN_CIDL +#define RATEGEN_CIDL + #include "RateGen.idl" composition session RateGen_Impl @@ -10,3 +13,5 @@ composition session RateGen_Impl manages RateGen_exec; }; }; + +#endif /* RATEGEN_CIDL */ diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen.idl b/TAO/CIAO/examples/Display/RateGen/RateGen.idl index e5ec2552762..ef398f5df78 100644 --- a/TAO/CIAO/examples/Display/RateGen/RateGen.idl +++ b/TAO/CIAO/examples/Display/RateGen/RateGen.idl @@ -11,7 +11,7 @@ #ifndef RATEGEN_IDL #define RATEGEN_IDL -#include "../HUDisplay.idl" +#include "../Display_Base/Display_Base.idl" module HUDisplay { diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen.mpc b/TAO/CIAO/examples/Display/RateGen/RateGen.mpc index e0cd424393e..14db1c176cd 100644 --- a/TAO/CIAO/examples/Display/RateGen/RateGen.mpc +++ b/TAO/CIAO/examples/Display/RateGen/RateGen.mpc @@ -1,13 +1,13 @@ // $Id$ -// This file is generated with "generate_component_mpc.pl -p HUDisplay RateGen" +// This file is generated with "generate_component_mpc.pl -p Display_Base RateGen" -project(RateGen_DnC_stub): ciao_events_base_dnc { - avoids += ace_for_tao - after += HUDisplay_DnC_stub - sharedname = RateGen_DnC_stub +project(Display_Base_RateGen_stub): ciao_client_dnc { + after += Display_Base_stub + sharedname = RateGen_stub idlflags += -Wb,stub_export_macro=RATEGEN_STUB_Export -Wb,stub_export_include=RateGen_stub_export.h -Wb,skel_export_macro=RATEGEN_SVNT_Export -Wb,skel_export_include=RateGen_svnt_export.h dynamicflags = RATEGEN_STUB_BUILD_DLL - libs += HUDisplay_DnC_stub + libs += Display_Base_stub + IDL_Files { RateGen.idl } @@ -17,12 +17,11 @@ project(RateGen_DnC_stub): ciao_events_base_dnc { } } -project(RateGen_DnC_svnt) : ciao_servant_dnc { - avoids += ace_for_tao - after += HUDisplay_DnC_svnt RateGen_DnC_stub - sharedname = RateGen_DnC_svnt - libs += RateGen_DnC_stub HUDisplay_DnC_stub HUDisplay_DnC_svnt - libpaths += .. +project(Display_Base_RateGen_svnt) : ciao_servant_dnc { + after += Display_Base_svnt Display_Base_RateGen_stub + sharedname = RateGen_svnt + libs += RateGen_stub Display_Base_stub Display_Base_svnt + idlflags += -Wb,export_macro=RATEGEN_SVNT_Export -Wb,export_include=RateGen_svnt_export.h dynamicflags = RATEGEN_SVNT_BUILD_DLL @@ -42,41 +41,35 @@ project(RateGen_DnC_svnt) : ciao_servant_dnc { } -project(RateGen_DnC_exec) : ciao_component_dnc { - avoids += ace_for_tao - after += RateGen_DnC_svnt - sharedname = RateGen_DnC_exec - libs += RateGen_DnC_stub RateGen_DnC_svnt HUDisplay_DnC_stub HUDisplay_DnC_svnt - libpaths += .. +project(Display_Base_RateGen_exec) : ciao_component_dnc { + after += Display_Base_RateGen_svnt + sharedname = RateGen_exec + libs += RateGen_stub RateGen_svnt Display_Base_stub Display_Base_svnt + idlflags += -Wb,export_macro=RATEGEN_EXEC_Export -Wb,export_include=RateGen_exec_export.h dynamicflags = RATEGEN_EXEC_BUILD_DLL IDL_Files { - + } Source_Files { - + RateGen_exec.cpp } } - project (RateGen_DnC_controller) : ciao_client_dnc, valuetype { - avoids += ace_for_tao - exename = controller - after += RateGen_DnC_stub - libs += RateGen_DnC_stub HUDisplay_DnC_stub - libpaths += .. + exename = controller + after += RateGen_stub + libs += RateGen_stub Display_Base_stub + libpaths += ../Display_Base - IDL_Files { - } + IDL_Files { + } Source_Files { - controller.cpp + controller.cpp } } - - - diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen_Impl.ccd b/TAO/CIAO/examples/Display/RateGen/RateGen_Impl.ccd new file mode 100644 index 00000000000..f760574872d --- /dev/null +++ b/TAO/CIAO/examples/Display/RateGen/RateGen_Impl.ccd @@ -0,0 +1,39 @@ +<?xml version="1.0"?> +<!DOCTYPE corbacomponent SYSTEM "corbacomponent.dtd"> + +<corbacomponent> + <corbaversion>3.0</corbaversion> + <componentrepid repid="IDL:HUDisplay/RateGen:1.0"/> + <homerepid repid="IDL:HUDisplay/RateGenHome:1.0"/> + <componentkind> + <session> + <servant lifetime="container"/> + </session> + </componentkind> + <threading policy="multithread"/> + <configurationcomplete set="true"/> + + <homefeatures + name="RateGenHome" + repid="IDL:HUDisplay/RateGenHome:1.0"> + </homefeatures> + + <componentfeatures + name="RateGen" + repid="IDL:HUDisplay/RateGen:1.0"> + <supportsinterface repid="IDL:HUDisplay/opmode:1.0"/> + <ports> + <publishes + publishesname="Pulse" + eventtype="IDL:HUDisplay/tick:1.0"> + <eventpolicy policy="normal"/> + </publishes> + </ports> + </componentfeatures> + + <interface + name="opmode" + repid="IDL:HUDisplay/opmode:1.0"> + </interface> + +</corbacomponent> diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen_exec.cpp b/TAO/CIAO/examples/Display/RateGen/RateGen_exec.cpp index a79c4d0a3b1..a5a27833490 100644 --- a/TAO/CIAO/examples/Display/RateGen/RateGen_exec.cpp +++ b/TAO/CIAO/examples/Display/RateGen/RateGen_exec.cpp @@ -283,11 +283,11 @@ MyImpl::RateGen_exec_i::pulse (void) { ACE_TRY_NEW_ENV { - if (CIAO::debug_level () > 0) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("Pushing HUDisplay::tick event!\n"))); - } +// if (CIAO::debug_level () > 0) +// { +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("Pushing HUDisplay::tick event!\n"))); +// } HUDisplay::tick_var ev = new OBV_HUDisplay::tick (); diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen_stub_export.h b/TAO/CIAO/examples/Display/RateGen/RateGen_stub_export.h index cfac37a064b..d71c4f10a12 100644 --- a/TAO/CIAO/examples/Display/RateGen/RateGen_stub_export.h +++ b/TAO/CIAO/examples/Display/RateGen/RateGen_stub_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (RATEGEN_STUB_HAS_DLL) +# define RATEGEN_STUB_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RATEGEN_STUB_HAS_DLL */ + #if !defined (RATEGEN_STUB_HAS_DLL) # define RATEGEN_STUB_HAS_DLL 1 #endif /* ! RATEGEN_STUB_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/RateGen/RateGen_svnt_export.h b/TAO/CIAO/examples/Display/RateGen/RateGen_svnt_export.h index b117944836f..d2b10477fab 100644 --- a/TAO/CIAO/examples/Display/RateGen/RateGen_svnt_export.h +++ b/TAO/CIAO/examples/Display/RateGen/RateGen_svnt_export.h @@ -9,6 +9,10 @@ #include "ace/config-all.h" +#if defined (ACE_AS_STATIC_LIBS) && !defined (RATEGEN_SVNT_HAS_DLL) +# define RATEGEN_SVNT_HAS_DLL 0 +#endif /* ACE_AS_STATIC_LIBS && RATEGEN_SVNT_HAS_DLL */ + #if !defined (RATEGEN_SVNT_HAS_DLL) # define RATEGEN_SVNT_HAS_DLL 1 #endif /* ! RATEGEN_SVNT_HAS_DLL */ diff --git a/TAO/CIAO/examples/Display/RateGen/controller.cpp b/TAO/CIAO/examples/Display/RateGen/controller.cpp index f90ee66e797..d28f92dac5e 100644 --- a/TAO/CIAO/examples/Display/RateGen/controller.cpp +++ b/TAO/CIAO/examples/Display/RateGen/controller.cpp @@ -44,7 +44,7 @@ parse_args (int argc, char *argv[]) "usage: %s\n" "-o (Turn on the rate generator)\n" "-f (Turn off the rate generator)\n" - "-k <RateGen IOR> (default is file://rategen.ior)\n" + "-k <RateGen IOR> (default is file://RateGen.ior)\n" "-r <rate in hertz> (default is 3)\n" "\n", argv [0]), diff --git a/TAO/CIAO/examples/Display/descriptors/DeploymentPlan.cdp b/TAO/CIAO/examples/Display/descriptors/DeploymentPlan.cdp new file mode 100644 index 00000000000..2ebfcbc5f3a --- /dev/null +++ b/TAO/CIAO/examples/Display/descriptors/DeploymentPlan.cdp @@ -0,0 +1,26 @@ +<?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 Deployment.xsd"> + + <label>Display Deployment Plan</label> + + <instance xmi:id="RateGen_Instance"> + <name>RateGen_Instance</name> + <node>RateGenNode</node> + </instance> + + <instance xmi:id="GPS_Instance"> + <name>GPS_Instance</name> + <node>GPSNode</node> + </instance> + + <instance xmi:id="NavDisplay_Instance"> + <name>NavDisplay_Instance</name> + <node>NavDisplayNode</node> + </instance> + +</Deployment:DeploymentPlan> diff --git a/TAO/CIAO/examples/Display/descriptors/Modified_Deployment.xsd b/TAO/CIAO/examples/Display/descriptors/Modified_Deployment.xsd new file mode 100644 index 00000000000..65f5eb81d1e --- /dev/null +++ b/TAO/CIAO/examples/Display/descriptors/Modified_Deployment.xsd @@ -0,0 +1,826 @@ +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd" + xmlns:Deployment="http://www.omg.org/Deployment" + targetNamespace="http://www.omg.org/Deployment"> + + + <xsd:simpleType name="TCKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="tk_null"/> + <xsd:enumeration value="tk_void"/> + <xsd:enumeration value="tk_short"/> + <xsd:enumeration value="tk_long"/> + <xsd:enumeration value="tk_ushort"/> + <xsd:enumeration value="tk_ulong"/> + <xsd:enumeration value="tk_float"/> + <xsd:enumeration value="tk_double"/> + <xsd:enumeration value="tk_boolean"/> + <xsd:enumeration value="tk_char"/> + <xsd:enumeration value="tk_octet"/> + <xsd:enumeration value="tk_any"/> + <xsd:enumeration value="tk_TypeCode"/> + <xsd:enumeration value="tk_Principal"/> + <xsd:enumeration value="tk_objref"/> + <xsd:enumeration value="tk_struct"/> + <xsd:enumeration value="tk_union"/> + <xsd:enumeration value="tk_enum"/> + <xsd:enumeration value="tk_string"/> + <xsd:enumeration value="tk_sequence"/> + <xsd:enumeration value="tk_array"/> + <xsd:enumeration value="tk_alias"/> + <xsd:enumeration value="tk_except"/> + <xsd:enumeration value="tk_longlong"/> + <xsd:enumeration value="tk_ulonglong"/> + <xsd:enumeration value="tk_longdouble"/> + <xsd:enumeration value="tk_wchar"/> + <xsd:enumeration value="tk_wstring"/> + <xsd:enumeration value="tk_wfixed"/> + <xsd:enumeration value="tk_value"/> + <xsd:enumeration value="tk_value_box"/> + <xsd:enumeration value="tk_native"/> + <xsd:enumeration value="tk_abstract_interface"/> + <xsd:enumeration value="tk_local_interface"/> + <xsd:enumeration value="tk_component"/> + <xsd:enumeration value="tk_home"/> + <xsd:enumeration value="tk_event"/> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="DataType"> + <xsd:choice> + <xsd:element name="kind" type="Deployment:TCKind"/> +<!-- +@@ not used, what for? + + <xsd:element name="enum" type="Deployment:EnumType"/> + <xsd:element name="objref" type="Deployment:ObjrefType"/> + <xsd:element name="boundedString" type="Deployment:BoundedStringType"/> + <xsd:element name="fixed" type="Deployment:FixedType"/> + <xsd:element name="array" type="Deployment:ArrayType"/> + <xsd:element name="sequence" type="Deployment:SequenceType"/> + <xsd:element name="alias" type="Deployment:AliasType"/> + <xsd:element name="struct" type="Deployment:StructType"/> + <xsd:element name="value" type="Deployment:ValueType"/> + <xsd:element name="union" type="Deployment:UnionType"/> +--> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="DataValue"> + <xsd:choice> + <xsd:element name="short" type="xsd:short"/> + <xsd:element name="long" type="xsd:int"/> + <xsd:element name="ushort" type="xsd:unsignedShort"/> + <xsd:element name="ulong" type="xsd:unsignedInt"/> + <xsd:element name="float" type="xsd:float"/> + <xsd:element name="double" type="xsd:double"/> + <xsd:element name="boolean" type="xsd:boolean"/> + <xsd:element name="octet" type="xsd:unsignedByte"/> + <!-- xsd:element name="opaque" type="xsd:base64Binary"/ --> + <xsd:element name="objref" type="xsd:string"/> + <xsd:element name="enum" type="xsd:string"/> + <xsd:element name="string" type="xsd:string"/> + <xsd:element name="longlong" type="xsd:long"/> + <xsd:element name="ulonglong" type="xsd:unsignedLong"/> + <xsd:element name="longdouble" type="xsd:double"/> + <xsd:element name="fixed" type="xsd:string"/> + +<!-- +@@ recursive + <xsd:element name="any" type="Deployment:Any"/> +--> + + <xsd:element name="typecode" type="Deployment:DataType"/> + +<!-- +@@ recursive + <xsd:element name="element" type="Deployment:DataValue"/> + <xsd:element name="discriminator" type="Deployment:DataValue"/> + <xsd:element name="value" type="Deployment:DataValue"/> + <xsd:element name="boxedValue" type="Deployment:DataValue"/> + <xsd:element name="member" type="Deployment:NamedValue"/> +--> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="Any"> + <xsd:sequence> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Property"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- End of base definitions. --> + + <xsd:complexType name="Node"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> +<!-- +@@ recursive, not used + <xsd:element name="connection" type="Deployment:Interconnect"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="resource" type="Deployment:Resource"/> +--> + </xsd:sequence> + </xsd:complexType> + + + <xsd:simpleType name="SatisfierPropertyKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="Quantity"/> + <xsd:enumeration value="Capacity"/> + <xsd:enumeration value="Minimum"/> + <xsd:enumeration value="Maximum"/> + <xsd:enumeration value="Attribute"/> + <xsd:enumeration value="Selection"/> + </xsd:restriction> + </xsd:simpleType> + + + <xsd:complexType name="SatisfierProperty"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Resource"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SharedResource"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="node" type="Deployment:Node"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Domain"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0"/> + <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/> +<!-- +@@ recursive, not used + <xsd:element name="interconnect" type="Deployment:Interconnect"/> + <xsd:element name="bridge" type="Deployment:Bridge"/> +--> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Requirement"> + <xsd:sequence> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- Deployment --> + + <xsd:complexType name="ResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ArtifactDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="node" type="xsd:string" minOccurs="0"/> + <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:complexType name="MonolithicDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="artifact" type="xsd:IDREF" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription --> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + <xsd:simpleType name="ResourceUsageKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="None"/> + <xsd:enumeration value="InstanceUsesResource"/> + <xsd:enumeration value="ResourceUsesInstance"/> + <xsd:enumeration value="PortUsesResource"/> + <xsd:enumeration value="ResourceUsesPort"/> + </xsd:restriction> + </xsd:simpleType> + + + <xsd:complexType name="InstanceResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="InstanceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="node" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="implementation" type="xsd:IDREF"/> <!-- MonolithicDeploymentDescription --> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/> + <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:simpleType name="CCMComponentPortKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="Facet"/> + <xsd:enumeration value="SimplexReceptacle"/> + <xsd:enumeration value="MultiplexReceptacle"/> + <xsd:enumeration value="EventEmitter"/> + <xsd:enumeration value="EventPublisher"/> + <xsd:enumeration value="EventConsumer"/> + </xsd:restriction> + </xsd:simpleType> + + + <xsd:complexType name="ComponentPortDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string"/> + <xsd:element name="exclusiveProvider" type="xsd:string"/> + <xsd:element name="exclusiveUser" type="xsd:string"/> + <xsd:element name="optional" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentPropertyDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentInterfaceDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string" maxOccurs="unbounded" /> + <xsd:element name="idlFile" type="xsd:string" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="port" type="Deployment:ComponentPortDescription" maxOccurs="unbounded"/> + <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added a href attribute + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + + <xsd:complexType name="ComponentExternalPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PlanSubcomponentPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string" minOccurs="0"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + <xsd:element name="instance" type="xsd:IDREF"/> <!-- InstanceDeploymentDescription --> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ExternalReferenceEndpoint"> + <xsd:sequence> + <xsd:element name="location" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ConnectionResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="targetName" type="xsd:string"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PlanConnectionDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ImplementationDependency"> + <xsd:sequence> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="DeploymentPlan"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string" minOccurs="0"/> + <xsd:element name="UUID" type="xsd:string" minOccurs="0"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" maxOccurs="1"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded" /> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/> + <!-- potentially recursive, not used + <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/> + --> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + + + +<!-- Implementation --> + + + <xsd:complexType name="Capability"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="NamedImplementationArtifact"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <!-- @@ recursive NIA->IAD->NIA --> + <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ImplementationArtifactDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="1" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + + <!-- @@ There probably should be only one location? --> + <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added a href attribute + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + + <xsd:complexType name="ImplementationRequirement"> + <xsd:sequence> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="resourcePort" type="xsd:string"/> + <xsd:element name="componentPort" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="MonolithicImplementationDescription"> + <xsd:sequence> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/> + <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PackagedComponentImplementation"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD --> + <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentPackageDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="1" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added href + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + + <xsd:complexType name="ComponentPackageReference"> + <xsd:sequence> + <xsd:element name="requiredUUID" type="xsd:string"/> + <xsd:element name="requiredName" type="xsd:string"/> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentInstantiationDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="package" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="instance" type="xsd:IDREF"/> <!-- SubcomponentInstantiationDescription --> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="AssemblyConnectionDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentPropertyReference"> + <xsd:sequence> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="AssemblyPropertyMapping"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentAssemblyDescription"> + <xsd:sequence> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" maxOccurs="unbounded"/> + <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentImplementationDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:choice> + <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/> + <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/> + </xsd:choice> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="capability" type="Deployment:Capability" minOccurs="0"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added href + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + +<!-- Package --> + + + <xsd:complexType name="PackageConfiguration"> + <xsd:choice> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> +<!-- +@@ recursive, not used + <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/> +--> + + <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="TopLevelPackageDescription"> + <xsd:sequence> + <xsd:element name="package" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- Top-level elements. --> + + + <xsd:element name="domain" type="Deployment:Domain"/> + <xsd:element name="deploymentPlan" type="Deployment:DeploymentPlan"/> + <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" /> + <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/> + <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/> + <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/> + + + +<!-- VAULT + +Place for strange things. Nobody knows what they are for... + +--> + +<!-- + + <xsd:complexType name="EnumType"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="ObjrefType"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="BoundedStringType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="FixedType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="digits" type="xsd:string"/> + <xsd:element name="scale" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="ArrayType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="length" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="SequenceType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="AliasType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="StructType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="Deployment:StructMemberType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="StructMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="ValueType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="modifier" type="xsd:string"/> + <xsd:element name="baseType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:ValueMemberType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="ValueMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="visibility" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="UnionType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="default" type="Deployment:UnionMemberType"/> + <xsd:element name="discriminatorType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:UnionMemberType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="UnionMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="label" type="Deployment:DataValue"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="NamedValue"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="Bridge"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connect" type="Deployment:Interconnect"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="Interconnect"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connection" type="Deployment:Bridge"/> + <xsd:element name="connect" type="Deployment:Node"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="PlanPropertyMapping"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="PlanSubcomponentPropertyReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + </xsd:choice> + </xsd:complexType> + +--> + +<!-- + + This type is not referenced anywhere. + + <xsd:complexType name="RequirementSatisfier"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + </xsd:complexType> + +--> + +</xsd:schema> diff --git a/TAO/CIAO/examples/Display/descriptors/NodeManagerMap.dat b/TAO/CIAO/examples/Display/descriptors/NodeManagerMap.dat index 0a27e77aa09..b63a105a133 100644 --- a/TAO/CIAO/examples/Display/descriptors/NodeManagerMap.dat +++ b/TAO/CIAO/examples/Display/descriptors/NodeManagerMap.dat @@ -1,2 +1,2 @@ -AirFrameDevice corbaloc:iiop:localhost:10000/NodeManager -TimerDevice corbaloc:iiop:localhost:20000/NodeManager +AirFrameDevice corbaloc:iiop:localhost:10001/NodeManager +TimerDevice corbaloc:iiop:localhost:20001/NodeManager diff --git a/TAO/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp b/TAO/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp index ddfd9a3ca37..dd1a70b51ec 100644 --- a/TAO/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp +++ b/TAO/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp @@ -5,44 +5,54 @@ xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> <label>Display-DeploymentPlan</label> - <UUID><!-- @@ fill in --> </UUID> + <UUID>Display_Plan_UUID_0001</UUID> <!-- Exactly one realizes This realizes section may also not be right. --> <realizes> <label>HUDisplay-realizes-cid</label> - <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID> + <UUID>4edb0436-da3f-450e-baed-79127c1405b2</UUID> <specificType><!-- @@ What does here? --></specificType> <supportedType>IDL:HUDisplay/RateGen:1.0</supportedType> <port> <name>Pulse</name> <specificType>IDL:HUDisplay/TimeOut:1.0</specificType> <supportedType>IDL:HUDisplay/TimeOut:1.0</supportedType> - <provider>false></provider> + <provider>false</provider> <exclusiveProvider>false</exclusiveProvider> <exclusiveUser>false</exclusiveUser> <optional>false</optional> <kind>EventPublisher</kind> </port> </realizes> + + + <implementation id="HUDisplay-RateGen-mdd"> <name>HUDisplay-RateGen-mdd</name> <source><!-- @@ Don't know what goes here --></source> - - <artifact>HUDisplay-RateGen_stub</artifact> <artifact>HUDisplay-RateGen_svnt</artifact> <artifact>HUDisplay-RateGen_exec</artifact> - <!-- <execParameter></execParameter> <deployRequirement></deployRequirement> --> </implementation> + <implementation id="HUDisplay-NavDisplay-mdd"> + <name>HUDisplay-NavDisplay-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>HUDisplay-NavDisplay_svnt</artifact> + <artifact>HUDisplay-NavDisplay_exec</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + <implementation id="HUDisplay-GPS-mdd"> <name>HUDisplay-GPS-mdd</name> <source><!-- @@ Don't know what goes here --></source> - <artifact>HUDisplay-GPS_stub</artifact> <artifact>HUDisplay-GPS_svnt</artifact> <artifact>HUDisplay-GPS_exec</artifact> <!-- @@ -52,26 +62,14 @@ </implementation> - - - <implementation id="HUDisplay-NavDisplayGUI-mdd"> - <name>HUDisplay-NavDisplayGUI-mdd</name> - <source><!-- @@ Don't know what goes here --></source> - <artifact>HUDisplay-NavDisplay_stub</artifact> - <artifact>HUDisplay-NavDisplay_svnt</artifact> - <artifact>HUDisplay-NavDisplayGUI_exec</artifact> - - <!-- - <execParameter></execParameter> - <deployRequirement></deployRequirement> - --> - </implementation> - - <instance id="HUDisplay-RateGen-idd"> - <name>HUDisplay-RateGen-idd</name> + + + <instance id="HUDisplay-GPS-idd"> + <name>HUDisplay-GPS-idd</name> <node>AirFrameDevice</node> - <source><!-- @@ What goes here --></source> - <implementation>HUDisplay-RateGen-mdd</implementation> + <source><!-- @@ What goes here --></source> + <implementation>HUDisplay-GPS-mdd</implementation> + <!-- Add this property if you want to write component reference to IOR --> <configProperty> <name>ComponentIOR</name> <value> @@ -79,17 +77,19 @@ <kind>tk_string</kind> </type> <value> - <string>RateGen.ior</string> + <string>GPS.ior</string> </value> </value> </configProperty> - </instance> + </instance> - <instance id="HUDisplay-GPS-idd"> - <name>HUDisplay-GPS-idd</name> + + <instance id="HUDisplay-RateGen-idd"> + <name>HUDisplay-RateGen-idd</name> <node>AirFrameDevice</node> <source><!-- @@ What goes here --></source> - <implementation>HUDisplay-GPS-mdd</implementation> + <implementation>HUDisplay-RateGen-mdd</implementation> + <!-- Add this property if you want to write component reference to IOR --> <configProperty> <name>ComponentIOR</name> <value> @@ -97,21 +97,29 @@ <kind>tk_string</kind> </type> <value> - <string>GPS.ior</string> + <string>RateGen.ior</string> </value> </value> </configProperty> - </instance> - - - + <!-- Add this property if you want to initialize component attribute --> + <configProperty> + <name>hertz</name> + <value> + <type> + <kind>tk_long</kind> + </type> + <value> + <long>2</long> + </value> + </value> + </configProperty> + </instance> - - <instance id="HUDisplay-NavDisplayGUI-idd"> - <name>HUDisplay-NavDisplayGUI-idd</name> + <instance id="HUDisplay-NavDisplay-idd"> + <name>HUDisplay-NavDisplay-idd</name> <node>AirFrameDevice</node> <source><!-- @@ What goes here --></source> - <implementation>HUDisplay-NavDisplayGUI-mdd</implementation> + <implementation>HUDisplay-NavDisplay-mdd</implementation> <configProperty> <name>ComponentIOR</name> <value> @@ -119,29 +127,27 @@ <kind>tk_string</kind> </type> <value> - <string>NavDisplayGUI.ior</string> + <string>NavDisplay.ior</string> </value> </value> </configProperty> </instance> - <connection> - <name>GPSLocation_MyLocation</name> + <connection> + <name>Pulse_Refresh</name> <internalEndpoint> - <portName>MyLocation</portName> - <kind>Facet</kind> - <instance>HUDisplay-GPS-idd</instance> + <portName>Pulse</portName> + <kind>EventPublisher</kind> + <instance>HUDisplay-RateGen-idd</instance> </internalEndpoint> <internalEndpoint> - <portName>GPSLocation</portName> - <kind>SimplexReceptacle</kind> - <instance>HUDisplay-NavDisplayGUI-idd</instance> + <portName>Refresh</portName> + <kind>EventConsumer</kind> + <instance>HUDisplay-GPS-idd</instance> </internalEndpoint> </connection> - - <connection> <name>Refresh_Ready</name> <internalEndpoint> @@ -152,38 +158,33 @@ <internalEndpoint> <portName>Refresh</portName> <kind>EventConsumer</kind> - <instance>HUDisplay-NavDisplayGUI-idd</instance> + <instance>HUDisplay-NavDisplay-idd</instance> </internalEndpoint> </connection> - <connection> - <name>Pulse_Refresh</name> + <connection> + <name>GPSLocation_MyLocation_facet</name> <internalEndpoint> - <portName>Pulse</portName> - <kind>EventPublisher</kind> - <instance>HUDisplay-RateGen-idd</instance> + <portName>MyLocation</portName> + <kind>Facet</kind> + <instance>HUDisplay-GPS-idd</instance> </internalEndpoint> <internalEndpoint> - <portName>Refresh</portName> - <kind>EventConsumer</kind> - <instance>HUDisplay-GPS-idd</instance> + <portName>GPSLocation</portName> + <kind>SimplexReceptacle</kind> + <instance>HUDisplay-NavDisplay-idd</instance> </internalEndpoint> </connection> - - <artifact id="HUDisplay-RateGen_stub"> - <name>RateGen_stub</name> - <source><!-- @@ Not sure --></source> - <node><!-- blank --></node> - <location>RateGen_stub</location> - - <!-- @@ This has dependancies that need to be specified, how? --> - </artifact> + + + + <artifact id="HUDisplay-RateGen_svnt"> - <name>RateGen_DnC_svnt</name> + <name>RateGen_svnt</name> <source><!-- @@ Not sure --></source> <node><!-- blank --></node> - <location>RateGen_DnC_svnt</location> + <location>RateGen_svnt</location> <execParameter> <name>entryPoint</name> <value> @@ -191,7 +192,7 @@ <kind>tk_string</kind> </type> <value> - <string>createRateGenHome_Servant</string> + <string>create_HUDisplay_RateGenHome_Servant</string> </value> </value> </execParameter> @@ -199,10 +200,10 @@ </artifact> <artifact id="HUDisplay-RateGen_exec"> - <name>RateGen_DnC_exec</name> + <name>RateGen_exec</name> <source><!-- @@ Not sure --></source> <node><!-- blank --></node> - <location>RateGen_DnC_exec</location> + <location>RateGen_exec</location> <execParameter> <name>entryPoint</name> <value> @@ -218,20 +219,12 @@ <!-- @@ This has dependancies that need to be specified, how? --> </artifact> - <artifact id="HUDisplay-GPS_stub"> - <name>GPS_DnC_stub</name> - <source><!-- @@ Not sure --></source> - <node><!-- blank --></node> - <location>GPS_DnC_stub</location> - - <!-- @@ This has dependancies that need to be specified, how? --> - </artifact> <artifact id="HUDisplay-GPS_svnt"> - <name>GPS_DnC_svnt</name> + <name>GPS_svnt</name> <source><!-- @@ Not sure --></source> <node><!-- blank --></node> - <location>GPS_DnC_svnt</location> + <location>GPS_svnt</location> <execParameter> <name>entryPoint</name> <value> @@ -239,7 +232,7 @@ <kind>tk_string</kind> </type> <value> - <string>createGPSHome_Servant</string> + <string>create_HUDisplay_GPSHome_Servant</string> </value> </value> </execParameter> @@ -248,10 +241,10 @@ <artifact id="HUDisplay-GPS_exec"> - <name>GPS_DnC_exec</name> + <name>GPS_exec</name> <source><!-- @@ Not sure about this--></source> <node><!-- blank --></node> - <location>GPS_DnC_exec</location> + <location>GPS_exec</location> <execParameter> <name>entryPoint</name> <value> @@ -267,22 +260,12 @@ <!-- @@ This has dependancies that need to be specified, how? --> </artifact> - - <artifact id="HUDisplay-NavDisplay_stub"> - <name>NavDisplay_DnC_stub</name> - <source><!-- @@ Not sure --></source> - <node><!-- blank --></node> - <location>NavDisplay_DnC_stub</location> - - <!-- @@ This has dependancies that need to be specified, how? --> - </artifact> - <artifact id="HUDisplay-NavDisplay_svnt"> - <name>NavDisplay_DnC_svnt</name> + <name>NavDisplay_svnt</name> <source><!-- @@ Not sure --></source> <node><!-- blank --></node> - <location>NavDisplay_DnC_svnt</location> + <location>NavDisplay_svnt</location> <execParameter> <name>entryPoint</name> <value> @@ -290,22 +273,19 @@ <kind>tk_string</kind> </type> <value> - <string>createNavDisplayHome_Servant</string> + <string>create_HUDisplay_NavDisplayHome_Servant</string> </value> </value> </execParameter> <!-- @@ This has dependancies that need to be specified, how? --> </artifact> - - - - <artifact id="HUDisplay-NavDisplayGUI_exec"> - <name>NavDisplayGUI_DnC_exec</name> + <artifact id="HUDisplay-NavDisplay_exec"> + <name>NavDisplay_exec</name> <source><!-- @@ Not sure --></source> <node><!-- blank --></node> - <location>NavDisplayGUI_DnC_exec</location> + <location>NavDisplay_exec</location> <execParameter> <name>entryPoint</name> <value> diff --git a/TAO/CIAO/examples/Display/descriptors/run_NodeDaemons.pl b/TAO/CIAO/examples/Display/descriptors/run_NodeDaemons.pl new file mode 100755 index 00000000000..d03a0f47cc4 --- /dev/null +++ b/TAO/CIAO/examples/Display/descriptors/run_NodeDaemons.pl @@ -0,0 +1,40 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "../../../../../bin"; +use PerlACE::Run_Test; + +$status = 0; +$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior"); +$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior"); + +#for ($iter = 0; $iter <= $#ARGV; $iter++) { +# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") { +# print "Run_Test Perl script for NodeApplicationTest \n\n"; +# print "run_test \n"; +# print "\n"; +# print "-h -- prints this information\n"; +# exit 0; +# } +#} + + +unlink $iorfile1; +unlink $iorfile2; + +$CIAO_ROOT=$ENV{'CIAO_ROOT'}; + +$SV1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:10001 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:20001 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV1->Spawn (); +$SV2->Spawn (); + +sleep (99999999999); diff --git a/TAO/CIAO/examples/Display/descriptors/run_test_without_ns.pl b/TAO/CIAO/examples/Display/descriptors/run_test_without_ns.pl new file mode 100755 index 00000000000..c4323252d1b --- /dev/null +++ b/TAO/CIAO/examples/Display/descriptors/run_test_without_ns.pl @@ -0,0 +1,173 @@ +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; +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE"; + +$daemons_running = 0; +$em_running = 0; +$daemons = 2; +@ports = ( 10001, 20001 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" ); +$status = 0; +$dat_file = "NodeManagerMap.dat"; +$cdp_file = "DeploymentPlan.cdp"; +$controller_exec = "$CIAO_ROOT/examples/Display/RateGen/controller"; + +$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 ("DAM.ior"); + unlink PerlACE::LocalFile ("RateGen.ior"); + unlink PerlACE::LocalFile ("GPS.ior"); + unlink PerlACE::LocalFile ("NavDisplay.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 = "$DAnCE/NodeApplication/NodeApplication"; + + $d_cmd = "$DAnCE/NodeManager/NodeManager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -d 30"; + + $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 ("$DAnCE/ExecutionManager/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 ("$DAnCE/Plan_Launcher/plan_launcher", + "-p flattened_deploymentplan.cdp -k file://EM.ior -o DAM.ior"); + +$E->SpawnWaitKill (5000); + +if (PerlACE::waitforfile_timed ( + "GPS.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of GPS could not be found\n"; + kill_open_processes (); + exit 1; +} + +if (PerlACE::waitforfile_timed ("RateGen.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of RateGen could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://RateGen.ior"); +$result = $controller->SpawnWaitKill (3000); +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# put some delay here. +sleep (20); + +# invoking the controller again to stop the rategen +print "Invoking the controller to stop RateGen\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://RateGen.ior -f"); +$result = $controller->SpawnWaitKill (3000); +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# delay a bit more +sleep (2); + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +$E = + new PerlACE::Process ("$DAnCE/Plan_Launcher/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; |