diff options
Diffstat (limited to 'TAO/CIAO')
106 files changed, 3227 insertions, 6431 deletions
diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp index 5008a43f5d8..3f1f1761bb8 100644 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp +++ b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Elements.hpp @@ -224,13 +224,13 @@ namespace CCF /* - Let me know if you need this function. + Let me know if you need this function. ScopedName eponym () const { } - */ + */ public: static Introspection::TypeInfo const& @@ -460,7 +460,7 @@ namespace CCF } void - add_edge_right (Extends&) + add_edge_right (Extends& e) { } diff --git a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp index 1318ef3c5ef..745e017f9f9 100644 --- a/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp +++ b/TAO/CIAO/CCF/CCF/IDL2/Traversal/Elements.hpp @@ -324,7 +324,7 @@ namespace CCF } virtual void - pre (Type&) + pre (Type& e) { } @@ -335,12 +335,12 @@ namespace CCF } virtual void - name (Type&) + name (Type& e) { } virtual void - post (Type&) + post (Type& e) { } }; @@ -395,7 +395,7 @@ namespace CCF public: /* GCC#13590/DR#39 using Node<T>::edge_traverser; - */ + */ virtual void traverse (T& s) diff --git a/TAO/CIAO/CIAOTAO.mwc b/TAO/CIAO/CIAOTAO.mwc index 263b2ca181f..e3990dd3245 100644 --- a/TAO/CIAO/CIAOTAO.mwc +++ b/TAO/CIAO/CIAOTAO.mwc @@ -14,5 +14,4 @@ workspace { DAnCE ciao tools - tests } diff --git a/TAO/CIAO/CIDLC/CIDLC.mpc b/TAO/CIAO/CIDLC/CIDLC.mpc index 87e965a1942..e656af7e913 100644 --- a/TAO/CIAO/CIDLC/CIDLC.mpc +++ b/TAO/CIAO/CIDLC/CIDLC.mpc @@ -6,16 +6,11 @@ project(CIDLC) { includes += .. ../CCF after += IDL2 IDL3 CIDL CodeGenerationKit CompilerElements install = ../bin - libpaths += ../CCF/CCF ../../../lib + libpaths += ../CCF/CCF libs += CIDL IDL3 IDL2 CodeGenerationKit CompilerElements Source_Files { ExecutorMappingGenerator.cpp DescriptorGenerator.cpp - ExecImplGenerator.cpp - ExecImplHeaderGenerator.cpp - ExecImplSourceGenerator.cpp - ExecutorMappingGenerator.cpp - RepositoryIdGenerator.cpp SizeTypeCalculator.cpp ServantGenerator.cpp ServantHeaderGenerator.cpp diff --git a/TAO/CIAO/CIDLC/CIDLC.vcproj b/TAO/CIAO/CIDLC/CIDLC.vcproj index 511dc643b53..dda9630e47a 100644 --- a/TAO/CIAO/CIDLC/CIDLC.vcproj +++ b/TAO/CIAO/CIDLC/CIDLC.vcproj @@ -1,225 +1,208 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.10"
- Name="CIDLC"
- ProjectGUID="{8F2A74C0-C995-4BE2-8FD7-538F64BF98FD}"
- Keyword="Win32Proj">
- <Platforms>
- <Platform
- Name="Win32"/>
- </Platforms>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="../bin"
- IntermediateDirectory="$(ProjectDir)/Debug"
- ConfigurationType="1"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/wd4290 /wd4800 /wd4250 /wd4355"
- Optimization="0"
- AdditionalIncludeDirectories="..,../CCF"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_REGEX_NO_LIB;BOOST_REGEX_STATIC_LINK"
- MinimalRebuild="TRUE"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- ForceConformanceInForLoopScope="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="FALSE"
- DebugInformationFormat="4"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="CompilerElements.lib CodeGenerationKit.lib IDL2.lib IDL3.lib CIDL.lib libboost_filesystem_debug.lib libboost_regex_debug.lib"
- OutputFile="$(OutDir)/cidlc.exe"
- LinkIncremental="2"
- AdditionalLibraryDirectories="../CCF/CCF/CompilerElements;../CCF/CCF/CodeGenerationKit;../CCF/CCF/IDL2;../CCF/CCF/IDL3;../CCF/CCF/CIDL"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile="$(OutDir)/CIDLC.pdb"
- SubSystem="1"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(ProjectDir)"
- IntermediateDirectory="$(ProjectDir)/Release"
- ConfigurationType="1"
- CharacterSet="2">
- <Tool
- Name="VCCLCompilerTool"
- AdditionalOptions="/wd4290 /wd4800 /wd4250 /wd4355"
- AdditionalIncludeDirectories="..,../CCF"
- PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
- RuntimeLibrary="4"
- ForceConformanceInForLoopScope="TRUE"
- RuntimeTypeInfo="TRUE"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="FALSE"
- DebugInformationFormat="3"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="CompilerElements.lib CodeGenerationKit.lib IDL2.lib IDL3.lib CIDL.lib"
- OutputFile="$(OutDir)/CIDLC.exe"
- LinkIncremental="1"
- AdditionalLibraryDirectories="../CCF/CCF/CompilerElements;../CCF/CCF/CodeGenerationKit;../CCF/CCF/IDL2;../CCF/CCF/IDL3;../CCF/CCF/CIDL"
- GenerateDebugInformation="TRUE"
- SubSystem="1"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"/>
- <Tool
- Name="VCMIDLTool"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"/>
- <Tool
- Name="VCWebServiceProxyGeneratorTool"/>
- <Tool
- Name="VCXMLDataGeneratorTool"/>
- <Tool
- Name="VCWebDeploymentTool"/>
- <Tool
- Name="VCManagedWrapperGeneratorTool"/>
- <Tool
- Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
- <File
- RelativePath=".\cidlc.cpp">
- </File>
- <File
- RelativePath=".\DescriptorGenerator.cpp">
- </File>
- <File
- RelativePath=".\ExecImplGenerator.cpp">
- </File>
- <File
- RelativePath=".\ExecImplHeaderGenerator.cpp">
- </File>
- <File
- RelativePath=".\ExecImplSourceGenerator.cpp">
- </File>
- <File
- RelativePath=".\ExecutorMappingGenerator.cpp">
- </File>
- <File
- RelativePath=".\Literals.cpp">
- </File>
- <File
- RelativePath=".\RepositoryIdGenerator.cpp">
- <FileConfiguration
- Name="Debug|Win32">
- <Tool
- Name="VCCLCompilerTool"/>
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="TRUE">
- <Tool
- Name="VCCLCompilerTool"/>
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\ServantGenerator.cpp">
- </File>
- <File
- RelativePath=".\ServantHeaderGenerator.cpp">
- </File>
- <File
- RelativePath=".\ServantSourceGenerator.cpp">
- </File>
- <File
- RelativePath=".\SizeTypeCalculator.cpp">
- </File>
- <File
- RelativePath=".\TypeNameEmitter.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
- <File
- RelativePath=".\Collectors.hpp">
- </File>
- <File
- RelativePath=".\DescriptorGenerator.hpp">
- </File>
- <File
- RelativePath=".\ExecImplGenerator.hpp">
- </File>
- <File
- RelativePath=".\ExecImplHeaderGenerator.hpp">
- </File>
- <File
- RelativePath=".\ExecImplSourceGenerator.hpp">
- </File>
- <File
- RelativePath=".\ExecutorMappingGenerator.hpp">
- </File>
- <File
- RelativePath=".\Literals.hpp">
- </File>
- <File
- RelativePath=".\RepositoryIdGenerator.hpp">
- </File>
- <File
- RelativePath=".\ServantGenerator.hpp">
- </File>
- <File
- RelativePath=".\ServantHeaderGenerator.hpp">
- </File>
- <File
- RelativePath=".\ServantSourceGenerator.hpp">
- </File>
- <File
- RelativePath=".\SizeTypeCalculator.hpp">
- </File>
- <File
- RelativePath=".\TypeNameEmitter.hpp">
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
+<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="CIDLC" + ProjectGUID="{8F2A74C0-C995-4BE2-8FD7-538F64BF98FD}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="../bin" + IntermediateDirectory="$(ProjectDir)/Debug" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/wd4290 /wd4800 /wd4250 /wd4355" + Optimization="0" + AdditionalIncludeDirectories="..,../CCF" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;BOOST_REGEX_NO_LIB;BOOST_REGEX_STATIC_LINK" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + ForceConformanceInForLoopScope="TRUE" + RuntimeTypeInfo="TRUE" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="FALSE" + DebugInformationFormat="4"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="CompilerElements.lib CodeGenerationKit.lib IDL2.lib IDL3.lib CIDL.lib libboost_filesystem_debug.lib libboost_regex_debug.lib" + OutputFile="$(OutDir)/cidlc.exe" + LinkIncremental="2" + AdditionalLibraryDirectories="../CCF/CCF/CompilerElements;../CCF/CCF/CodeGenerationKit;../CCF/CCF/IDL2;../CCF/CCF/IDL3;../CCF/CCF/CIDL" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/CIDLC.pdb" + SubSystem="1" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(ProjectDir)" + IntermediateDirectory="$(ProjectDir)/Release" + ConfigurationType="1" + CharacterSet="2"> + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/wd4290 /wd4800 /wd4250 /wd4355" + AdditionalIncludeDirectories="..,../CCF" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" + RuntimeLibrary="4" + ForceConformanceInForLoopScope="TRUE" + RuntimeTypeInfo="TRUE" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="FALSE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="CompilerElements.lib CodeGenerationKit.lib IDL2.lib IDL3.lib CIDL.lib" + OutputFile="$(OutDir)/CIDLC.exe" + LinkIncremental="1" + AdditionalLibraryDirectories="../CCF/CCF/CompilerElements;../CCF/CCF/CodeGenerationKit;../CCF/CCF/IDL2;../CCF/CCF/IDL3;../CCF/CCF/CIDL" + GenerateDebugInformation="TRUE" + SubSystem="1" + OptimizeReferences="2" + EnableCOMDATFolding="2" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\cidlc.cpp"> + </File> + <File + RelativePath=".\DescriptorGenerator.cpp"> + </File> + <File + RelativePath=".\ExecutorMappingGenerator.cpp"> + </File> + <File + RelativePath=".\Literals.cpp"> + </File> + <File + RelativePath=".\RepositoryIdGenerator.cpp"> + <FileConfiguration + Name="Debug|Win32" + ExcludedFromBuild="TRUE"> + <Tool + Name="VCCLCompilerTool"/> + </FileConfiguration> + <FileConfiguration + Name="Release|Win32" + ExcludedFromBuild="TRUE"> + <Tool + Name="VCCLCompilerTool"/> + </FileConfiguration> + </File> + <File + RelativePath=".\ServantGenerator.cpp"> + </File> + <File + RelativePath=".\ServantHeaderGenerator.cpp"> + </File> + <File + RelativePath=".\ServantSourceGenerator.cpp"> + </File> + <File + RelativePath=".\SizeTypeCalculator.cpp"> + </File> + <File + RelativePath=".\TypeNameEmitter.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\Collectors.hpp"> + </File> + <File + RelativePath=".\DescriptorGenerator.hpp"> + </File> + <File + RelativePath=".\ExecutorMappingGenerator.hpp"> + </File> + <File + RelativePath=".\Literals.hpp"> + </File> + <File + RelativePath=".\RepositoryIdGenerator.hpp"> + </File> + <File + RelativePath=".\ServantGenerator.hpp"> + </File> + <File + RelativePath=".\ServantHeaderGenerator.hpp"> + </File> + <File + RelativePath=".\ServantSourceGenerator.hpp"> + </File> + <File + RelativePath=".\SizeTypeCalculator.hpp"> + </File> + <File + RelativePath=".\TypeNameEmitter.hpp"> + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/TAO/CIAO/CIDLC/ExecutorMappingGenerator.cpp b/TAO/CIAO/CIDLC/ExecutorMappingGenerator.cpp index cd940a233ee..41856f9d4d6 100644 --- a/TAO/CIAO/CIDLC/ExecutorMappingGenerator.cpp +++ b/TAO/CIAO/CIDLC/ExecutorMappingGenerator.cpp @@ -991,19 +991,19 @@ namespace } virtual void - pre (InParameter&) + pre (InParameter& p) { os << "in "; } virtual void - pre (OutParameter&) + pre (OutParameter& p) { os << "out "; } virtual void - pre (InOutParameter&) + pre (InOutParameter& p) { os << "inout "; } @@ -1119,7 +1119,7 @@ namespace } virtual void - names (Type&) + names (Type& h) { os << "{" << STRS[COMP_EC] << " " @@ -1464,7 +1464,7 @@ namespace } virtual void - implements (Type&) + implements (Type& i) { // os << " : "; diff --git a/TAO/CIAO/CIDLC/Literals.cpp b/TAO/CIAO/CIDLC/Literals.cpp index 3055be54d61..221ac34925b 100644 --- a/TAO/CIAO/CIDLC/Literals.cpp +++ b/TAO/CIAO/CIDLC/Literals.cpp @@ -79,9 +79,7 @@ namespace StringLiterals "// Your code here.", // YCH "//==================================================================", // SEP - "variable-size", // VAR_SIZE - "_ciao_extract_val", // EXTRACT - "_ciao_extract_tmp" // EXTRACT_TMP + "variable-size" // VAR_SIZE }; } diff --git a/TAO/CIAO/CIDLC/Literals.hpp b/TAO/CIAO/CIDLC/Literals.hpp index 88803330609..d173026fa2f 100644 --- a/TAO/CIAO/CIDLC/Literals.hpp +++ b/TAO/CIAO/CIDLC/Literals.hpp @@ -49,8 +49,6 @@ namespace StringLiterals YCH, SEP, VAR_SIZE, - EXTRACT, - EXTRACT_TMP, SIZE }; diff --git a/TAO/CIAO/CIDLC/RepositoryIdGenerator.cpp b/TAO/CIAO/CIDLC/RepositoryIdGenerator.cpp index 796f2ef848e..7746dac71b5 100644 --- a/TAO/CIAO/CIDLC/RepositoryIdGenerator.cpp +++ b/TAO/CIAO/CIDLC/RepositoryIdGenerator.cpp @@ -6,124 +6,54 @@ #include "Literals.hpp" #include "CCF/CompilerElements/Diagnostic.hpp" + +#include "CCF/CIDL/SemanticGraph.hpp" #include "CCF/CIDL/Traversal.hpp" -#include "CCF/CodeGenerationKit/Regex.hpp" using namespace CCF::CIDL; -using namespace CCF::CIDL::SemanticGraph; -using namespace StringLiterals; -using namespace std; +using namespace SyntaxTree; namespace { - string - name_to_string (Name const& n) - { - ostringstream os; - os << n; - return os.str (); - } - - Nameable* defined_in (Nameable& n) - { - for (Nameable::NamedIterator i (n.named_begin ()), e (n.named_end ()); - i != e; - ++i) - { - if (Defines* d = dynamic_cast<Defines*> (*i)) - { - return &d->scope (); - } - } - - return 0; - } - - void - compute_new_repo_id (Nameable& d) - { - string prefix (""); - TypePrefix *tp = 0; - - if (d.context ().count (STRS[TYPE_PREFIX])) - { - tp = d.context ().get<TypePrefix*> (STRS[TYPE_PREFIX]); - prefix = tp->prefix ().literal (); - } - else - { - Nameable* parent = defined_in (d); - - while (parent != 0) - { - if (parent->context ().count (STRS[TYPE_PREFIX])) - { - tp = - parent->context ().get<TypePrefix*> (STRS[TYPE_PREFIX]); - - prefix = tp->prefix ().literal (); - break; - } - - parent = defined_in (*parent); - } - } - - if (prefix != "") prefix += "/"; - - ScopedName scoped (d.scoped_name ()); - Name stripped (scoped.begin () + 1, scoped.end ()); - - string scope_name = regex::perl_s (name_to_string (stripped), "%::%/%"); - - string repo_id = "IDL:" + prefix + scope_name + ":1.0"; - - d.context ().set<string> (STRS[REPO_ID], repo_id); - } + char const* const + type_id_label = "CIDLC::RepositoryIdGenerator::TypeId"; - void - compute_repo_id (Nameable& d) - { - if (d.context ().count (STRS[REPO_ID])) - { - return; - } - else - { - compute_new_repo_id (d); - } - } + char const* const + type_prefix_label = "CIDLC::RepositoryIdGenerator::TypePrefix"; } namespace { + // + // + // class TypeIdLabelGenerator : public Traversal::TypeId { public: - TypeIdLabelGenerator (Diagnostic::Stream& dout, - TranslationUnit& tu) - : dout_ (dout), - tu_ (tu) + TypeIdLabelGenerator (Diagnostic::Stream& dout) + : dout_ (dout) { } virtual void - traverse (SemanticGraph::TypeId& ti) + traverse (TypeIdPtr const& ti) { - ScopedName decl_name (ti.declaration ()); - Nameables ref = tu_.lookup (decl_name); + ScopedName decl_name (ti->declaration ()); - for (Nameables::const_iterator iter (ref.begin ()); - iter != ref.end (); - ++iter) + DeclarationTable::IteratorPair iters ( + ti->table ().lookup (decl_name)); + + for (; iters.first != iters.second; ++iters.first) { - Nameable *decl = *iter; + DeclarationPtr decl (*iters.first); - if (decl->context ().count (STRS[TYPE_ID])) + if (decl->context ().count ( + StringLiterals::STRS[StringLiterals::TYPE_ID])) { //@@ Seems it should contain filename and line // of its origin. // + Diagnostic::Error err ("???", 0); err << "repetition of typeid for " << decl_name @@ -139,50 +69,56 @@ namespace } else { - decl->context ().set (STRS[TYPE_ID], &ti); - decl->context ().set (STRS[REPO_ID], ti.id ().literal ()); + decl->context ().set ( + StringLiterals::STRS[StringLiterals::TYPE_ID], ti); + decl->context ().set ( + StringLiterals::STRS[StringLiterals::REPO_ID], ti->id ().str ()); } } } private: Diagnostic::Stream& dout_; - SemanticGraph::TranslationUnit& tu_; }; + + // + // + // class TypePrefixLabelGenerator : public Traversal::TypePrefix { public: - TypePrefixLabelGenerator (Diagnostic::Stream& dout, - TranslationUnit& tu) - : dout_ (dout), - tu_ (tu) + TypePrefixLabelGenerator (Diagnostic::Stream& dout) + : dout_ (dout) { } virtual void - traverse (SemanticGraph::TypePrefix& tp) + traverse (TypePrefixPtr const& tp) { - ScopedName decl_name (tp.declaration ()); - Nameables ref = tu_.lookup (decl_name); + ScopedName decl_name (tp->declaration ()); + + DeclarationTable::IteratorPair iters ( + tp->table ().lookup (decl_name)); - for (Nameables::const_iterator iter (ref.begin ()); - iter != ref.end (); - ++iter) + for (; iters.first != iters.second; ++iters.first) { - Nameable *decl = *iter; - CCF::CompilerElements::Context& ctx = decl->context (); + DeclarationPtr decl (*iters.first); - if (ctx.count (STRS[TYPE_PREFIX])) + if (decl->context ().count ( + StringLiterals::STRS[StringLiterals::TYPE_PREFIX])) { - SemanticGraph::TypePrefix* prev = - ctx.get<SemanticGraph::TypePrefix*> (STRS[TYPE_PREFIX]); - - if (prev->prefix () != tp.prefix ()) + TypePrefixPtr prev ( + decl->context ().get<TypePrefixPtr> ( + StringLiterals::STRS[StringLiterals::TYPE_PREFIX])); + + if ((prev->prefix ()) != (tp->prefix ())) { - //@@ Seems tp should contain filename and line + + //@@ Seems tp should containt filename and line // of it's origin. // + Diagnostic::Error err ("???", 0); err << "resetting type prefix for " << decl_name @@ -199,85 +135,42 @@ namespace } else { - decl->context ().set (STRS[TYPE_PREFIX], &tp); - - // A typeprefix declaration could appear after the IDL - // type declaration, so we want to update the repo id - // every time. - compute_new_repo_id (*decl); + decl->context ().set ( + StringLiterals::STRS[StringLiterals::TYPE_PREFIX], tp); } } } private: Diagnostic::Stream& dout_; - SemanticGraph::TranslationUnit& tu_; - }; - - class RepoIdGenerator : public Traversal::Interface, - public Traversal::EventType - { - virtual void - traverse (SemanticGraph::Interface& i) - { - compute_repo_id (i); - } - - virtual void - traverse (SemanticGraph::EventType& e) - { - compute_repo_id (e); - } }; } -bool RepositoryIdGenerator::generate (TranslationUnit& u) +bool RepositoryIdGenerator:: +generate (TranslationUnitPtr const& u) { - Diagnostic::Stream dout; - - TypeIdLabelGenerator type_id (dout, u); - TypePrefixLabelGenerator type_prefix (dout, u); - RepoIdGenerator repo_id; - - Traversal::TranslationUnit unit; - - Traversal::ContainsPrincipal contains_principal; - unit.edge_traverser (contains_principal); - - Traversal::TranslationRegion region; - contains_principal.node_traverser (region); - - Traversal::ContainsRoot contains_root; - Traversal::Includes includes; - - region.edge_traverser (includes); - region.edge_traverser (contains_root); - - Traversal::Root root; - includes.node_traverser (region); - contains_root.node_traverser (root); - - Traversal::Defines defines; - root.edge_traverser (defines); - - Traversal::Module module; - - defines.node_traverser (module); - defines.node_traverser (type_id); - defines.node_traverser (type_prefix); - defines.node_traverser (repo_id); - - module.edge_traverser (defines); - - Traversal::Interface iface; - defines.node_traverser (iface); - - unit.traverse (u); - - if (dout.error_count () != 0) return false; - - //@@ check errors + { + Diagnostic::Stream dout; + + TypeIdLabelGenerator type_id (dout); + TypePrefixLabelGenerator type_prefix (dout); + + Traversal::Scope scope; + scope.add_scope_delegate (&type_id); + scope.add_scope_delegate (&type_prefix); + + Traversal::TranslationRegion region (&scope); + + Traversal::TranslationUnit unit; + unit.add_content_delegate (®ion); + + unit.dispatch (u); + + if (dout.error_count () != 0) return false; + + //@@ check errors + } return true; } diff --git a/TAO/CIAO/CIDLC/RepositoryIdGenerator.hpp b/TAO/CIAO/CIDLC/RepositoryIdGenerator.hpp index 36dc13e064e..0f15807a3b7 100644 --- a/TAO/CIAO/CIDLC/RepositoryIdGenerator.hpp +++ b/TAO/CIAO/CIDLC/RepositoryIdGenerator.hpp @@ -15,7 +15,7 @@ class RepositoryIdGenerator { public: bool - generate (CCF::CIDL::SemanticGraph::TranslationUnit& u); + generate (CCF::CIDL::SyntaxTree::TranslationUnitPtr const&); }; #endif // CIDLC_REPOSITORY_ID_GENERATOR_HPP diff --git a/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp b/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp index 0678c8cccd7..8e36ceadaa4 100644 --- a/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp +++ b/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp @@ -132,7 +132,7 @@ namespace virtual void post (Type&) { - os << ";" << endl; + os << ";" << endl << endl; } virtual void @@ -338,7 +338,7 @@ namespace traverse (UnconstrainedInterface& i) { if (i.context ().count ("facet_hdr_gen")) return; - + ScopedName scoped (i.scoped_name ()); Name stripped (scoped.begin () + 1, scoped.end ()); @@ -416,7 +416,6 @@ namespace << "_get_component (" << endl << STRS[ENV_SNGL_HDR] << ")" << endl << STRS[EXCP_SNGL] << ";" << endl - << endl << "protected:" << endl << "// Facet executor." << endl << i.scoped_name ().scope_name ()<< "::CCM_" << i.name () @@ -424,14 +423,14 @@ namespace << "// Context object." << endl << "::Components::CCMContext_var ctx_;" << endl << "};"; - - os << "typedef " << ctx.export_macro () << " " - << i.name () << "_Servant_T<int> " + + os << "typedef " << ctx.export_macro () << " " + << i.name () << "_Servant_T<int> " << i.name () << "_Servant;"; // Close the CIAO_GLUE namespace. os << "}"; - + i.context ().set ("facet_hdr_gen", true); } }; @@ -736,33 +735,21 @@ namespace os << STRS[GLUE_NS] << regex::perl_s (t.scoped_name ().scope_name ().str (), "/::/_/") << "{"; - - os << "class " << t.name () << "_Servant;" << endl; os << "class " << ctx.export_macro () << " " << t.name () << "_Context" << endl - << " : public virtual CIAO::Context_Impl<" << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_Context," << endl - << " " << t.name () << "_Servant," << endl - << " " << t.scoped_name () << "," << endl - << " " << t.scoped_name () << "_var" << endl - << " >" << endl + << ": public virtual " << t.scoped_name ().scope_name () << "::CCM_" + << t.name () << "_Context," + << endl + << "public virtual TAO_Local_RefCounted_Object" + << endl << "{" << "public:" << endl; os << "// We will allow the servant glue code we generate to " << "access our state." << endl - << "friend class " << t.name () << "_Servant;" << endl; - - os << "/// Hack for VC6." << endl - << "typedef CIAO::Context_Impl<" << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_Context," << endl - << " " << t.name () << "_Servant," << endl - << " " << t.scoped_name () << "," << endl - << " " << t.scoped_name () << "_var" << endl - << " > ctx_svnt_base;" << endl; + << "friend class " << t.name () << "_Servant;" + << endl; os << t.name () << "_Context (" << endl << "::Components::CCMHome_ptr home," << endl @@ -772,6 +759,55 @@ namespace os << "virtual ~" << t.name () << "_Context (void);" << endl; + os << "// Operations from ::Components::CCMContext." << endl << endl; + + os << "virtual ::Components::Principal_ptr" << endl + << "get_caller_principal (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl; + + os << "virtual ::Components::CCMHome_ptr" << endl + << "get_CCM_home (" << endl + << STRS[ENV_SNGL_HDR_NOTUSED] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl ; + + os << "virtual CORBA::Boolean" << endl + << "get_rollback_only (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + + os << "virtual ::Components::Transaction::UserTransaction_ptr" << endl + << "get_user_transaction (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + + os << "virtual CORBA::Boolean" << endl + << "is_caller_in_role (" << endl + << "const char *role" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl; + + os << "virtual void" << endl + << "set_rollback_only (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + + os << "// Operations from " << STRS[COMP_SC] << " interface." + << endl << endl; + + os << "virtual CORBA::Object_ptr" << endl + << "get_CCM_object (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + os << "// Operations for " << t.name () << " receptacles" << " and event sources," << endl << "// defined in " << t.scoped_name ().scope_name () << "::CCM_" @@ -794,7 +830,9 @@ namespace component_emitter.traverse (t); } - os << "// CIAO-specific." << endl << endl; + os << "// CIAO-specific." << endl << endl + << "::CIAO::Session_Container *" << endl + << "_ciao_the_Container (void) const;" << endl; os << "static " << t.name () << "_Context *" << endl << "_narrow (" << endl @@ -843,6 +881,11 @@ namespace virtual void post (Type& t) { + os << "::Components::CCMHome_var home_;" << endl + << "::CIAO::Session_Container *container_;" << endl << endl + << t.name () << "_Servant *servant_;" << endl + << t.scoped_name () << "_var component_;" << endl; + // Component context class closer. os << "};"; @@ -1146,72 +1189,6 @@ namespace Traversal::Belongs belongs_; }; - struct PortsEmitterPrivate : Traversal::EmitterData, - Traversal::SingleUserData, - Traversal::MultiUserData, - Traversal::PublisherData, - Traversal::ConsumerData, - Traversal::ProviderData, - EmitterBase - { - PortsEmitterPrivate (Context& c) - : EmitterBase (c), - type_name_emitter_ (c.os ()), - simple_type_name_emitter_ (c.os ()), - stripped_type_name_emitter_ (c.os ()) - { - belongs_.node_traverser (type_name_emitter_); - simple_belongs_.node_traverser (simple_type_name_emitter_); - stripped_belongs_.node_traverser (stripped_type_name_emitter_); - } - - virtual void - traverse (SemanticGraph::Provider& p) - { - os << "::CORBA::Object_ptr" << endl - << "provide_" << p.name () << "_i (" << endl - << STRS[ENV_SNGL_HDR] << ")" << endl - << STRS[EXCP_SNGL] << ";" << endl << endl; - } - - virtual void - traverse (SemanticGraph::SingleUser& u) - { - } - - virtual void - traverse (SemanticGraph::MultiUser& u) - { - } - - virtual void - traverse (SemanticGraph::Consumer& c) - { - os << "::Components::EventConsumerBase_ptr" << endl - << "get_consumer_" << c.name () << "_i (" << endl - << STRS[ENV_SNGL_HDR] << ")" << endl - << STRS[EXCP_SNGL] << ";" << endl << endl; - } - - virtual void - traverse (SemanticGraph::Emitter& e) - { - } - - virtual void - traverse (SemanticGraph::Publisher& p) - { - } - - private: - TypeNameEmitter type_name_emitter_; - SimpleTypeNameEmitter simple_type_name_emitter_; - StrippedTypeNameEmitter stripped_type_name_emitter_; - Traversal::Belongs belongs_; - Traversal::Belongs simple_belongs_; - Traversal::Belongs stripped_belongs_; - }; - public: virtual void pre (Type& t) @@ -1227,39 +1204,35 @@ namespace << "_Servant" << endl << " : public virtual CIAO::Servant_Impl<" << endl << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" + << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "," << endl << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_var," << endl << " " << t.name () << "_Context" << endl - << " >" << endl + << " >," << endl + << " " << STRS[INH_RCSB] << endl << "{" << "public:" << endl; - os << "/// Hack for VC6." << endl - << "typedef CIAO::Servant_Impl<" << endl - << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" + os << "/// Hack for VC6 the most sucky compiler" << endl + << "typedef CIAO::Servant_Impl<" << endl + << "POA_" << stripped << "," << endl + << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" + << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_var," << endl - << " " << t.name () << "_Context" << endl - << " > comp_svnt_base;" << endl << endl; + << " " << t.name () << "_Context" << endl + << " > our_base;" << endl; os << t.name () << "_Servant (" << endl << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_ptr executor," << endl << "::Components::CCMHome_ptr home," << endl - << "::CIAO::Session_Container *c);" << endl << endl; + << "::CIAO::Session_Container *c);" << endl; os << "virtual ~" << t.name () << "_Servant (void);" << endl << endl; - os << "virtual void" << endl - << "set_attributes (" << endl - << "const ::Components::ConfigValues &descr" << endl - << STRS[ENV_SRC] << ");" << endl << endl; - os << "// Supported operations." << endl << endl; // Generate operations for all supported interfaces. @@ -1364,6 +1337,24 @@ namespace component_emitter.traverse (t); } + os << "// Operations for Navigation interface." << endl << endl; + + os << "virtual CORBA::Object_ptr" << endl + << "provide_facet (" << endl + << "const char *name" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + + os << "virtual ::Components::FacetDescriptions *" << endl + << "get_named_facets (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + os << "// Operations for Receptacles interface." << endl << endl; os << "virtual " << STRS[COMP_CK] << " *" << endl @@ -1390,8 +1381,37 @@ namespace << STRS[EXCP_CR] << "," << endl << STRS[EXCP_NC] << "));" << endl << endl; + os << "virtual ::Components::ConnectionDescriptions *" << endl + << "get_connections (" << endl + << "const char *name" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + + os << "virtual ::Components::ReceptacleDescriptions *" << endl + << "get_all_receptacles (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual ::Components::ReceptacleDescriptions *" << endl + << "get_named_receptacles (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + os << "// Operations for Events interface." << endl << endl; + os << "virtual " << STRS[COMP_ECB] << "_ptr" << endl + << "get_consumer (" << endl + << "const char *sink_name" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + os << "virtual " << STRS[COMP_CK] << " *" << endl << "subscribe (" << endl << "const char *publisher_name," << endl @@ -1424,39 +1444,118 @@ namespace << STRS[EXCP_AC] << "," << endl << STRS[EXCP_IC] << "));" << endl << endl; - os << "// CIAO specific operations on the servant " << endl - << "CORBA::Object_ptr" << endl - << "get_facet_executor (const char *name" << endl + os << "virtual " << STRS[COMP_ECB] << "_ptr" << endl + << "disconnect_consumer (" << endl + << "const char *source_name" << endl << STRS[ENV_HDR] << ")" << endl << STRS[EXCP_START] << endl - << STRS[EXCP_SYS]<< "));" << endl << endl; + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "," << endl + << STRS[EXCP_NC] << "));" << endl << endl; - os << "private:" << endl << endl; + os << "virtual ::Components::ConsumerDescriptions *" << endl + << "get_named_consumers (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; - // Generate protected operations for facets and event sinks. - { - Traversal::Component component_emitter; + os << "virtual ::Components::EmitterDescriptions *" << endl + << "get_all_emitters (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; - Traversal::Inherits component_inherits; - component_inherits.node_traverser (component_emitter); + os << "virtual ::Components::EmitterDescriptions *" << endl + << "get_named_emitters(" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; - Traversal::Defines defines; - component_emitter.edge_traverser (defines); - component_emitter.edge_traverser (component_inherits); + os << "virtual ::Components::PublisherDescriptions *" << endl + << "get_all_publishers (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; - PortsEmitterProtected ports_emitter (ctx); - defines.node_traverser (ports_emitter); + os << "virtual ::Components::PublisherDescriptions *" << endl + << "get_named_publishers(" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; - component_emitter.traverse (t); - } + os << "// Operations for CCMObject interface." << endl << endl; - os << "private:" << endl << endl - << "void" << endl - << "populate_port_tables (" << endl + os << "virtual CORBA::IRObject_ptr" << endl + << "get_component_def (" << endl << STRS[ENV_SNGL_HDR] << ")" << endl << STRS[EXCP_SNGL] << ";" << endl << endl; - // Generate private operations for ports. + os << "virtual ::Components::CCMHome_ptr" << endl + << "get_ccm_home (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual ::Components::PrimaryKeyBase *" << endl + << "get_primary_key (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_NKA] << "));" << endl << endl; + + os << "virtual void" << endl + << "configuration_complete (" << endl + << STRS[ENV_SNGL_HDR_NOTUSED] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_ICF] << "));" << endl << endl; + + os << "virtual void" << endl + << "remove (" << endl + << STRS[ENV_SNGL_HDR_NOTUSED] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_RF] << "));" << endl << endl; + + os << "virtual ::Components::ComponentPortDescription *" << endl + << "get_all_ports(" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "// Get component implementation." << endl + << "virtual CORBA::Object_ptr" << endl + << "_get_component (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "// CIAO-specific operations." << endl << endl; + + os << "void" << endl + << "ciao_preactivate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "void" << endl + << "ciao_activate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "void" << endl + << "ciao_postactivate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "/// @@NOTE: The busted operation." << endl; + + os << "void" << endl + << "_ciao_passivate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + // Generate protected operations for facets and event sinks. { Traversal::Component component_emitter; @@ -1467,11 +1566,16 @@ namespace component_emitter.edge_traverser (defines); component_emitter.edge_traverser (component_inherits); - PortsEmitterPrivate ports_emitter (ctx); + PortsEmitterProtected ports_emitter (ctx); defines.node_traverser (ports_emitter); component_emitter.traverse (t); } + + os << "private:" << endl << endl + << "void populate_port_tables (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; } virtual void @@ -1687,7 +1791,7 @@ namespace { os << "," << endl; } - + private: ReturnTypeNameEmitter returns_emitter_; Traversal::Returns returns_; @@ -1705,94 +1809,15 @@ namespace os << "class " << ctx.export_macro () << " " << t.name () << "_Servant" << endl - << " : public virtual CIAO::Home_Servant_Impl<" << endl - << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_var," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, simple_manages_); - - os << "_Servant" << endl - << " >" << endl + << ": public virtual POA_" << stripped << "," << endl + << STRS[INH_RCSB] << endl << "{" - << "public:" << endl - << "/// Hack for VC6." << endl - << "typedef CIAO::Home_Servant_Impl<" << endl - << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_var," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, simple_manages_); - - os << "_Servant" << endl - << " > home_svnt_base;" << endl << endl; + << "public:" << endl; os << t.name () << "_Servant (" << endl << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_ptr exe," << endl - << "::CIAO::Session_Container *c);" << endl << endl; + << "::CIAO::Session_Container *c);" << endl; os << "virtual ~" << t.name () << "_Servant (void);" << endl << endl; @@ -1925,6 +1950,51 @@ namespace home_emitter.traverse (t); } + // @@@ (JP) Need primary key support. + os << "// Operations for keyless home interface." << endl << endl; + + os << "virtual ::Components::CCMObject_ptr" << endl + << "create_component (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << "::Components::CreateFailure));" << endl << endl; + + os << "// Operations for implicit home interface." << endl << endl; + + os << "virtual "; + + Traversal::Home::manages (t, manages_); + + os << "_ptr" << endl + << "create (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << "::Components::CreateFailure));" << endl << endl; + + os << "// Operations for CCMHome interface." << endl << endl; + + os << "virtual ::CORBA::IRObject_ptr" << endl + << "get_component_def (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual ::CORBA::IRObject_ptr" << endl + << "get_home_def (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual void" << endl + << "remove_component (" << endl + << "::Components::CCMObject_ptr comp" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_RF] << "));" << endl << endl; + + os << "// Supported operations." << endl << endl; + // Generate operations for all supported interfaces. { Traversal::Home home_emitter; @@ -1987,10 +2057,57 @@ namespace home_emitter.traverse (t); } + os << "protected:" << endl + << "// CIAO-specific operations." << endl << endl; + + Traversal::Home::manages (t, manages_); + + os << "_ptr" << endl + << "_ciao_activate_component (" << endl; + + Traversal::Home::manages (t, enclosing_manages_); + + os << "::CCM_"; + + Traversal::Home::manages (t, simple_manages_); + + os << "_ptr exe" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "void" << endl + << "_ciao_passivate_component (" << endl; + + Traversal::Home::manages (t, manages_); + + os << "_ptr comp" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "protected:" << endl; + + os << t.scoped_name ().scope_name () << "::CCM_" + << t.name () << "_var" << endl + << "executor_;" << endl << endl; + + os << "::CIAO::Session_Container *" << endl + << "container_;" << endl << endl; + + os << "ACE_Hash_Map_Manager_Ex<" << endl + << "PortableServer::ObjectId," << endl; + + Traversal::Home::manages (t, simple_manages_); + + os << "_Servant *," << endl + << "TAO_ObjectId_Hash," << endl + << "ACE_Equal_To<PortableServer::ObjectId>," << endl + << "ACE_SYNCH_MUTEX>" << endl + << "component_map_;" << endl << endl; + // Home servant class closer. os << "};"; - os << "extern \"C\" " << ctx.export_macro () + os << "extern \"C\" " << ctx.export_macro () << " ::PortableServer::Servant" << endl << "create" << t.name () << "_Servant (" << endl << "::Components::HomeExecutorBase_ptr p," << endl @@ -2003,7 +2120,7 @@ namespace // Namespace closer. os << "}"; } - + private: TypeNameEmitter type_name_emitter_; SimpleTypeNameEmitter simple_type_name_emitter_; @@ -2145,8 +2262,8 @@ ServantHeaderEmitter::pre (TranslationUnit& u) os << "#include \"ciao/Container_Base.h\"" << endl << "#include \"ciao/Servant_Impl_T.h\"" << endl - << "#include \"ciao/Context_Impl_T.h\"" << endl - << "#include \"ciao/Home_Servant_Impl_T.h\"" << endl + << "#include \"tao/LocalObject.h\"" << endl + << "#include \"tao/PortableServer/Key_Adapters.h\"" << endl << "#include \"ace/Active_Map_Manager_T.h\"" << endl << endl; } diff --git a/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp b/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp index ed7ea448eae..fae9db4bad2 100644 --- a/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp +++ b/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp @@ -305,40 +305,6 @@ namespace std::ostream& os; }; - struct RepoIdEmitter : Traversal::Type - { - RepoIdEmitter (std::ostream& os_) - : os (os_) - {} - - virtual void - traverse (SemanticGraph::Type& t) - { - os << "\"" << t.context ().get<string> (STRS[REPO_ID]) << "\""; - } - - private: - std::ostream& os; - }; - - struct ConsumerRepoIdEmitter : Traversal::Type - { - ConsumerRepoIdEmitter (std::ostream& os_) - : os (os_) - {} - - virtual void - traverse (SemanticGraph::Type& t) - { - string holder (t.context ().get<string> (STRS[REPO_ID])); - os << "\"" << holder.substr (0, holder.rfind (':')) - << "Consumer:1.0\""; - } - - private: - std::ostream& os; - }; - struct InterfaceEmitter : Traversal::UnconstrainedInterface, EmitterBase { @@ -664,7 +630,7 @@ namespace << STRS[ENV_SNGL_ARG] << ");" << endl << "}" << "ACE_THROW_RETURN (CORBA::INTERNAL (), 0);" << endl - << "}" << endl; + << "}"; // Close the CIAO_GLUE namespace. os << "}"; @@ -1166,8 +1132,9 @@ namespace << "::Components::CCMHome_ptr home," << endl << "::CIAO::Session_Container *c," << endl << t.name () << "_Servant *sv)" << endl - << " : Context_Impl_Base (home, c)," << endl - << " ctx_svnt_base (home, c, sv)" << endl + << ": home_ (::Components::CCMHome::_duplicate (home))," << endl + << "container_ (c)," << endl + << "servant_ (sv)" << endl << "{" << "}"; @@ -1176,6 +1143,108 @@ namespace << "{" << "}"; + os << "// Operations from ::Components::CCMContext." << endl << endl; + + os << "::Components::Principal_ptr" << endl + << t.name () << "_Context::" + << "get_caller_principal (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::NO_IMPLEMENT ()," << endl + << "::Components::Principal::_nil ());" << endl + << "}"; + + os << "::Components::CCMHome_ptr" << endl + << t.name () << "_Context::" + << "get_CCM_home (" << endl + << STRS[ENV_SNGL_SRC_NOTUSED] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "return ::Components::CCMHome::_duplicate (this->home_.in ());" + << endl + << "}"; + + os << "CORBA::Boolean" << endl + << t.name () << "_Context::" + << "get_rollback_only (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "))" << endl + << "{" + << "ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::Transaction::UserTransaction_ptr" << endl + << t.name () << "_Context::" + << "get_user_transaction (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "))" << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::NO_IMPLEMENT ()," << endl + << "::Components::Transaction::UserTransaction::_nil ());" << endl + << "}"; + + os << "CORBA::Boolean" << endl + << t.name () << "_Context::" + << "is_caller_in_role (" << endl + << "const char * /* role */" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "void" << endl + << t.name () << "_Context::" + << "set_rollback_only (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "))" << endl + << "{" + << "ACE_THROW (CORBA::NO_IMPLEMENT ());" << endl + << "}"; + + os << "// Operations from " << STRS[COMP_SC] << "interface." + << endl << endl; + + os << "CORBA::Object_ptr" << endl + << t.name () << "_Context::" + << "get_CCM_object (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "))" << endl + << "{" + << "if (CORBA::is_nil (this->component_.in ()))" << endl + << "{" + << "CORBA::Object_var obj =" << endl + << "this->container_->get_objref (" << endl + << "this->servant_" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN (CORBA::Object::_nil ());" << endl + << "this->component_ =" << endl + << t.scoped_name () << "::_narrow (" << endl + << "obj.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN (CORBA::Object::_nil ());" << endl + << "if (CORBA::is_nil (this->component_.in ()))" << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::INTERNAL ()," << endl + << "::CORBA::Object::_nil ());" << endl + << "}" + << "}" + << "return " << t.scoped_name () << "::_duplicate (" << endl + << "this->component_.in ());" << endl + << "}"; + os << "// Operations for " << t.name () << " receptacles" << " and event sources," << endl << "// defined in " << t.scoped_name ().scope_name () << "::CCM_" @@ -1199,7 +1268,13 @@ namespace component_emitter.traverse (t); } - os << "// CIAO-specific." << endl << endl; + os << "// CIAO-specific." << endl << endl + << "::CIAO::Session_Container *" << endl + << t.name () << "_Context::" + << "_ciao_the_Container (void) const" << endl + << "{" + << "return this->container_;" << endl + << "}"; os << t.name () << "_Context *" << endl << t.name () << "_Context::_narrow (" << endl @@ -1272,10 +1347,10 @@ namespace Traversal::Belongs belongs_; }; - struct NavigationGetFacetExecEmitter : Traversal::ProviderData, - EmitterBase + struct NavigationProvidesEmitter : Traversal::ProviderData, + EmitterBase { - NavigationGetFacetExecEmitter (Context& c) + NavigationProvidesEmitter (Context& c) : EmitterBase (c) {} @@ -1285,7 +1360,7 @@ namespace os << "if (ACE_OS::strcmp (name, \"" << t.name () << "\") == 0)" << endl << "{" - << "return this->executor_->get_" << t.name () + << "return this->provide_" << t.name () << " (" << STRS[ENV_SNGL_ARG] << ");" << endl << "}"; } @@ -1580,6 +1655,25 @@ namespace SemanticGraph::Component& scope_; }; + struct ConsumesGetEmitter : Traversal::ConsumerData, + EmitterBase + { + ConsumesGetEmitter (Context& c) + : EmitterBase (c) + {} + + virtual void + traverse (Type& c) + { + os << "if (ACE_OS::strcmp (sink_name, \"" + << c.name () << "\") == 0)" << endl + << "{" + << "return this->get_consumer_" << c.name () + << " (" << STRS[ENV_SNGL_ARG] << ");" << endl + << "}"; + } + }; + struct PublishesSubscribeEmitter : Traversal::PublisherData, EmitterBase { @@ -1736,14 +1830,12 @@ namespace simple_type_name_emitter_ (c.os ()), servant_type_name_emitter_ (c.os ()), enclosing_type_name_emitter_ (c.os ()), - repo_id_emitter_ (c.os ()), scope_ (scope) { belongs_.node_traverser (type_name_emitter_); simple_belongs_.node_traverser (simple_type_name_emitter_); servant_belongs_.node_traverser (servant_type_name_emitter_); enclosing_belongs_.node_traverser (enclosing_type_name_emitter_); - repo_id_belongs_.node_traverser (repo_id_emitter_); } virtual void @@ -1757,17 +1849,10 @@ namespace << STRS[ENV_SNGL_SRC] << ")" << endl << STRS[EXCP_SNGL] << endl << "{" - << "if (! ::CORBA::is_nil (this->provide_" + << "if (::CORBA::is_nil (this->provide_" << p.name () << "_.in ()))" << endl - << "{" - << "return "; - - Traversal::ProviderData::belongs (p, belongs_); - - os << "::_duplicate (this->provide_" << p.name () << "_.in ());" - << "}"; + << "{"; - /* Traversal::ProviderData::belongs (p, enclosing_belongs_); os << "::CCM_"; @@ -1792,21 +1877,29 @@ namespace os << "::_nil ());" << endl << "}"; - */ - os << "::CORBA::Object_var obj =" << endl - << "this->provide_" << p.name () << "_i (" - << STRS[ENV_SNGL_ARG] << ");" - << "ACE_CHECK_RETURN ("; - Traversal::ProviderData::belongs (p, belongs_); + Traversal::ProviderData::belongs (p, servant_belongs_); - os << "::_nil ());" << endl; + os << " *svt =" << endl + << "new "; - ScopedName scoped (scope_.scoped_name ()); - Name stripped (scoped.begin () + 1, scoped.end ()); - string unique_obj_name = - regex::perl_s (stripped.str (), "/::/_/") + "_" + p.name ().str (); + Traversal::ProviderData::belongs (p, servant_belongs_); + os << " (" << endl + << "fexe.in ()," << endl + << "this->context_);" << endl + << "PortableServer::ServantBase_var safe_servant (svt);" + << endl + << "::CORBA::Object_var obj =" << endl + << "this->container_->install_servant (" << endl + << "svt" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + Traversal::ProviderData::belongs (p, belongs_); + + os << "::_nil ());" + << endl; Traversal::ProviderData::belongs (p, belongs_); @@ -1821,8 +1914,10 @@ namespace Traversal::ProviderData::belongs (p, belongs_); - os << "::_nil ());" << endl - << "this->provide_" << p.name () << "_ = fo;" + os << "::_nil ());" + << endl + << "this->provide_" << p.name () << "_ = fo;" << endl + << "}" << "return "; Traversal::ProviderData::belongs (p, belongs_); @@ -1830,99 +1925,6 @@ namespace os << "::_duplicate (this->provide_" << p.name () << "_.in ());" << endl << "}"; - - // Corresponding private provide_*_i() method. - - os << "::CORBA::Object_ptr" << endl - << scope_.name () - << "_Servant::provide_" << p.name () << "_i (" << endl - << STRS[ENV_SNGL_SRC] << ")" << endl - << STRS[EXCP_SNGL] << endl - << "{" - << "::CORBA::Object_ptr ret =" << endl - << "this->lookup_facet (\"" << p.name () << "\");" << endl; - - os << "if (! ::CORBA::is_nil (ret))" << endl - << "{" - << "return ret;" - << "}"; - - os << "CIAO::Port_Activator_T<" << endl - << " "; - - Traversal::ProviderData::belongs (p, servant_belongs_); - - os << "," << endl - << " "; - - Traversal::ProviderData::belongs (p, enclosing_belongs_); - - os << "::CCM_"; - - Traversal::ProviderData::belongs (p, simple_belongs_); - - os << "," << endl - << " ::Components::CCMContext," << endl - << " " << scope_.name () << "_Servant" << endl - << " > *tmp = 0;" << endl - << "typedef CIAO::Port_Activator_T<" << endl - << " "; - - Traversal::ProviderData::belongs (p, servant_belongs_); - - os << "," << endl - << " "; - - Traversal::ProviderData::belongs (p, enclosing_belongs_); - - os << "::CCM_"; - - Traversal::ProviderData::belongs (p, simple_belongs_); - - os << "," << endl - << " ::Components::CCMContext," << endl - << " " << scope_.name () << "_Servant" << endl - << " >" << endl - << "MACRO_MADNESS_TYPEDEF;" << endl; - - os << "ACE_NEW_THROW_EX ( " << endl - << "tmp," << endl - << "MACRO_MADNESS_TYPEDEF (" << endl - << "\"" << unique_obj_name << "\"," << endl - << "\"" << p.name () << "\"," << endl - << "CIAO::Port_Activator::Facet," << endl - << "0," << endl - << "this->context_," << endl - << "this)," << endl - << "CORBA::NO_MEMORY ());" << endl; - - os << "CIAO::Servant_Activator *sa = " << endl - << "this->container_->ports_servant_activator ();" << endl - << "if (!sa->register_port_activator (tmp))" << endl - << "{" - << "return 0;" << endl - << "}"; - - os << "::CORBA::Object_var obj =" << endl - << "this->container_->generate_reference (" << endl - << "\"" << unique_obj_name << "\"," << endl; - - Traversal::ProviderData::belongs (p, repo_id_belongs_); - - os << "," << endl - << "CIAO::Container::Facet_Consumer" << endl - << STRS[ENV_ARG] << ");" - << "ACE_CHECK_RETURN ("; - - Traversal::ProviderData::belongs (p, belongs_); - - os << "::_nil ());" << endl - << "this->add_facet (" << endl - << "\"" << p.name () << "\"," << endl - << "obj.in ());" << endl; - - os << "return obj._retn ();" << endl - << "}"; } private: @@ -1930,12 +1932,10 @@ namespace SimpleTypeNameEmitter simple_type_name_emitter_; ServantTypeNameEmitter servant_type_name_emitter_; EnclosingTypeNameEmitter enclosing_type_name_emitter_; - RepoIdEmitter repo_id_emitter_; Traversal::Belongs belongs_; Traversal::Belongs simple_belongs_; Traversal::Belongs servant_belongs_; Traversal::Belongs enclosing_belongs_; - Traversal::Belongs repo_id_belongs_; SemanticGraph::Component& scope_; }; @@ -1946,12 +1946,10 @@ namespace : EmitterBase (c), type_name_emitter_ (c.os ()), simple_type_name_emitter_ (c.os ()), - repo_id_emitter_ (c.os ()), scope_ (scope) { belongs_.node_traverser (type_name_emitter_); simple_belongs_.node_traverser (simple_type_name_emitter_); - repo_id_belongs_.node_traverser (repo_id_emitter_); } virtual void @@ -2080,31 +2078,36 @@ namespace << STRS[ENV_SNGL_SRC] << ")" << endl << STRS[EXCP_SNGL] << endl << "{" - << "if (! ::CORBA::is_nil (this->consumes_" << c.name () + << "if (CORBA::is_nil (this->consumes_" << c.name () << "_.in ()))" << endl << "{" - << "return "; + << scope_.name () << "_Servant::"; - Traversal::ConsumerData::belongs (c, belongs_); + Traversal::ConsumerData::belongs (c, simple_belongs_); - os << "Consumer::_duplicate (this->consumes_" - << c.name () << "_.in ());" - << "}"; + os << "Consumer_" << c.name () + << "_Servant *svt =" << endl + << "new " << scope_.name () + << "_Servant::"; + + Traversal::ConsumerData::belongs (c, simple_belongs_); - os << "::Components::EventConsumerBase_var obj =" << endl - << "this->get_consumer_" << c.name () << "_i (" << endl - << STRS[ENV_SNGL_ARG] << ");" + os << "Consumer_" << c.name () + << "_Servant (" << endl + << "this->executor_.in ()," << endl + << "this->context_);" + << "PortableServer::ServantBase_var safe_servant (svt);" + << endl + << "CORBA::Object_var obj =" << endl + << "this->container_->install_servant (" << endl + << "svt" << endl + << STRS[ENV_ARG] << ");" << "ACE_CHECK_RETURN ("; Traversal::ConsumerData::belongs (c, belongs_); os << "Consumer::_nil ());" << endl; - ScopedName scoped (scope_.scoped_name ()); - Name stripped (scoped.begin () + 1, scoped.end ()); - string unique_obj_name = - regex::perl_s (stripped.str (), "/::/_/") + "_" + c.name ().str (); - Traversal::ConsumerData::belongs (c, belongs_); os << "Consumer_var eco =" << endl; @@ -2118,8 +2121,9 @@ namespace Traversal::ConsumerData::belongs (c, belongs_); - os << "Consumer::_nil ());" << endl - << "this->consumes_" << c.name () << "_ = eco;" + os<< "Consumer::_nil ());" << endl + << "this->consumes_" << c.name () << "_ = eco;" << endl + << "}" << "return "; Traversal::ConsumerData::belongs (c, belongs_); @@ -2127,118 +2131,13 @@ namespace os << "Consumer::_duplicate (this->consumes_" << c.name () << "_.in ());" << endl << "}"; - - // Corresponding private get_consumer_*_i() method. - - os << "::Components::EventConsumerBase_ptr" << endl - << scope_.name () << "_Servant::" - << "get_consumer_" << c.name () << "_i (" << endl - << STRS[ENV_SNGL_SRC] << ")" << endl - << STRS[EXCP_SNGL] << endl - << "{" - << "::Components::EventConsumerBase_ptr ret =" << endl - << "this->lookup_consumer (\"" << c.name () << "\");" << endl; - - os << "if (! ::CORBA::is_nil (ret))" << endl - << "{" - << "return ret;" - << "}"; - - os << "CIAO::Port_Activator_T<" << endl; - - os << scope_.name () << "_Servant::"; - - Traversal::ConsumerData::belongs (c, simple_belongs_); - - os << "Consumer_" << c.name () - << "_Servant," << endl - << c.scoped_name ().scope_name ().scope_name () - << "::CCM_" - << c.scoped_name ().scope_name ().simple_name () - << "," << endl - << c.scoped_name ().scope_name ().scope_name () << "::CCM_" - << c.scoped_name ().scope_name ().simple_name () - << "_Context," << endl - << scope_.name () << "_Servant" - << " > *tmp = 0;" << endl - << "typedef CIAO::Port_Activator_T<" << endl; - - os << scope_.name () << "_Servant::"; - - Traversal::ConsumerData::belongs (c, simple_belongs_); - - os << "Consumer_" << c.name () - << "_Servant," << endl - << c.scoped_name ().scope_name ().scope_name () - << "::CCM_" - << c.scoped_name ().scope_name ().simple_name () - << "," << endl - << c.scoped_name ().scope_name ().scope_name () << "::CCM_" - << c.scoped_name ().scope_name ().simple_name () - << "_Context, " << endl - << scope_.name () << "_Servant" - << " > " << endl - << " MACRO_MADNESS_TYPEDEF;" - << endl << endl; - - os << "ACE_NEW_THROW_EX ( " << endl - << " tmp," << endl - << " MACRO_MADNESS_TYPEDEF (" << endl - << "\"" << unique_obj_name << "\"," << endl - << "\"" << c.name () << "\"," << endl - << "CIAO::Port_Activator::Sink," << endl - << "this->executor_.in ()," << endl - << "this->context_," << endl - << "this)," << endl - << "CORBA::NO_MEMORY ());" << endl << endl; - - os << "CIAO::Servant_Activator *sa = " << endl - << "this->container_->ports_servant_activator ();" <<endl - << "if (!sa->register_port_activator (tmp))" << endl - << "{" - << "return 0;" << endl - << "}"; - - os << "::CORBA::Object_var obj =" << endl - << "this->container_->generate_reference (" << endl - << "\"" << unique_obj_name << "\"," << endl; - - Traversal::ConsumerData::belongs (c, repo_id_belongs_); - - os << "," << endl - << "CIAO::Container::Facet_Consumer" << endl - << STRS[ENV_ARG] << ");" - << "ACE_CHECK_RETURN ("; - - Traversal::ConsumerData::belongs (c, belongs_); - - os << "Consumer::_nil ());" << endl; - - os << "::Components::EventConsumerBase_var ecb =" << endl - << "::Components::EventConsumerBase::_narrow (" << endl - << "obj.in ()" << endl - << STRS[ENV_ARG] << ");" - << "ACE_CHECK_RETURN ("; - - Traversal::ConsumerData::belongs (c, belongs_); - - os << "Consumer::_nil ());" << endl; - - os << "this->add_consumer (" << endl - << "\"" << c.name () << "\"," << endl - << "ecb.in ());" << endl; - - os << "return ecb._retn ();" << endl - << "}"; - } + } private: TypeNameEmitter type_name_emitter_; SimpleTypeNameEmitter simple_type_name_emitter_; - ConsumerRepoIdEmitter repo_id_emitter_; Traversal::Belongs belongs_; Traversal::Belongs simple_belongs_; - Traversal::Belongs repo_id_belongs_; SemanticGraph::Component& scope_; }; @@ -2287,9 +2186,13 @@ namespace traverse (SemanticGraph::Provider& p) { os << "obj_var =" << endl - << "this->provide_" << p.name () << "_i (" << endl - << STRS[ENV_SNGL_ARG] << ");" + << " this->provide_" << p.name () << " (" << endl + << " " << STRS[ENV_SNGL_ARG] << ");" << "ACE_CHECK;" << endl; + + os << "this->add_facet (" << endl + << "\"" << p.name () << "\"," << endl + << "obj_var.in ());" << endl; } virtual void @@ -2310,49 +2213,15 @@ namespace virtual void traverse (SemanticGraph::Consumer& p) { - os << "ecb_var =" << endl - << "this->get_consumer_" << p.name () << "_i (" << endl - << STRS[ENV_SNGL_ARG] << ");" + os << "ec_base_var =" << endl + << " this->get_consumer_" << p.name () << " (" << endl + << " " << STRS[ENV_SNGL_ARG] << ");" << "ACE_CHECK;" << endl; - } - }; - struct SetAttributesEmitter : Traversal::ReadWriteAttribute, - EmitterBase - { - SetAttributesEmitter (Context& c) - : EmitterBase (c), - extract_emitter_ (c.os ()), - assign_emitter_ (c.os ()) - { - extract_belongs_.node_traverser (extract_emitter_); - assign_belongs_.node_traverser (assign_emitter_); - } - - virtual void - pre (SemanticGraph::ReadWriteAttribute& a) - { - os << "if (ACE_OS::strcmp (descr_name, \"" - << a.name () << "\") == 0)" << endl - << "{"; - - Traversal::ReadWriteAttribute::belongs (a, extract_belongs_); - - os << "descr_value >>= " << STRS[EXTRACT] << ";" - << "this->" << a.name () << " ("; - - Traversal::ReadWriteAttribute::belongs (a, assign_belongs_); - - os << ");" - << "continue;" - << "}"; + os << "this->add_consumer (" << endl + << "\"" << p.name () << "\"," << endl + << "ec_base_var.in ());" << endl; } - - private: - ExtractedTypeDeclEmitter extract_emitter_; - AssignFromExtractedEmitter assign_emitter_; - Traversal::Belongs extract_belongs_; - Traversal::Belongs assign_belongs_; }; public: @@ -2373,31 +2242,12 @@ namespace << "_ptr exe," << endl << "::Components::CCMHome_ptr h," << endl << "::CIAO::Session_Container *c)" << endl - << " : Servant_Impl_Base (c)," << endl - << " comp_svnt_base (exe, c)" << endl + << " : our_base (exe, c)" << endl << "{" << "this->context_ = " - << "new " << t.name () << "_Context (h, c, this);" << endl; - - // Generate the macro to register a value factory for each - // eventtype consumed. - { - Traversal::Component component_emitter; - - Traversal::Inherits inherits; - inherits.node_traverser (component_emitter); - - Traversal::Defines defines; - component_emitter.edge_traverser (defines); - component_emitter.edge_traverser (inherits); - - RegisterValueFactoryEmitter factory_emitter (ctx); - defines.node_traverser (factory_emitter); - - component_emitter.traverse (t); - } - - os << "ACE_TRY_NEW_ENV" << endl + << "new " << t.name () << "_Context (h, c, this);" + << endl + << "ACE_TRY_NEW_ENV" << endl << "{" << "::Components::SessionComponent_var scom =" << endl << "::Components::SessionComponent::_narrow (" << endl @@ -2411,9 +2261,6 @@ namespace << STRS[ENV_ARG] << ");" << "ACE_TRY_CHECK;" << "}" - << "this->populate_port_tables (" << endl - << STRS[ENV_SNGL_ARG] << ");" - << "ACE_TRY_CHECK;" << "}" << "ACE_CATCHANY" << endl << "{" @@ -2427,18 +2274,7 @@ namespace << "{" << "}"; - // Override pure virtual set_attributes() operation. - os << "void" << endl - << t.name () << "_Servant::set_attributes (" << endl - << "const ::Components::ConfigValues &descr" << endl - << STRS[ENV_SRC_NOTUSED] << ")" << endl - << "{" - << "for (CORBA::ULong i = 0; i < descr.length (); ++i)" << endl - << "{" - << "const char *descr_name = descr[i]->name ();" - << "::CORBA::Any &descr_value = descr[i]->value ();" << endl; - - // Generate string compare and set for each attribute. + // Generate provides_<facet> operation. { Traversal::Component component_emitter; @@ -2449,20 +2285,30 @@ namespace component_emitter.edge_traverser (defines); component_emitter.edge_traverser (inherits); - SetAttributesEmitter set_attributes_emitter (ctx); - defines.node_traverser (set_attributes_emitter); + FacetProvidesEmitter provides_emitter (ctx, t); + defines.node_traverser (provides_emitter); component_emitter.traverse (t); } + os << "// Operations for Navigation interface." << endl << endl; - os << "ACE_UNUSED_ARG (descr_name);" - << "ACE_UNUSED_ARG (descr_value);" << endl; - - os << "}" + os << "CORBA::Object_ptr" << endl + << t.name () << "_Servant::provide_facet (" << endl + << "const char *name" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "if (name == 0)" << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::BAD_PARAM ()," << endl + << "::CORBA::Object::_nil ());" << endl << "}"; - // Generate provides_<facet> operation. + // Generate an IF block for each facet inside provide_facet(). { Traversal::Component component_emitter; @@ -2473,12 +2319,49 @@ namespace component_emitter.edge_traverser (defines); component_emitter.edge_traverser (inherits); - FacetProvidesEmitter provides_emitter (ctx, t); - defines.node_traverser (provides_emitter); + NavigationProvidesEmitter navigation_provides_emitter (ctx); + defines.node_traverser (navigation_provides_emitter); component_emitter.traverse (t); } + os << "ACE_THROW_RETURN (" << endl + << STRS[EXCP_IN] << " ()," << endl + << "::CORBA::Object::_nil ());" << endl + << "}"; + + os << "::Components::FacetDescriptions *" << endl + << t.name () << "_Servant::get_named_facets (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::EmitterDescriptions *" << endl + << t.name () << "_Servant::get_all_emitters (" + << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::EmitterDescriptions *" << endl + << t.name () << "_Servant::get_named_emitters (" + << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + // Generate subscribe_* and unsubscribe_* operations. { Traversal::Component component_emitter; @@ -2595,6 +2478,39 @@ namespace << "ACE_UNUSED_ARG (ck);" << endl << "}"; + os << "::Components::ConnectionDescriptions *" << endl + << t.name () << "_Servant::get_connections (" + << endl + << "const char * /* name */" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::ReceptacleDescriptions *" << endl + << t.name () << "_Servant::get_all_receptacles (" + << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::ReceptacleDescriptions *" << endl + << t.name () << "_Servant::get_named_receptacles (" + << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + // Generate generic operations for receptacles. { Traversal::Component component_emitter; @@ -2612,6 +2528,43 @@ namespace component_emitter.traverse (t); } + os << STRS[COMP_ECB] << "_ptr" << endl + << t.name () << "_Servant::get_consumer (" << endl + << "const char *sink_name" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "if (sink_name == 0)" << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << STRS[EXCP_IN] << " ()," << endl + << STRS[COMP_ECB] << "::_nil ());" << endl + << "}"; + + // Generate an IF block in for each consumer in get_consumer(). + { + Traversal::Component component_emitter; + + Traversal::Inherits inherits; + inherits.node_traverser (component_emitter); + + Traversal::Defines defines; + component_emitter.edge_traverser (defines); + component_emitter.edge_traverser (inherits); + + ConsumesGetEmitter consumes_emitter (ctx); + defines.node_traverser (consumes_emitter); + + component_emitter.traverse (t); + } + + os << "ACE_THROW_RETURN (" << endl + << STRS[EXCP_IN] << " ()," << endl + << STRS[COMP_ECB] << "::_nil ());" << endl + << "}"; + os << "void" << endl << t.name () << "_Servant::connect_consumer (" << endl @@ -2651,6 +2604,31 @@ namespace << STRS[EXCP_IN] << " ());" << endl << "}"; + os << STRS[COMP_ECB] << "_ptr" << endl + << t.name () << "_Servant::disconnect_consumer (" + << endl + << "const char * /* source_name */" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "," << endl + << STRS[EXCP_NC] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::ConsumerDescriptions *" << endl + << t.name () << "_Servant::get_named_consumers (" + << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + os << STRS[COMP_CK] << " *" << endl << t.name () << "_Servant::subscribe (" << endl << "const char *publisher_name," << endl @@ -2732,6 +2710,30 @@ namespace << STRS[COMP_ECB] << "::_nil ());" << endl << "}"; + // @@ (diego) These are not implemented. Whenever they are, + // they'll require a treatment as all the other ports above. + + os << "::Components::PublisherDescriptions *" << endl + << t.name () << "_Servant::get_all_publishers (" + << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + + os << "::Components::PublisherDescriptions *" << endl + << t.name () << "_Servant::get_named_publishers (" + << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "))" << endl + << "{" + << "ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0);" << endl + << "}"; + // Generate connect() and disconnect() for each emits declaration. { Traversal::Component component_emitter; @@ -2749,21 +2751,146 @@ namespace component_emitter.traverse (t); } - os << "CORBA::Object_ptr" << endl + os << "// Operations for CCMObject interface." << endl << endl; + + os << "CORBA::IRObject_ptr" << endl + << t.name () << "_Servant::get_component_def (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::NO_IMPLEMENT ()," << endl + << "::CORBA::IRObject::_nil ());" << endl + << "}"; + + os << "::Components::CCMHome_ptr" << endl + << t.name () << "_Servant::get_ccm_home (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "return this->context_->get_CCM_home " + << "(ACE_ENV_SINGLE_ARG_PARAMETER);" << endl + << "}"; + + os << "::Components::PrimaryKeyBase *" << endl + << t.name () << "_Servant::get_primary_key (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_NKA] << "))" << endl + << "{" + << "ACE_THROW_RETURN (" << STRS[EXCP_NKA] << " (), 0);" << endl + << "}"; + + os << "void" << endl << t.name () - << "_Servant::get_facet_executor (const char *name" << endl - << STRS[ENV_SRC] << ")" << endl + << "_Servant::configuration_complete (" << endl + << STRS[ENV_SNGL_SRC_NOTUSED] << ")" << endl << STRS[EXCP_START] << endl - << STRS[EXCP_SYS] << "))" << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_ICF] << "))" << endl << "{" - << "if (name == 0)" << endl + << "// CIAO to-do" << endl + << "}"; + + os << "void" << endl + << t.name () << "_Servant::remove (" << endl + << STRS[ENV_SNGL_SRC_NOTUSED] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_RF] << "))" << endl << "{" + << "// CIAO to-do" << endl + << "}"; + + os << "::Components::ComponentPortDescription *" << endl + << t.name () << "_Servant::get_all_ports (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "::Components::ComponentPortDescription_var retv =" << endl + << "new OBV_Components::ComponentPortDescription;" << endl + << "::Components::FacetDescriptions_var facets_desc =" << endl + << "this->get_all_facets (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK_RETURN (0);" << endl + << "::Components::ReceptacleDescriptions_var receptacle_desc =" + << endl + << "this->get_all_receptacles (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK_RETURN (0);" << endl + << "::Components::ConsumerDescriptions_var consumer_desc =" << endl + << "this->get_all_consumers (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK_RETURN (0);" << endl + << "::Components::EmitterDescriptions_var emitter_desc =" << endl + << "this->get_all_emitters (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK_RETURN (0);" << endl + << "::Components::PublisherDescriptions_var publisher_desc =" + << endl + << "this->get_all_publishers (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK_RETURN (0);" << endl + << "retv->facets (facets_desc.in ());" + << "retv->receptacles (receptacle_desc.in ());" + << "retv->consumers (consumer_desc.in ());" + << "retv->emitters (emitter_desc.in ());" + << "retv->publishers (publisher_desc.in ());" << endl + << "return retv._retn ();" << endl + << "}"; + + os << "CORBA::Object_ptr" << endl + << t.name () << "_Servant::_get_component (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << STRS[COMP_SC] << "_var sc =" << endl + << STRS[COMP_SC] << "::_narrow (" << endl + << "this->context_" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN (::CORBA::Object::_nil ());" << endl + << "if (! ::CORBA::is_nil (sc.in ()))" << endl + << "{" + << "return sc->get_CCM_object (" << STRS[ENV_SNGL_ARG] << ");" + << endl + << "}" + << "::Components::EntityContext_var ec =" << endl + << "::Components::EntityContext::_narrow (" << endl + << "this->context_" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN (::CORBA::Object::_nil ());" << endl + << "if (! ::CORBA::is_nil (ec.in ()))" << endl + << "{" + << "return ec->get_CCM_object (" << STRS[ENV_SNGL_ARG] << ");" + << endl + << "}" << "ACE_THROW_RETURN (" << endl - << "::CORBA::BAD_PARAM ()," << endl + << "::CORBA::INTERNAL ()," << endl << "::CORBA::Object::_nil ());" << endl << "}"; - // Generate an IF block for each facet inside provide_facet(). + os << "// CIAO-specific operations." << endl << endl; + + os << "void" << endl + << t.name () << "_Servant::ciao_preactivate (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "::Components::SessionComponent_var temp =" << endl + << "::Components::SessionComponent::_narrow (" << endl + << "this->executor_.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK;" << endl + << "if (! ::CORBA::is_nil (temp.in ()))" << endl + << "{" + << "temp->ciao_preactivate (" << STRS[ENV_SNGL_ARG] << ");" << endl + << "}" + << "}"; + + os << "void" << endl + << t.name () << "_Servant::ciao_activate (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{"; + + // Generate the macro to register a value factory for each + // eventtype consumed. { Traversal::Component component_emitter; @@ -2774,14 +2901,60 @@ namespace component_emitter.edge_traverser (defines); component_emitter.edge_traverser (inherits); - NavigationGetFacetExecEmitter navigation_facet_exec_emitter (ctx); - defines.node_traverser (navigation_facet_exec_emitter); + RegisterValueFactoryEmitter factory_emitter (ctx); + defines.node_traverser (factory_emitter); component_emitter.traverse (t); } - os << " return CORBA::Object::_nil ();" + os << "::Components::SessionComponent_var temp =" << endl + << "::Components::SessionComponent::_narrow (" << endl + << "this->executor_.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK;" << endl + << "if (! ::CORBA::is_nil (temp.in ()))" << endl + << "{" + << "temp->ccm_activate (" << STRS[ENV_SNGL_ARG] << ");" << endl + << "}" + << "}"; + + os << "void" << endl + << t.name () << "_Servant::ciao_postactivate (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "::Components::SessionComponent_var temp =" << endl + << "::Components::SessionComponent::_narrow (" << endl + << "this->executor_.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK;" << endl + << "if (! ::CORBA::is_nil (temp.in ()))" << endl + << "{" + << "temp->ciao_postactivate (" << STRS[ENV_SNGL_ARG] << ");" +// << "ACE_CHECK;" + << "}" +// @@@ JP - This is commented out for now until other issues in +// DaNCe get resolved +// << "this->populate_port_tables (" << STRS[ENV_SNGL_ARG] +// << ");" << "}"; + + os << "void" << endl + << t.name () << "_Servant::_ciao_passivate (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "::Components::SessionComponent_var temp =" << endl + << "::Components::SessionComponent::_narrow (" << endl + << "this->executor_.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK;" << endl + << "if (! ::CORBA::is_nil (temp.in ()))" << endl + << "{" + << "temp->ccm_passivate (" << STRS[ENV_SNGL_ARG] << ");" << endl + << "}" + << "}"; + os << "// Supported operations." << endl << endl; // Generate operations for all supported interfaces. @@ -2870,7 +3043,7 @@ namespace } os << "// Private method to populate the port tables." - << endl; + << endl << endl; os << "void" << endl << t.name () << "_Servant::populate_port_tables (" << endl @@ -2878,7 +3051,7 @@ namespace << STRS[EXCP_SNGL] << endl << "{" << "::CORBA::Object_var obj_var;" - << "::Components::EventConsumerBase_var ecb_var;" << endl; + << "::Components::EventConsumerBase_var ec_base_var;" << endl; { Traversal::Component component_emitter; @@ -3181,7 +3354,7 @@ namespace os << "{" << "ACE_THROW_RETURN (" << endl << "::CORBA::NO_IMPLEMENT ()," << endl; - + Traversal::HomeFinder::returns (hf, simple_returns_); os << "::_nil ());" @@ -3219,8 +3392,9 @@ namespace << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_ptr exe," << endl << "::CIAO::Session_Container *c)" << endl - << " : CIAO::Home_Servant_Impl_Base (c)," << endl - << " " << "home_svnt_base (exe, c)" << endl + << ": executor_ (" << t.scoped_name ().scope_name () << "::CCM_" + << t.name () << "::_duplicate (exe))," << endl + << "container_ (c)" << endl << "{" << "}"; @@ -3417,6 +3591,380 @@ namespace home_emitter.traverse (t); } + + os << "// Operations for keyless home interface." << endl << endl; + + os << "::Components::CCMObject_ptr" << endl + << t.name () << "_Servant::create_component (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << "::Components::CreateFailure))" << endl + << "{" + << "return this->create (" << STRS[ENV_SNGL_ARG] << ");" << endl + << "}"; + + os << "// Operations for implicit home interface." << endl << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_ptr" << endl + << t.name () << "_Servant::create (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << "::Components::CreateFailure))" << endl + << "{" + << "if (this->executor_.in () == 0)" << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::INTERNAL ()," << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" << endl + << "}" + << STRS[COMP_EC] << "_var _ciao_ec =" << endl + << "this->executor_->create (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" << endl; + + { + EnclosingTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::CCM_"; + + { + SimpleTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_var _ciao_comp =" << endl; + + { + EnclosingTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::CCM_"; + + { + SimpleTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_narrow (" << endl + << "_ciao_ec.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" << endl + << "return this->_ciao_activate_component (" << endl + << "_ciao_comp.in ()" << endl + << STRS[ENV_ARG] << ");" << endl + << "}"; + + os << "// Operations for CCMHome interface." << endl << endl; + + os << "::CORBA::IRObject_ptr" << endl + << t.name () << "_Servant::get_component_def (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::NO_IMPLEMENT ()," << endl + << "::CORBA::IRObject::_nil ());" << endl + << "}"; + + os << "::CORBA::IRObject_ptr" << endl + << t.name () << "_Servant::get_home_def (" << endl + << STRS[ENV_SNGL_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "ACE_THROW_RETURN (" << endl + << "::CORBA::NO_IMPLEMENT ()," << endl + << "::CORBA::IRObject::_nil ());" << endl + << "}"; + + os << "void" << endl + << t.name () << "_Servant::remove_component (" << endl + << "::Components::CCMObject_ptr comp" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_RF] << "))" << endl + << "{"; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_var _ciao_comp =" << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_narrow (" << endl + << "comp" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK;" << endl + << "if (CORBA::is_nil (_ciao_comp.in ()))" << endl + << "{" + << "ACE_THROW (CORBA::INTERNAL ());" << endl + << "}" + << "_ciao_comp->remove (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK;" << endl + << "this->_ciao_passivate_component (" << endl + << "_ciao_comp.in ()" << endl + << STRS[ENV_ARG] << ");" << endl + << "}"; + + os << "// CIAO-specific operations." << endl << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_ptr" << endl + << t.name () + << "_Servant::_ciao_activate_component (" << endl; + + { + EnclosingTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::CCM_"; + + { + SimpleTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_ptr exe" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "::CORBA::Object_var hobj =" << endl + << "this->container_->get_objref (" << endl + << "this" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" + << endl + << "::Components::CCMHome_var home =" << endl + << "::Components::CCMHome::_narrow (" << endl + << "hobj.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" + << endl; + + { + SimpleTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_Servant *svt =" << endl + << "new "; + + { + SimpleTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_Servant (" + << endl + << "exe," << endl + << "home.in ()," << endl + << "this->container_);" << endl + << "PortableServer::ServantBase_var safe (svt);" + << "PortableServer::ObjectId_var oid;" << endl + << "CORBA::Object_var objref =" << endl + << "this->container_->install_component (" << endl + << "svt," << endl + << "oid.out ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" + << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_var ho =" << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_narrow (" << endl + << "objref.in ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK_RETURN ("; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "::_nil ());" + << endl + << "if (this->component_map_.bind (oid.in (), svt) == 0)" << endl + << "{" + << "safe._retn ();" << endl + << "}" + << "return ho._retn ();" << endl + << "}"; + + os << "void" << endl + << t.name () + << "_Servant::_ciao_passivate_component (" << endl; + + { + TypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_ptr comp" << endl + << STRS[ENV_SRC] << ")" << endl + << STRS[EXCP_SNGL] << endl + << "{" + << "PortableServer::ObjectId_var oid;" << endl + << "this->container_->uninstall_component (" << endl + << "comp," << endl + << "oid.out ()" << endl + << STRS[ENV_ARG] << ");" + << "ACE_CHECK;" << endl; + + { + SimpleTypeNameEmitter name_emitter (os); + Traversal::Manages manages_; + manages_.node_traverser (name_emitter); + + manages (t, manages_); + } + + os << "_Servant *servant = 0;" + << endl + << "if (this->component_map_.unbind (oid.in (), servant) == 0)" + << endl + << "{" + << "PortableServer::ServantBase_var safe (servant);" << endl + << "servant->_ciao_passivate (" << STRS[ENV_SNGL_ARG] << ");" + << "ACE_CHECK;" << endl + << "}" + << "}"; } virtual void @@ -3513,9 +4061,7 @@ ServantSourceEmitter::pre (TranslationUnit& u) + "/"); os << "#include \"" << file_name << "\"" << endl - << "#include \"Cookies.h\"" << endl - << "#include \"ciao/Servant_Activator.h\"" << endl - << "#include \"ciao/Port_Activator_T.h\"" << endl << endl; + << "#include \"Cookies.h\"" << endl << endl; } void diff --git a/TAO/CIAO/CIDLC/TypeNameEmitter.cpp b/TAO/CIAO/CIDLC/TypeNameEmitter.cpp index 6603518da0c..863a7813d78 100644 --- a/TAO/CIAO/CIDLC/TypeNameEmitter.cpp +++ b/TAO/CIAO/CIDLC/TypeNameEmitter.cpp @@ -15,141 +15,6 @@ TypeNameEmitter::TypeNameEmitter (ostream& os_) { } -void -TypeNameEmitter::traverse (Void&) -{ -} - -void -TypeNameEmitter::traverse (Boolean&) -{ -} - -void -TypeNameEmitter::traverse (Octet&) -{ -} - -void -TypeNameEmitter::traverse (Char&) -{ -} - -void -TypeNameEmitter::traverse (Wchar&) -{ -} - -void -TypeNameEmitter::traverse (Short&) -{ -} - -void -TypeNameEmitter::traverse (UnsignedShort&) -{ -} - -void -TypeNameEmitter::traverse (Long&) -{ -} - -void -TypeNameEmitter::traverse (UnsignedLong&) -{ -} - -void -TypeNameEmitter::traverse (LongLong&) -{ -} - -void -TypeNameEmitter::traverse (UnsignedLongLong&) -{ -} - -void -TypeNameEmitter::traverse (Float&) -{ -} - -void -TypeNameEmitter::traverse (Double&) -{ -} - -void -TypeNameEmitter::traverse (String&) -{ -} - -void -TypeNameEmitter::traverse (Wstring&) -{ -} - -void -TypeNameEmitter::traverse (Object&) -{ -} - -void -TypeNameEmitter::traverse (ValueBase&) -{ -} - -void -TypeNameEmitter::traverse (Any&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::Enum&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::Struct&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::Union&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::UnboundedSequence&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::Interface&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::ValueType&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::EventType&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::Component&) -{ -} - -void -TypeNameEmitter::traverse (SemanticGraph::Home&) -{ -} - // ==================================================================== ReturnTypeNameEmitter::ReturnTypeNameEmitter (ostream& os_) @@ -345,6 +210,12 @@ INArgTypeNameEmitter::INArgTypeNameEmitter (ostream& os_) } void +INArgTypeNameEmitter::traverse (Void&) +{ + // No-op, but the base class method is pure virtual. +} + +void INArgTypeNameEmitter::traverse (Boolean&) { os << "::CORBA::Boolean"; @@ -508,6 +379,12 @@ INOUTArgTypeNameEmitter::INOUTArgTypeNameEmitter (ostream& os_) } void +INOUTArgTypeNameEmitter::traverse (Void&) +{ + // No-op, but the base class method is pure virtual. +} + +void INOUTArgTypeNameEmitter::traverse (Boolean&) { os << "::CORBA::Boolean &"; @@ -671,6 +548,12 @@ OUTArgTypeNameEmitter::OUTArgTypeNameEmitter (ostream& os_) } void +OUTArgTypeNameEmitter::traverse (Void&) +{ + // No-op, but the base class method is pure virtual. +} + +void OUTArgTypeNameEmitter::traverse (Boolean&) { os << "::CORBA::Boolean_out"; @@ -834,6 +717,11 @@ NullReturnEmitter::NullReturnEmitter (ostream& os_) } void +NullReturnEmitter::traverse (Void&) +{ +} + +void NullReturnEmitter::traverse (Boolean&) { os << "return false;"; @@ -938,8 +826,7 @@ NullReturnEmitter::traverse (Any&) void NullReturnEmitter::traverse (SemanticGraph::Enum& e) { - os << e.scoped_name () << " retval;" << endl - << "return retval;"; + os << e.scoped_name (); } void @@ -1014,529 +901,4 @@ NullReturnEmitter::traverse (SemanticGraph::Home& h) os << "return " << h.scoped_name () << "::_nil ();"; } -// ==================================================================== - -NullRHSEmitter::NullRHSEmitter (ostream& os_) - : TypeNameEmitter (os_) -{ -} - -void -NullRHSEmitter::traverse (Boolean&) -{ - os << "= false;"; -} - -void -NullRHSEmitter::traverse (Octet&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Char&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Wchar&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Short&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (UnsignedShort&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Long&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (UnsignedLong&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (LongLong&) -{ - os << "= ACE_CDR_LONGLONG_INITIALIZER;"; -} - -void -NullRHSEmitter::traverse (UnsignedLongLong&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Float&) -{ - os << "= 0.0f;"; -} - -void -NullRHSEmitter::traverse (Double&) -{ - os << "= 0.0;"; -} - -void -NullRHSEmitter::traverse (String&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Wstring&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Object&) -{ - os << "= ::CORBA::Object::_nil ();"; -} - -void -NullRHSEmitter::traverse (ValueBase&) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (Any&) -{ - // This will hopefully work both if the lhs is a pointer (for example - // RetunrTypeNameEmitter) or not (for example INArgTypeNameEmitter). - os << ";"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::Enum& e) -{ - os << ";"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::Struct& s) -{ - // This should always be in the context, since the SizeTypeCalculator - // is executed before the servant code generators. - bool var_size = s.context ().get<bool> (STRS[VAR_SIZE]); - - if (var_size) - { - os << "= 0;"; - } - else - { - os << ";"; - } -} - -void -NullRHSEmitter::traverse (SemanticGraph::Union& u) -{ - // This should always be in the context, since the SizeTypeCalculator - // is executed before the servant code generators. - bool var_size = u.context ().get<bool> (STRS[VAR_SIZE]); - - if (var_size) - { - os << "= 0;"; - } - else - { - os << ";"; - } -} - -void -NullRHSEmitter::traverse (SemanticGraph::UnboundedSequence& s) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::Interface& i) -{ - os << "= " << i.scoped_name () << "::_nil ();"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::ValueType& v) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::EventType& e) -{ - os << "= 0;"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::Component& c) -{ - os << "= " << c.scoped_name () << "::_nil ();"; -} - -void -NullRHSEmitter::traverse (SemanticGraph::Home& h) -{ - os << "= " << h.scoped_name () << "::_nil ();"; -} - -// ==================================================================== - -ExtractedTypeDeclEmitter::ExtractedTypeDeclEmitter (ostream& os_) - : TypeNameEmitter (os_) -{ -} - -void -ExtractedTypeDeclEmitter::traverse (Boolean&) -{ - os << "::CORBA::Boolean " << STRS[EXTRACT_TMP] << " = false;" - << "::CORBA::Any::to_boolean " << STRS[EXTRACT] - << " (" << STRS[EXTRACT_TMP] << ");"; -} - -void -ExtractedTypeDeclEmitter::traverse (Octet&) -{ - os << "::CORBA::Octet " << STRS[EXTRACT_TMP] << " = 0;" - << "::CORBA::Any::to_octet " << STRS[EXTRACT] - << " (" << STRS[EXTRACT_TMP] << ");"; -} - -void -ExtractedTypeDeclEmitter::traverse (Char&) -{ - os << "::CORBA::Char " << STRS[EXTRACT_TMP] << " = 0;" - << "::CORBA::Any::to_char " << STRS[EXTRACT] - << " (" << STRS[EXTRACT_TMP] << ");"; -} - -void -ExtractedTypeDeclEmitter::traverse (Wchar&) -{ - os << "::CORBA::WChar " << STRS[EXTRACT_TMP] << " = 0;" - << "::CORBA::Any::to_wchar " << STRS[EXTRACT] - << " (" << STRS[EXTRACT_TMP] << ");"; -} - -void -ExtractedTypeDeclEmitter::traverse (Short&) -{ - os << "::CORBA::Short " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (UnsignedShort&) -{ - os << "::CORBA::UShort " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (Long&) -{ - os << "::CORBA::Long " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (UnsignedLong&) -{ - os << "::CORBA::ULong " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (LongLong&) -{ - os << "::CORBA::LongLong " << STRS[EXTRACT] - << " = ACE_CDR_LONGLONG_INITIALIZER;"; -} - -void -ExtractedTypeDeclEmitter::traverse (UnsignedLongLong&) -{ - os << "::CORBA::ULongLong " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (Float&) -{ - os << "::CORBA::Float " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (Double&) -{ - os << "::CORBA::Double " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (String&) -{ - os << "const char * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (Wstring&) -{ - os << "::CORBA::WChar * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (Object&) -{ - os << "::CORBA::Object_ptr " << STRS[EXTRACT] - << " = ::CORBA::Object::_nil ();"; -} - -void -ExtractedTypeDeclEmitter::traverse (ValueBase&) -{ - os << "::CORBA::ValueBase * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (Any&) -{ - os << "::CORBA::Any * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::Enum& e) -{ - os << e.scoped_name () << "" << STRS[EXTRACT] << ";"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::Struct& s) -{ - os << s.scoped_name () << "" << STRS[EXTRACT] << ";"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::Union& u) -{ - os << u.scoped_name () << "" << STRS[EXTRACT] << ";"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::UnboundedSequence& s) -{ - os << s.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::Interface& i) -{ - os << i.scoped_name () << "_ptr " << STRS[EXTRACT] << " = " - << i.scoped_name () << "::_nil ();"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::ValueType& v) -{ - os << v.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::EventType& e) -{ - os << e.scoped_name () << " * " << STRS[EXTRACT] << " = 0;"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::Component& c) -{ - os << c.scoped_name () << "_ptr " << STRS[EXTRACT] << " = " - << c.scoped_name () << "::_nil ();"; -} - -void -ExtractedTypeDeclEmitter::traverse (SemanticGraph::Home& h) -{ - os << h.scoped_name () << "_ptr " << STRS[EXTRACT] << " = " - << h.scoped_name () << "::_nil ();"; -} - -// ==================================================================== - -AssignFromExtractedEmitter::AssignFromExtractedEmitter (ostream& os_) - : TypeNameEmitter (os_) -{ -} - -void -AssignFromExtractedEmitter::traverse (Boolean&) -{ - os << STRS[EXTRACT] << ".ref_"; -} - -void -AssignFromExtractedEmitter::traverse (Octet&) -{ - os << STRS[EXTRACT] << ".ref_"; -} - -void -AssignFromExtractedEmitter::traverse (Char&) -{ - os << STRS[EXTRACT] << ".ref_"; -} - -void -AssignFromExtractedEmitter::traverse (Wchar&) -{ - os << STRS[EXTRACT] << ".ref_"; -} - -void -AssignFromExtractedEmitter::traverse (Short&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (UnsignedShort&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (Long&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (UnsignedLong&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (LongLong&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (UnsignedLongLong&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (Float&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (Double&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (String&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (Wstring&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (Object&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (ValueBase&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (Any&) -{ - os << "*" << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::Enum&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::Struct&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::Union&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::UnboundedSequence&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::Interface&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::ValueType&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::EventType&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::Component&) -{ - os << STRS[EXTRACT]; -} - -void -AssignFromExtractedEmitter::traverse (SemanticGraph::Home&) -{ - os << STRS[EXTRACT]; -} diff --git a/TAO/CIAO/CIDLC/TypeNameEmitter.hpp b/TAO/CIAO/CIDLC/TypeNameEmitter.hpp index cab1c29e1b8..8a66e400d53 100644 --- a/TAO/CIAO/CIDLC/TypeNameEmitter.hpp +++ b/TAO/CIAO/CIDLC/TypeNameEmitter.hpp @@ -43,35 +43,6 @@ class TypeNameEmitter : public Traversal::Void, public Traversal::Component, public Traversal::Home { -public: - virtual void traverse (Void&); - virtual void traverse (Boolean&); - virtual void traverse (Octet&); - virtual void traverse (Char&); - virtual void traverse (Wchar&); - virtual void traverse (Short&); - virtual void traverse (UnsignedShort&); - virtual void traverse (Long&); - virtual void traverse (UnsignedLong&); - virtual void traverse (LongLong&); - virtual void traverse (UnsignedLongLong&); - virtual void traverse (Float&); - virtual void traverse (Double&); - virtual void traverse (String&); - virtual void traverse (Wstring&); - virtual void traverse (Object&); - virtual void traverse (ValueBase&); - virtual void traverse (Any&); - virtual void traverse (SemanticGraph::Enum&); - virtual void traverse (SemanticGraph::Struct&); - virtual void traverse (SemanticGraph::Union&); - virtual void traverse (SemanticGraph::UnboundedSequence&); - virtual void traverse (SemanticGraph::Interface&); - virtual void traverse (SemanticGraph::ValueType&); - virtual void traverse (SemanticGraph::EventType&); - virtual void traverse (SemanticGraph::Component&); - virtual void traverse (SemanticGraph::Home&); - protected: TypeNameEmitter (std::ostream&); @@ -123,6 +94,7 @@ class INArgTypeNameEmitter : public TypeNameEmitter public: INArgTypeNameEmitter (std::ostream&); + virtual void traverse (Void&); virtual void traverse (Boolean&); virtual void traverse (Octet&); virtual void traverse (Char&); @@ -159,6 +131,7 @@ class INOUTArgTypeNameEmitter : public TypeNameEmitter public: INOUTArgTypeNameEmitter (std::ostream&); + virtual void traverse (Void&); virtual void traverse (Boolean&); virtual void traverse (Octet&); virtual void traverse (Char&); @@ -195,6 +168,7 @@ class OUTArgTypeNameEmitter : public TypeNameEmitter public: OUTArgTypeNameEmitter (std::ostream&); + virtual void traverse (Void&); virtual void traverse (Boolean&); virtual void traverse (Octet&); virtual void traverse (Char&); @@ -232,115 +206,7 @@ class NullReturnEmitter : public TypeNameEmitter public: NullReturnEmitter (std::ostream&); - virtual void traverse (Boolean&); - virtual void traverse (Octet&); - virtual void traverse (Char&); - virtual void traverse (Wchar&); - virtual void traverse (Short&); - virtual void traverse (UnsignedShort&); - virtual void traverse (Long&); - virtual void traverse (UnsignedLong&); - virtual void traverse (LongLong&); - virtual void traverse (UnsignedLongLong&); - virtual void traverse (Float&); - virtual void traverse (Double&); - virtual void traverse (String&); - virtual void traverse (Wstring&); - virtual void traverse (Object&); - virtual void traverse (ValueBase&); - virtual void traverse (Any&); - virtual void traverse (SemanticGraph::Enum&); - virtual void traverse (SemanticGraph::Struct&); - virtual void traverse (SemanticGraph::Union&); - virtual void traverse (SemanticGraph::UnboundedSequence&); - virtual void traverse (SemanticGraph::Interface&); - virtual void traverse (SemanticGraph::ValueType&); - virtual void traverse (SemanticGraph::EventType&); - virtual void traverse (SemanticGraph::Component&); - virtual void traverse (SemanticGraph::Home&); -}; - -// Generates the appropriate NULL value, including the assignment operator, -// if needed, for the rhs of an assignment statement. -// -// -class NullRHSEmitter : public TypeNameEmitter -{ -public: - NullRHSEmitter (std::ostream&); - - virtual void traverse (Boolean&); - virtual void traverse (Octet&); - virtual void traverse (Char&); - virtual void traverse (Wchar&); - virtual void traverse (Short&); - virtual void traverse (UnsignedShort&); - virtual void traverse (Long&); - virtual void traverse (UnsignedLong&); - virtual void traverse (LongLong&); - virtual void traverse (UnsignedLongLong&); - virtual void traverse (Float&); - virtual void traverse (Double&); - virtual void traverse (String&); - virtual void traverse (Wstring&); - virtual void traverse (Object&); - virtual void traverse (ValueBase&); - virtual void traverse (Any&); - virtual void traverse (SemanticGraph::Enum&); - virtual void traverse (SemanticGraph::Struct&); - virtual void traverse (SemanticGraph::Union&); - virtual void traverse (SemanticGraph::UnboundedSequence&); - virtual void traverse (SemanticGraph::Interface&); - virtual void traverse (SemanticGraph::ValueType&); - virtual void traverse (SemanticGraph::EventType&); - virtual void traverse (SemanticGraph::Component&); - virtual void traverse (SemanticGraph::Home&); -}; - -// Declares and initializes a variable to use for any extraction. -// -// -class ExtractedTypeDeclEmitter : public TypeNameEmitter -{ -public: - ExtractedTypeDeclEmitter (std::ostream&); - - virtual void traverse (Boolean&); - virtual void traverse (Octet&); - virtual void traverse (Char&); - virtual void traverse (Wchar&); - virtual void traverse (Short&); - virtual void traverse (UnsignedShort&); - virtual void traverse (Long&); - virtual void traverse (UnsignedLong&); - virtual void traverse (LongLong&); - virtual void traverse (UnsignedLongLong&); - virtual void traverse (Float&); - virtual void traverse (Double&); - virtual void traverse (String&); - virtual void traverse (Wstring&); - virtual void traverse (Object&); - virtual void traverse (ValueBase&); - virtual void traverse (Any&); - virtual void traverse (SemanticGraph::Enum&); - virtual void traverse (SemanticGraph::Struct&); - virtual void traverse (SemanticGraph::Union&); - virtual void traverse (SemanticGraph::UnboundedSequence&); - virtual void traverse (SemanticGraph::Interface&); - virtual void traverse (SemanticGraph::ValueType&); - virtual void traverse (SemanticGraph::EventType&); - virtual void traverse (SemanticGraph::Component&); - virtual void traverse (SemanticGraph::Home&); -}; - -// Declares and initializes a variable to use for any extraction. -// -// -class AssignFromExtractedEmitter : public TypeNameEmitter -{ -public: - AssignFromExtractedEmitter (std::ostream&); - + virtual void traverse (Void&); virtual void traverse (Boolean&); virtual void traverse (Octet&); virtual void traverse (Char&); diff --git a/TAO/CIAO/CIDLC/cidlc.cpp b/TAO/CIAO/CIDLC/cidlc.cpp index 5961e28869f..d7db7708d53 100644 --- a/TAO/CIAO/CIDLC/cidlc.cpp +++ b/TAO/CIAO/CIDLC/cidlc.cpp @@ -23,7 +23,9 @@ #include "ExecutorMappingGenerator.hpp" #include "ServantGenerator.hpp" #include "ExecImplGenerator.hpp" +/* #include "RepositoryIdGenerator.hpp" +*/ #include "DescriptorGenerator.hpp" #include "SizeTypeCalculator.hpp" @@ -96,7 +98,9 @@ main (int argc, char* argv[]) ExecutorMappingGenerator lem_gen; ServantGenerator svnt_gen (cl); ExecImplGenerator impl_gen (cl); + /* RepositoryIdGenerator repid_gen; + */ DescriptorGenerator desc_gen; SizeTypeCalculator sizetype_calc; @@ -194,6 +198,8 @@ main (int argc, char* argv[]) return 0; } + //} + Diagnostic::Stream dout; ErrorDetector detector (cerr.rdbuf ()); cerr.rdbuf (&detector); @@ -281,11 +287,6 @@ main (int argc, char* argv[]) sizetype_calc.calculate (tu); } - // Compute repository IDs in a separate pass. - { - if (!repid_gen.generate (tu)) return 1; - } - // Generate servant code. { svnt_gen.generate (tu, file_path); @@ -297,6 +298,14 @@ main (int argc, char* argv[]) impl_gen.generate (tu, file_path); } + /* + + // Compute repository IDs in a separate pass. + { + repid_gen.generate (tu); + } + + */ // Generate descriptor code. { desc_gen.generate (cl, tu); diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog index 359c70cc43b..3666fb33f71 100644 --- a/TAO/CIAO/ChangeLog +++ b/TAO/CIAO/ChangeLog @@ -1,958 +1,3 @@ -Thu Sep 16 10:15:04 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * DAnCE/ciao/Servant_Impl_Base.h: - - Added inheritance to Servant_Impl_Base of - POA_Components::CCMObject to bring it in sync with the - version in regular CIAO/ciao. - - * DAnCE/ciao/Servant_Impl_T.h: - - Made inheritance of Servant_Impl_Base virtual, to bring it - in sync with the version in regular CIAO/ciao. - -Thu Sep 16 08:44:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * DAnCE/ciao/Servant_Activator.cpp: - * CIAO/ciao/Servant_Activator.cpp: - Fixed compile errors in Borland build - -Tue Sep 14 20:43:31 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * ciao/Context_Impl_Base.h: - * DAnCE/ciao/Context_Impl_Base.h: - - Moved a sufficiently substantial included file above the - #pragma once directive, so that some compilers will not - complain that it's obsolete. - -Tue Sep 14 15:02:24 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * DAnCE/ciao/Context_Impl_Base.cpp: - * DAnCE/ciao/Context_Impl_Base.h: - * DAnCE/ciao/Context_Impl_T.cpp: - * DAnCE/ciao/Context_Impl_T.h: - * DAnCE/ciao/Home_Servant_Impl_Base.cpp: - * DAnCE/ciao/Home_Servant_Impl_Base.h: - * DAnCE/ciao/Home_Servant_Impl_T.cpp: - * DAnCE/ciao/Home_Servant_Impl_T.h: - * ciao/Context_Impl_Base.cpp: - * ciao/Context_Impl_Base.h: - * ciao/Context_Impl_T.cpp: - * ciao/Context_Impl_T.h: - * ciao/Home_Servant_Impl_Base.cpp: - * ciao/Home_Servant_Impl_Base.h: - * ciao/Home_Servant_Impl_T.cpp: - * ciao/Home_Servant_Impl_T.h: - - New files, duplicated in CIAO/ciao and - CIAO/DAnCE/ciao, containing base classes - for the CIDL-compiler-generated context - and home servant classes. A template class - sits in the hierarchy between the generated - class and its skeleton base class (in the - case of the home servant) or its executor - base (in the case of the context). The - template class also inherits from a - non-template class which is used to hold - members and operations not using any template - parameters. - - * CIDLC/ServantHeaderGenerator.cpp: - * CIDLC/ServantSourceGenerator.cpp: - * DAnCE/ciao/CCM_Core.mpc: - * DAnCE/ciao/Servant_Impl_Base.cpp: - * DAnCE/ciao/Servant_Impl_Base.h: - * DAnCE/ciao/Servant_Impl_T.cpp: - * DAnCE/ciao/Servant_Impl_T.h: - * ciao/CCM_Core.mpc: - * ciao/Servant_Impl_Base.cpp: - * ciao/Servant_Impl_Base.h: - * ciao/Servant_Impl_T.cpp: - * ciao/Servant_Impl_T.h: - - Modified existing files to correspond with the - new files described above and: - - - Added implementations for the component servant - operations provide_facet(), get_named_facets(), - get_consumer() and get_named_consumers(). - - - Added inheritance of CCMObject to the non-template - base class, to enable operations in the template - base class, which used no template parameters but - which were there only to be in the inheritance - hierarchy from skeleton to generated servant, to - be moved to the non-template base class, and - thus not be reinstantiated with every new type. - - - Moved operations from generated code to one of - the two base classes. - -Mon Sep 13 13:18:33 2004 Gan Deng <gan.deng@vanderbilt.edu> - - * RepositoryManager/Update_Plan.h - - Fixed a waring in Windows build by changing "class" to "struct" - in forward declaration. - - * examples/BasicSP/BasicSP.mpc - * examples/BasicSP/BMClosedED/BMClosedED.mpc - * examples/BasicSP/BMDevice/BMDevice.mpc - * examples/BasicSP/BMDisplay/BMDisplay.mpc - * examples/BasicSP/EC/EC.mpc - - Changed the output stub, servant, and executor library names - for all the components in BasicSP example. The reason is - becasue all the DnC descriptors are tightly coupled with the - output library names. I might come back switch this change - back since this will conflict with the BasicSP example in - CIAO_ROOT/examples. - -Mon Sep 13 13:07:33 2004 Gan Deng <gan.deng@vanderbilt.edu> - - * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp - - Fixed a bug inside create_connections () method. - -Mon Sep 13 15:16:33 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/NodeApplicationTest/run_test.pl: - * DAnCE/tests/NodeApplicationTest/run_test_ex.pl: - * DAnCE/tests/NodeApplicationTest/run_test_simple.pl: - - Fixed the paths in the scripts. - -Mon Sep 13 07:11:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Port_Activator.h: - * DAnCE/ciao/Servant_Activator.cpp: - * ciao/Port_Activator.h: - * ciao/Servant_Activator.cpp: - - Fixes for MSVC++ compilation errors. Inspite of being careful I - introduced a couple of VC++ anathemas. - -Mon Sep 13 06:16:31 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Container_Base.cpp: - * ciao/Container_Base.cpp: - - Fixed wrong ACE_CHECK usage. This should fix compilation errors - in Full_Reactors build. - -Mon Sep 13 04:20:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/CCM_Core.mpc: - - Removed iorinterceptor and objreftemplate from CIAO_DnC_Server - project. No reason to believe that they need thes. This should - hopefully remove the warnings in our daily builds. - - * examples/Hello/Sender/Sender_exec.cpp: - - Added a simple debug statement. - - * performance-tests/Benchmark/Benchmark.mpc: - - Tried fixing the link errors on the scoreboard. - -Mon Sep 13 03:50:08 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/CCM_Core.mpc: - * DAnCE/ciao/Container_Base.cpp: - * DAnCE/ciao/Container_Base.h: - * DAnCE/ciao/Container_Base.inl: - * DAnCE/ciao/Port_Activator.cpp: - * DAnCE/ciao/Port_Activator.h: - * DAnCE/ciao/Port_Activator_T.cpp: - * DAnCE/ciao/Port_Activator_T.h: - * DAnCE/ciao/Servant_Activator.cpp: - * DAnCE/ciao/Servant_Activator.h: - - Replicated changes to DAnCE. DAnCE testing hasn't been completed - yet. - -Sun Sep 12 22:10:38 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * CIDLC/ServantHeaderGenerator.cpp: - * CIDLC/ServantSourceGenerator.cpp: - - Changes to the CIDL which uses the servant and port activators - checked in now. - -Mon Sep 13 03:00:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - To overcome the long standing problem in DAnCE, we are now making - the facet and consumer servants to be on demand activatable. This - would make sure that application level ports are not activated - until used. This should help address the problems between DAnCE - and existing way of doing things. These changes should be useful - even after old CIAO is removed since we want to give existing - component applications the same activation semantics with DAnCE. - - This checkin addresses old CIAO. DAnCE and CIDLC changes will come - in soon. - - * ciao/Servant_Activator.cpp: - * ciao/Servant_Activator.h: - - New files for facet and consumer activations. We now have a - seperate servant activator for facet and consumer ports. The - servant activator acts like a factory activating the right port - activators which can create the right servant for every port. - - * ciao/Port_Activator.cpp: - * ciao/Port_Activator.h: - * ciao/Port_Activator_T.cpp: - * ciao/Port_Activator_T.h: - - Concrete port activators for every port. - - * ciao/CCM_Core.mpc: - - Added the new files for building. - - * ciao/Container_Base.cpp: - * ciao/Container_Base.h: - * ciao/Container_Base.inl: - - Changes to the Container to use the above servant activator. The - continer creates the servant activator and sets that in the POA - meant for facet and consumers. - -Fri Sep 10 23:08:15 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Container_Base.cpp: - * DAnCE/ciao/Container_Base.h: - * ciao/Container_Base.cpp: - * ciao/Container_Base.h: - - Reverted this change "Sat Sep 11 03:35:24 2004 Balachandran - Natarajan <bala@dre.vanderbilt.edu>" - -Fri Sep 10 22:53:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/CCM_Core.mpc: - * ciao/CCM_Core.mpc: - - Linked with TAO_Utils library - -Sat Sep 11 03:35:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Container_Base.cpp: - * DAnCE/ciao/Container_Base.h: - * ciao/Container_Base.cpp: - * ciao/Container_Base.h: - - Removed install_servant () since it is not used. - -Fri Sep 10 22:28:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * CIDLC/ServantSourceGenerator.cpp: - - Changes to accomodate the accessor renaming. - -Sat Sep 11 03:22:06 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * ciao/Container_Base.cpp: - * ciao/Container_Base.h: - * ciao/Container_Base.inl: - * DAnCE/ciao/Container_Base.cpp: - * DAnCE/ciao/Container_Base.h: - * DAnCE/ciao/Container_Base.inl: - - Made a few changes. They are - - . Added a second POA into the container. One of the POA's will - host the component and the other POA will host the facet and - consumer servants. Obviously the two POA's have different sets - of policies. The new POA is primarily targeted to activate - facet and consumer servants on demand. - - . Renamed the accessor to the ORB and POA. Made them const - methods - - . Improved documentation and a number of costeic changes. - - - * DAnCE/RepositoryManager/Repository_Manager.cpp: - * DAnCE/RepositoryManager/Update_Plan.cpp: - * DAnCE/RepositoryManager/Update_Plan.h: - - BUnch of cosmetic changes to be conformant with ACE+TAI coding - guidelines. - - * DAnCE/ciao/Servant_Impl_Base.cpp: - * DAnCE/ciao/Servant_Impl_T.cpp: - * ciao/Servant_Impl_Base.cpp: - * ciao/Servant_Impl_T.cpp: - - Fixed simple compilation errors and warnings. - -Thu Sep 9 17:07:59 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tests/IDL3/Events/Abstract/Abstract.idl: - - Uncommented IDL testing multiple inheritance of eventtypes. - -Thu Sep 9 10:30:22 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * DAnCE/ciao/Container_Base.cpp: - * DAnCE/ciao/Container_Base.h: - * ciao/Container_Base.cpp: - - Added generate_reference() method to DAnCE version of - Container_Base, and fixed ACE_CHECK macro mistake in - both versions. - -Wed Sep 8 11:52:45 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * DAnCE/ciao/Servant_Impl_Base.h: - * DAnCE/ciao/Servant_Impl_Base.cpp: - - Updated files with changes made to the corresponding files - in regular CIAO/ciao. - -Tue Sep 7 22:14:43 2004 Ossama Othman <ossama@dre.vanderbilt.edu> - - * CCF/CCF/IDL2/SemanticGraph/Elements.hpp: - * CCF/CCF/IDL2/Traversal/Elements.hpp: - * CIDLC/ExecutorMappingGenerator.cpp: - - Fixed unused argument warnings. - -Tue Sep 7 15:48:19 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * DAnCE/ciao/Servant_Impl_Base.cpp: - * ciao/Servant_Impl_Base.cpp: - - Cosmetic changes. - - * CIDLC/ServantHeaderGenerator.cpp: - * CIDLC/ServantSourceGenerator.cpp: - * DAnCE/ciao/Servant_Impl_T.cpp: - * DAnCE/ciao/Servant_Impl_T.h: - * ciao/Servant_Impl_T.cpp: - * ciao/Servant_Impl_T.h: - - Moved several methods from the generated servant class to the - template Servant_Impl base class. - -Tue Sep 7 10:44:10 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * CIDLC/CIDLC.mpc: - * CIDLC/CIDLC.vcproj: - * CIDLC/RepositoryIdGenerator.cpp: - * CIDLC/RepositoryIdGenerator.hpp: - * CIDLC/ServantHeaderGenerator.cpp: - * CIDLC/ServantSourceGenerator.cpp: - * CIDLC/cidlc.cpp: - - - Updated the RepositoryIdGenerator and re-added the source - and header files to the build. This generator creates - repository ids for interfaces and eventtypes, and stores - them internally in a context variable for later access - in code generation. It also handles modifications to the - repository ids stemming from 'typeprefix' or 'typeid' - declarations. - - - Added generation of 'provide_<facet name>_i' and - 'get_consumer_<event consumer name>_i' methods in the servant, - which create dummy object references and store them in the - appropriate port table in the servant base class. - - - Re-implemented the generated 'provide_<facet name>' and - 'get_consumer_<event consumer name>' methods. They now - use the container's POA to activate the dummy objects - created by the corresponding _i methods described above. - The activation takes place upon the first outside access - of these objects. If an object has already been activated, - it will simply be found in its port table and returned. - Thanks to Bala for the prototype code for this feature. - - * ciao/Container_Base.cpp: - * ciao/Container_Base.h: - - Added 'generate_reference' utility method called by the - '_i' methods described above. - - * ciao/Servant_Impl_Base.cpp: - * ciao/Servant_Impl_Base.h: - - Added 'lookup_facet' and 'lookup_consumer' methods used in - generated servant code to determine if a desired object has - been activated already (and added to a port table) or not. - -Mon Aug 30 12:52:28 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * performance-tests/Benchmark/Benchmark.mpc: - - Fixes for link errors in the daily builds - -Sun Aug 29 19:25:21 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * tools/XML_Helpers/XMLHelpers.mpc: - - Fix for link errors in Debian_Core builds. - -Sun Aug 29 19:02:42 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/CCM_Core.mpc: - - Added valuetype seperately to the Deployment_svnt project. - -Sun Aug 29 18:10:13 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/examples/BasicSP/BMClosedED/BMClosedED_svnt.h: - * DAnCE/examples/BasicSP/BMDevice/BMDevice_svnt.h: - * DAnCE/examples/BasicSP/BMDisplay/BMDisplay_svnt.h: - * DAnCE/examples/BasicSP/EC/EC_svnt.h: - - These files should not be in the repository. - -Sat Aug 28 18:44:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc: - - Fixed a compile erros in the daily builds. - -Sat Aug 28 09:22:15 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/examples/BasicSP/BasicSP.mpc: - * DAnCE/examples/BasicSP/BMClosedED/BMClosedED.mpc: - * DAnCE/examples/BasicSP/BMDevice/BMDevice.mpc: - * DAnCE/examples/BasicSP/BMDisplay/BMDisplay.mpc: - * DAnCE/examples/BasicSP/EC/EC.mpc: - - Fixed the project names and shared librray names so that they - don't collide with the regual BasicSP test. Ideally there - shouldn't be any duplicate code. I waill talk to Gan about - this. - -Thu Aug 26 16:45:10 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tests/IDL3/Lookup/README: - * tests/IDL3/Lookup/lookup_test.idl: - * tests/IDL3/Lookup/lookup_test.mpc: - - New files, a test for the IDL compiler lookup of declarations - in base interfaces, valuetypes, components, and homes, and - in supported interfaces, referenced by the local name in the - derived IDL type. Thanks to Boris Kolpackov - <boris@dre.vanderbilt.edu> for reporting the bug and for - providing an example IDL file that illustrates the various - cases. - -Thu Aug 26 13:24:40 2004 Gan Deng <gan.deng@vanderbilt.edu> - - * DAnCE/examples/BaiscSP/*.*: - - Created above directory and subdictories to add an example for - using DAnCE. - -Thu Aug 26 12:28:40 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * CIDLC/CIDLC.vcproj: - - Added missing files to project. - -Thu Aug 26 11:25:39 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tests/CIDL/CodeGen/CodeGen.mpc: - - Changed dependency from ciao_server to ciao_servant. - -Wed Aug 25 11:28:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * DAnCE/Config_Handlers/DnC_Dump.h: - Removed not needed qualifier - - * DAnCE/RepositoryManager/RepositoryManager_Impl.h: - Removed not needed ; after namespace closure - -Wed Aug 25 11:24:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * DAnCE/Config_Handlers/Config_Error_Handler.h: - Removed not needed ; after namespace closure - -Tue Aug 24 11:31:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * DAnCE/Config_Handlers/Config.h: - Removed not needed ; after namespace closure - -Mon Aug 23 21:47:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/Config_Handlers/XSCRT/Elements.hpp: - * DAnCE/Config_Handlers/XSCRT/Elements.ipp: - * DAnCE/Config_Handlers/XSCRT/Elements.tpp: - * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.hpp: - * DAnCE/Config_Handlers/XSCRT/ExtendedTypeInfo.ipp: - * DAnCE/Config_Handlers/XSCRT/Parser.hpp: - * DAnCE/Config_Handlers/XSCRT/Parser.ipp: - * DAnCE/Config_Handlers/XSCRT/Parser.tpp: - * DAnCE/Config_Handlers/XSCRT/Traversal.hpp: - * DAnCE/Config_Handlers/XSCRT/Traversal.ipp: - * DAnCE/Config_Handlers/XSCRT/Traversal.tpp: - * DAnCE/Config_Handlers/XSCRT/XMLSchema.hpp: - * DAnCE/Config_Handlers/XSCRT/XMLSchema.ipp: - * DAnCE/Config_Handlers/XSCRT/XMLSchema.tpp: - - Added XSCRT 0.0.4 into the repository to compile the handlers. - -Mon Aug 23 21:32:50 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * CIDLC/TypeNameEmitter.cpp: - - Fixed a compiler error in the daily builds showing up from a - non-const declaration of a char * for extraction into an Any. - - * DAnCE/Config_Handlers/Config.h: - - Deployment.h has been renamed to Config.h - - * DAnCE/Config_Handlers/Process_Element.h: - * DAnCE/Config_Handlers/Basic_Handler.h: - - Include Config.h - - * DAnCE/Config_Handlers/Basic_Deployment_Data.cpp: - * DAnCE/Config_Handlers/Basic_Deployment_Data.hpp: - * DAnCE/Config_Handlers/Deployment.cpp: - * DAnCE/Config_Handlers/Deployment.hpp: - * DAnCE/Config_Handlers/ccd.cpp: - * DAnCE/Config_Handlers/ccd.hpp: - * DAnCE/Config_Handlers/cdd.cpp: - * DAnCE/Config_Handlers/cdd.hpp: - * DAnCE/Config_Handlers/cdp.cpp: - * DAnCE/Config_Handlers/cdp.hpp: - * DAnCE/Config_Handlers/cid.cpp: - * DAnCE/Config_Handlers/cid.hpp: - * DAnCE/Config_Handlers/cpd.cpp: - * DAnCE/Config_Handlers/cpd.hpp: - * DAnCE/Config_Handlers/iad.cpp: - * DAnCE/Config_Handlers/iad.hpp: - * DAnCE/Config_Handlers/pcd.cpp: - * DAnCE/Config_Handlers/pcd.hpp: - * DAnCE/Config_Handlers/toplevel.cpp: - * DAnCE/Config_Handlers/toplevel.hpp: - * DAnCE/Config_Handlers/Config_Handlers.mpc: - - Generated code from XSC which is going to be used for the next - generation handlers. They have been added in the MPC but guarded - with requires += dummy_label since they give lot of warnings. - -Mon Aug 23 08:02:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc: - Fixed typo in vpath - -Sun Aug 22 22:23:12 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/Config_Handlers/Config_Handlers.mpc: - - Fixed VC6 compilation errors. - -Mon Aug 23 01:07:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/StandardConfigurator_Impl.cpp: - * ciao/StandardConfigurator_Impl.cpp: - - Fixed unused variable warnings. - -Sun Aug 22 21:28:34 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Servant_Impl_Base.cpp: - * DAnCE/ciao/Servant_Impl_Base.h: - * DAnCE/ciao/StandardConfigurator_Impl.cpp: - * DAnCE/ciao/StandardConfigurator_Impl.h: - * DAnCE/ciao/CCM_Core.mpc: - - Added these files to the DAnCE builds. These were from the - following change - - Tue Aug 17 14:29:00 2004 Jules White <jules@dre.vanderbilt.edu> - - * ciao/CCM_Core.mpc: - * ciao/Servant_Impl_Base.cpp: - * ciao/Servant_Impl_Base.h: - * ciao/StandardConfigurator_Impl.cpp: - * ciao/StandardConfigurator_Impl.h: - - Fixed compilation errors in builds where exceptions have been - turned off. - -Sun Aug 22 22:11:49 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: - - Fixed redeclaration error in VC6 builds. - -Sun Aug 22 20:08:10 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * CIDLC/ServantSourceGenerator.cpp: - - Fixed unused variable warnings in the generated code. - -Sun Aug 22 17:06:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * tools/IDL3_to_IDL2/be_global.cpp: - * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: - - Fixed unused variable warnings in our daily builds. - -Sun Aug 22 16:26:01 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * performance-tests/Protocols/Receiver/Receiver.mpc: - - Fixed a compile error in our daily builds. - -Fri Aug 20 16:01:55 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc: - - Fixed typo in source file name. - -Fri Aug 20 10:39:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * DAnCE/ciao/Container_Base.h: - Fixed compile errors - -Fri Aug 20 07:32:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * ciao/Container_Base.h: - Fixed compile errors - -Thu Aug 19 17:13:22 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * CIDLC/Literals.cpp: - * CIDLC/Literals.hpp: - * CIDLC/ServantHeaderGenerator.cpp: - * CIDLC/ServantSourceGenerator.cpp: - * CIDLC/TypeNameEmitter.cpp: - * CIDLC/TypeNameEmitter.hpp: - - Added code generation for the set_attributes() method called - on the servant by the deployer. - -Thu Aug 19 16:09:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Container_Base.h: - * ciao/Container_Base.h: - - Fixed a compilation error reported by Roland Schimmack <Roland - dot Schimmack at gmx dot de> - -Thu Aug 19 08:44:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * PROBLEM-REPORT-FORM: - Ask for the default.features file used by MPC. - -Wed Aug 18 14:21:12 UTC 2004 Johnny Willemsen <jwillemsen@remedy.nl> - - * DAnCE/NodeManager/NodeDaemon_Impl.h: - Added missing pragma pop - -Tue Aug 17 14:29:00 2004 Jules White <jules@dre.vanderbilt.edu> - - * CIAO/ciao/Servant_Impl_Base.h: - * CIAO/ciao/Servant_Impl_Base.cpp: - Added a method to create and return the StandardConfigurator for a component. - Overrided _default_POA so that it returns the POA of the servant's container. - - * CIAO/ciao/StandardConfigurator_Impl.h: - * CIAO/ciao/StandardConfigurator_Impl.cpp: - Created an implementation of the StandardConfigurator interface. - -Mon Aug 16 22:15:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp: - * DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h: - - Fixed compilation errors in builds where exceptions have been - turned off. - -Mon Aug 16 22:09:52 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * performance-tests/Protocols/Sender/Sender.mpc: - - Fix for link errors on the scoreboard. - -Mon Aug 16 21:01:49 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * performance-tests/Benchmark/Benchmark.mpc: - - Fix for link errors on the scoreboard. - -Mon Aug 16 16:44:13 2004 J.T. Conklin <jtc@acorntoolworks.com> - - * CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp: - * CIAO/DAnCE/NodeManager/Node_Daemon.cpp: - * CIAO/DAnCE/ciao/CCM_Container.idl: - * CIAO/ciao/CCM_Container.idl: - Changed #include "orbsvcs/orbsvcs/..." to #include "orbsvcs/...". - -Mon Aug 16 16:36:49 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: - - Changed conversion for eventtypes to generate, instead of the - original eventtype, a valuetype with Components::EventBase added - to its inheritance list. This is completely equivalent to the - original eventtype and has the advantage that it eliminates the - need to use the -Sm option (disabling CCM equivalent IDL - preprocessing) when running the IDL compiler on a converted - file. Thanks to Bala Natarajan <bala@dre.vanderbilt.edu> for - the suggestion. - -Mon Aug 16 14:14:15 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl: - - Do not do the compile the implied data part of the IDL. - -Mon Aug 16 12:42:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/Config_Handlers/CAD_Handler.h: - * DAnCE/Config_Handlers/CEPE_Handler.h: - * DAnCE/Config_Handlers/CPK_Handler.h: - * DAnCE/Config_Handlers/CPR_Handler.h: - * DAnCE/Config_Handlers/Cap_Handler.h: - * DAnCE/Config_Handlers/CompIntrDesc_Handler.h: - * DAnCE/Config_Handlers/CompPkgDesc_Handler.h: - * DAnCE/Config_Handlers/DT_Handler.h: - * DAnCE/Config_Handlers/Domain_Handler.h: - * DAnCE/Config_Handlers/ERE_Handler.h: - * DAnCE/Config_Handlers/IAD_Handler.h: - * DAnCE/Config_Handlers/ID_Handler.h: - * DAnCE/Config_Handlers/IR_Handler.h: - * DAnCE/Config_Handlers/MID_Handler.h: - * DAnCE/Config_Handlers/NIA_Handler.h: - * DAnCE/Config_Handlers/PCI_Handler.h: - * DAnCE/Config_Handlers/PC_Handler.h: - * DAnCE/Config_Handlers/Plan_Handler.h: - * DAnCE/Config_Handlers/Process_Element.h: - * DAnCE/Config_Handlers/Property_Handler.h: - * DAnCE/Config_Handlers/RS_Handler.h: - * DAnCE/Config_Handlers/RUK_Handler.h: - * DAnCE/Config_Handlers/Requirement_Handler.h: - * DAnCE/Config_Handlers/SPK_Handler.h: - * DAnCE/Config_Handlers/SP_Handler.h: - * DAnCE/Config_Handlers/TPD_Handler.h: - * DAnCE/Config_Handlers/Utils.h: - - Use ciao/ to include any header files from core ciao. - - * DAnCE/ciao/CCM_Core.mpc: - * DAnCE/tests/Config_Handlers/handler_test.mpb: - * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc: - - Use the right libraries for linking. This should probably - address some of the core build errors on the scoreboard. - -Sun Aug 15 18:32:49 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * tools/IDL3_to_IDL2/IDL3_to_IDL2.mpc: - * tools/IDL3_to_IDL2/TAO_IDL3_TO_IDL2_BE_Export.h: - * tools/IDL3_to_IDL2/be_extern.h: - * tools/IDL3_to_IDL2/be_global.cpp: - * tools/IDL3_to_IDL2/be_global.h: - * tools/IDL3_to_IDL2/be_helper.cpp: - * tools/IDL3_to_IDL2/be_helper.h: - * tools/IDL3_to_IDL2/be_init.cpp: - * tools/IDL3_to_IDL2/be_produce.cpp: - * tools/IDL3_to_IDL2/be_sunsoft.cpp: - * tools/IDL3_to_IDL2/be_sunsoft.h: - * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.cpp: - * tools/IDL3_to_IDL2/idl3_to_idl2_visitor.h: - * tools/IDL3_to_IDL2/README: - - New files implementing a tool that inputs an IDL file with IDL3 - constructs and generates another IDL file with the IDL3 - constructs converted to the spec-defined IDL2 equivalents. Using - the generated file instead of the original one in applications - will allow the developer to reference the IDL2 equivalent types - in application IDL, rather than just in C++ code as before. - The generated IDL file has a '_IDL2' suffix added to the - original file name just before the '.idl' extension. - -Sun Aug 15 09:17:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * performance-tests/Benchmark/Benchmark.mpc: - - Added missing libraries as reported by our daily builds. - -Sun Aug 15 09:12:36 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/Config_Handlers/handler_test.mpb: - - Fixed the handlers to link in CIAO_DnC_Container too. - -Sat Aug 14 14:44:24 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/Config_Handlers/Config_Handlers.mpc: - - Do not include /usr/lib to be in libpaths. This is odd and - shouldn't be there at the application level. Applications should - only be bothered about using $XERCESCROOT and the like. If the - application doesn't specify the compiler, linker and the loader - knows where to pick things from. - -Sat Aug 14 14:07:53 2004 Aniruddha Gokhale <a.gokhale@vanderbilt.edu> - - * DAnCE/NodeManager/Node_Daemon.cpp: - - Included "ace/os_include/os_netdb.h since otherwise the - MAXHOSTNAMELEN constant was not found. - -Sat Aug 14 15:36:28 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/NodeManager/NodeDaemon_Impl.cpp: - * DAnCE/NodeManager/NodeDaemon_Impl.h: - * DAnCE/NodeManager/Node_Daemon.cpp: - - Cosmetic fixes for fuzz errors and other simple fixes for the - daily builds. - - * DAnCE/NodeManager/README: - - Added a README file in the directory. - -Sat Aug 14 04:20:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ExecutionManager/ExecutionManager_Impl.h: - * DAnCE/ciao/ComponentsC.h: - * ciao/ComponentsC.h: - - Removed a trailing ; at the end of namespace closure. g++-3.4.1 - starts getting seizures once it locates a trailing ;. - -Sat Aug 14 03:29:18 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/Config_Handlers/handler_test.mpb: - * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc: - * tools/XML_Helpers/XMLHelpers.mpc: - - Tried fixing some warnings and errors in the builds. I am not - able to reproduce it and so I am taking a blind shot. - -Thu Aug 12 14:14:00 Jules White <jules@dre.vanderbilt.edu> - - * docs/schema/cdp.xsd: - * docs/schema/Modified_Deployment.xsd: - - Changed the schema so that it was more compliant with the spec. - -Thu Aug 12 15:25:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/NEWS: - * DAnCE/ciao/Servant_Impl_T.cpp: - * DAnCE/ciao/Servant_Impl_T.h: - - Updates at this - -Thu Aug 12 11:35:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ciao/Servant_Impl_T.cpp: - * DAnCE/ciao/Servant_Impl_T.h: - - Propogating the changes from "Mon Aug 9 11:38:04 2004 Jeff - Parsons <j.parsons@vanderbilt.edu>" to DAnCE. - - * DAnCE/tests/Config_Handlers/Handler_Test.cpp: - * DAnCE/tests/Config_Handlers/Handler_Test.h: - - Cleaned up things so that it is more portable. - - * DAnCE/tests/Config_Handlers/handler_test.mpb: - - Put Handler_Test as a template file. - -Thu Aug 12 16:20:19 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/Config_Handlers/Handler_Test.cpp: - * DAnCE/tests/Config_Handlers/Handler_Test.h: - * DAnCE/tests/Config_Handlers/Handler_Test.i: - - Fixed fuzz errors. - -Wed Aug 11 22:37:31 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/NodeManager/Node_Daemon.cpp: - * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp: - - Fixed fuzz errors. - -Wed Aug 11 22:15:26 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc: - - Fixed yet another problem with MPC file. Should by now compile - clean on the scoreboard. Let us see hwo it goes. - -Wed Aug 11 20:08:58 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * CIDLC/CIDLC.mpc: - - Fixed library paths. This seems to have been busted. - -Wed Aug 11 14:38:00 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/ExecutionManager/Execution_Manager.cpp: - - Made certain parts exception safe and fixed fuzz errors. - - * tests/CIDL/CodeGen/CodeGen.mpc: - - The MPC file was busted which lead to errors in the daily - builds. - - * tests/RTCCM/DiffServ/Receiver/Receiver.mpc: - - Fixed errors in he MPC file. - - * tests/RTCCM/DiffServ/Sender/Sender_exec.cpp: - - Fixed fuzz errors. - -Wed Aug 11 12:45:09 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * CIDLC/CIDLC.mpc: - - Added new files startting with Exec* into the CIDLC project. - - * CIAOTAO.mwc: - - Added tests section to the above file. - -Wed Aug 11 15:08:44 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * tests/CIDL/CodeGen/CodeGen.mpc: - - Fix for the compilation errors in the daily builds. - -Mon Aug 9 11:38:04 2004 Jeff Parsons <j.parsons@vanderbilt.edu> - - * ciao/Servant_Impl_T.cpp: - * ciao/Servant_Impl_T.h: - - Moved the body of the destructor and the same_component() - method from the generated servant class to the base class. - -Sat Aug 7 17:55:59 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc: - - Prevented compilation errors if CIDL is not built. - -Sat Aug 7 16:43:45 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> - - * tests/CIDL/CodeGen/CodeGen.mpc: - * tests/IDL3/Homes/Basic/Basic.mpc: - - Changed the name of the stub library and project names. There - was a clash in project and library names. - Thu Aug 5 17:42:56 2004 Jeff Parsons <j.parsons@vanderbilt.edu> * CIDLC/ExecImplGenerator.cpp: diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Basic_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Basic_Handler.h index a8d31ea54f1..6c7089915b6 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Basic_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Basic_Handler.h @@ -11,7 +11,7 @@ #ifndef BASIC_HANDLER_H #define BASIC_HANDLER_H -#include "Config.h" +#include "Deployment.h" #include "ace/SString.h" #include "ace/Null_Mutex.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/CAD_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/CAD_Handler.h index 515a59d70c2..1e867628279 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/CAD_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/CAD_Handler.h @@ -11,17 +11,18 @@ #define CAD_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" +#include "Config_Handler_export.h" +#include "ace/SString.h" +#include "ace/Hash_Map_Manager.h" +#include "ace/Null_Mutex.h" + +#include "Basic_Handler.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "Basic_Handler.h" -#include "Config_Handler_export.h" -#include "ace/SString.h" -#include "ace/Hash_Map_Manager.h" -#include "ace/Null_Mutex.h" #include "ace/Auto_Ptr.h" #include "ace/Log_Msg.h" #include "ace/OS_main.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h index 18eabeff80e..3d1fb12b00b 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/CEPE_Handler.h @@ -11,13 +11,13 @@ #define CEPE_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" +#include "Config_Handler_export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> #include <xercesc/dom/DOM.hpp> #include "XercesString.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/CPK_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/CPK_Handler.h index 2c34055e08e..2eaa7b6a216 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/CPK_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/CPK_Handler.h @@ -12,7 +12,7 @@ #define CPK_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/CPR_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/CPR_Handler.h index 8e9c8132f17..4d56f71a3ca 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/CPR_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/CPR_Handler.h @@ -11,13 +11,13 @@ #define CPR_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" +#include "Config_Handler_export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "Config_Handler_export.h" #include "ace/SString.h" #include <xercesc/util/XercesDefs.hpp> #include <xercesc/dom/DOM.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Cap_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Cap_Handler.h index f680961f75d..2abfcf09deb 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Cap_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Cap_Handler.h @@ -12,7 +12,7 @@ #define CAP_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "ace/SString.h" #include "ace/Hash_Map_Manager.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/CompIntrDesc_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/CompIntrDesc_Handler.h index 7c4e2e22898..7932ebd4b30 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/CompIntrDesc_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/CompIntrDesc_Handler.h @@ -4,7 +4,7 @@ #define COMPINTRDESC_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "ace/SString.h" #include "ace/Hash_Map_Manager.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/CompPkgDesc_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/CompPkgDesc_Handler.h index 9cd81ffa5f5..202afca9b2c 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/CompPkgDesc_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/CompPkgDesc_Handler.h @@ -12,7 +12,7 @@ #define COMPPKGDESC_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Config_Error_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Config_Error_Handler.h index ba1b8b5514c..4c039938d90 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Config_Error_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Config_Error_Handler.h @@ -42,7 +42,7 @@ namespace CIAO }; - } + }; } #include /**/ "ace/post.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc b/TAO/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc index 12ab9879d79..d8b0271f991 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc +++ b/TAO/CIAO/DAnCE/Config_Handlers/Config_Handlers.mpc @@ -2,14 +2,13 @@ project (Config_Handlers) : ciao_deployment_stub { - after += CIAO_DnC_Server sharedname = Config_Handlers dynamicflags = CONFIG_HANDLER_BUILD_DLL macros += XML_USE_PTHREADS requires += exceptions - includes += $(XERCESCROOT)/include - libpaths += $(XERCESCROOT)/lib - libs += xerces-c CIAO_DnC_Server TAO_IFR_Client TAO_Valuetype + includes += /usr/include $(XERCESCROOT)/include + libpaths += /usr/lib $(XERCESCROOT)/lib + libs += xerces-c CIAO_DnC_Server TAO_IFR_Client Source_Files { Utils.cpp @@ -47,42 +46,3 @@ project (Config_Handlers) : ciao_deployment_stub { XercesString.cpp } } - -project (XSC_Config_Handlers) : ciao_deployment_stub { - - requires += dummy_label - - sharedname = XSC_Config_Handlers - dynamicflags = CONFIG_HANDLER_BUILD_DLL - macros += XML_USE_PTHREADS - requires += exceptions - includes += $(XERCESCROOT)/include . - libpaths += $(XERCESCROOT)/lib - libs += xerces-c CIAO_DnC_Server TAO_IFR_Client - - Source_Files { - Basic_Deployment_Data.cpp - ccd.cpp - cdd.cpp - cdp.cpp - cid.cpp - cpd.cpp - Deployment.cpp - iad.cpp - pcd.cpp - toplevel.cpp - } - - Header_Files { - Basic_Deployment_Data.hpp - ccd.hpp - cdd.hpp - cdp.hpp - cid.hpp - cpd.hpp - Deployment.hpp - iad.hpp - pcd.hpp - toplevel.hpp - } -} diff --git a/TAO/CIAO/DAnCE/Config_Handlers/DT_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/DT_Handler.h index 8cd04c66650..faac487e828 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/DT_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/DT_Handler.h @@ -12,6 +12,7 @@ #define DT_HANDLER_H #include /**/ "ace/pre.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "tao/ORB.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Deployment.h b/TAO/CIAO/DAnCE/Config_Handlers/Deployment.h new file mode 100644 index 00000000000..a3fc3b72004 --- /dev/null +++ b/TAO/CIAO/DAnCE/Config_Handlers/Deployment.h @@ -0,0 +1,17 @@ +//================================================================== +/** + * @file Deployment.h + * + * $Id$ + * + * @author Emre Turkay <emre.turkay@vanderbilt.edu> + */ +//===================================================================== + +#ifndef DEPLOYMENT_H +#define DEPLOYMENT_H + +#define BEGIN_DEPLOYMENT_NAMESPACE namespace CIAO { namespace Config_Handler { +#define END_DEPLOYMENT_NAMESPACE }; }; + +#endif // DEPLOYMENT_H diff --git a/TAO/CIAO/DAnCE/Config_Handlers/DnC_Dump.h b/TAO/CIAO/DAnCE/Config_Handlers/DnC_Dump.h index b20b98469e9..47d7899432b 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/DnC_Dump.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/DnC_Dump.h @@ -37,8 +37,8 @@ namespace Deployment public: /// Dump functions for CORBA sequences - static void dump (const char* caption, - const ::CORBA::StringSeq &str_seq); + static void DnC_Dump::dump (const char* caption, + const ::CORBA::StringSeq &str_seq); template <typename SEQUENCE> static void dump_sequence (const char* caption, const SEQUENCE &seq); diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Domain_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Domain_Handler.h index 327bfe54bba..a29e7cf7fd1 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Domain_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Domain_Handler.h @@ -11,7 +11,7 @@ #define DOMAIN_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "Basic_Handler.h" #include "XercesString.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/ERE_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/ERE_Handler.h index 272bd8ecc63..3fdafe87009 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/ERE_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/ERE_Handler.h @@ -13,13 +13,13 @@ #define ERE_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" +#include "Config_Handler_export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> #include <xercesc/dom/DOM.hpp> #include "XercesString.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/IAD_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/IAD_Handler.h index 8cbfabd510e..a46de1d885f 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/IAD_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/IAD_Handler.h @@ -12,7 +12,7 @@ #define IAD_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "ace/SString.h" #include "ace/Hash_Map_Manager.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/ID_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/ID_Handler.h index c2142cfb706..ef7f9c5c86d 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/ID_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/ID_Handler.h @@ -12,7 +12,7 @@ #define ID_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/IR_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/IR_Handler.h index d7ff20f1c99..9e159ed2636 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/IR_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/IR_Handler.h @@ -12,7 +12,7 @@ #define IR_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "Basic_Handler.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/MID_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/MID_Handler.h index 4c99ef81621..17c3a2c4a3d 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/MID_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/MID_Handler.h @@ -4,7 +4,7 @@ #define MID_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "ace/SString.h" #include "ace/Hash_Map_Manager.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/NIA_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/NIA_Handler.h index cc3b1fd2a11..38ad44beed2 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/NIA_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/NIA_Handler.h @@ -12,7 +12,7 @@ #define NIA_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "Basic_Handler.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/PCI_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/PCI_Handler.h index 95cefcf5a90..841db0fc0a6 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/PCI_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/PCI_Handler.h @@ -12,7 +12,7 @@ #define PCI_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) diff --git a/TAO/CIAO/DAnCE/Config_Handlers/PC_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/PC_Handler.h index 9dfa24dd354..224f298f0a4 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/PC_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/PC_Handler.h @@ -12,7 +12,7 @@ #define PC_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "Basic_Handler.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Plan_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Plan_Handler.h index c4994e4255d..3983e4f1faf 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Plan_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Plan_Handler.h @@ -11,17 +11,17 @@ #define PLAN_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" - -#if !defined (ACE_LACKS_PRAGMA_ONCE) -#pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ - +#include "DeploymentC.h" #include "Basic_Handler.h" #include "Config_Handler_export.h" #include "ace/SString.h" #include "ace/Hash_Map_Manager.h" #include "ace/Null_Mutex.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +#pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + #include "ace/Auto_Ptr.h" #include "ace/Log_Msg.h" #include "ace/OS_main.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Process_Element.h b/TAO/CIAO/DAnCE/Config_Handlers/Process_Element.h index bec9e523fe4..c60c1e14b75 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Process_Element.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Process_Element.h @@ -12,8 +12,8 @@ #ifndef PROCESS_ELEMENT_H #define PROCESS_ELEMENT_H -#include "ciao/DeploymentC.h" -#include "Config.h" +#include "DeploymentC.h" +#include "Deployment.h" #include "Basic_Handler.h" #include "Config_Handler_export.h" #include "ace/SString.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Property_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Property_Handler.h index 1e392aea185..3367a2e1348 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Property_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Property_Handler.h @@ -10,14 +10,16 @@ #ifndef PROPERTY_HANDLER_H #define PROPERTY_HANDLER_H -#include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include /**/ "ace/pre.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" + #include <xercesc/util/XercesDefs.hpp> #include <xercesc/dom/DOM.hpp> #include "XercesString.h" + using Config_Handler::XStr; using xercesc::XMLString; using xercesc::DOMText; diff --git a/TAO/CIAO/DAnCE/Config_Handlers/RS_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/RS_Handler.h index dff3a6e149d..11d858b4141 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/RS_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/RS_Handler.h @@ -12,7 +12,7 @@ #define RS_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/RUK_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/RUK_Handler.h index b988eead549..70536e39072 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/RUK_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/RUK_Handler.h @@ -12,7 +12,7 @@ #define RUK_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Requirement_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/Requirement_Handler.h index c01ead11cab..b960e9b70d7 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Requirement_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Requirement_Handler.h @@ -12,7 +12,7 @@ #define REQUIREMENT_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/SPK_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/SPK_Handler.h index 7a9caa3c2a0..51b6f1eb8b2 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/SPK_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/SPK_Handler.h @@ -12,7 +12,7 @@ #define SPK_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/SP_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/SP_Handler.h index a45dcf7d508..a5402097793 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/SP_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/SP_Handler.h @@ -12,7 +12,7 @@ #define SP_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include <xercesc/util/XercesDefs.hpp> diff --git a/TAO/CIAO/DAnCE/Config_Handlers/TPD_Handler.h b/TAO/CIAO/DAnCE/Config_Handlers/TPD_Handler.h index 20b7020bd58..30265026f8c 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/TPD_Handler.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/TPD_Handler.h @@ -12,7 +12,7 @@ #define TPD_HANDLER_H #include /**/ "ace/pre.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "Config_Handler_export.h" #include "Basic_Handler.h" diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Utils.h b/TAO/CIAO/DAnCE/Config_Handlers/Utils.h index c47cd4a37c2..dd051603d40 100644 --- a/TAO/CIAO/DAnCE/Config_Handlers/Utils.h +++ b/TAO/CIAO/DAnCE/Config_Handlers/Utils.h @@ -17,7 +17,7 @@ #include /**/ "ace/pre.h" #include "Config_Handler_export.h" -#include "ciao/DeploymentC.h" +#include "DeploymentC.h" #include "tao/Basic_Types.h" #include "XercesString.h" diff --git a/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h b/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h index 1d009de77a6..ebc5aab66e3 100644 --- a/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h +++ b/TAO/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.h @@ -126,7 +126,7 @@ namespace CIAO TAO::Utils::Servant_Var<CIAO::DomainApplicationManager_Impl> dam_servant_; }; -} +}; #include /**/ "ace/post.h" #endif /* EXECUTIONMANAGER_IMPL_H */ diff --git a/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp b/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp index 7c8101ee800..3a253faa012 100644 --- a/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp +++ b/TAO/CIAO/DAnCE/ExecutionManager/Execution_Manager.cpp @@ -28,7 +28,7 @@ #include "tao/IORTable/IORTable.h" // Include Name Service header -#include "orbsvcs/CosNamingC.h" +#include "orbsvcs/orbsvcs/CosNamingC.h" #include "ace/SString.h" #include "ace/Read_Buffer.h" @@ -102,17 +102,14 @@ write_IOR(const char* ior) return 0; } -bool +int register_with_ns (const char * name_context, CORBA::ORB_ptr orb, - CIAO::ExecutionManagerDaemon_ptr obj - ACE_ENV_ARG_DECL) + CIAO::ExecutionManagerDaemon_ptr obj) { // Naming Service related operations CORBA::Object_var naming_context_object = - orb->resolve_initial_references ("NameService" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); + orb->resolve_initial_references ("NameService"); CosNaming::NamingContext_var naming_context = CosNaming::NamingContext::_narrow (naming_context_object.in ()); @@ -121,15 +118,12 @@ register_with_ns (const char * name_context, CosNaming::Name name (1); name.length (1); // Register the name with the NS - name[0].id = name_context; + name[0].id = CORBA::string_dup (name_context); // Register the servant with the Naming Service - naming_context->bind (name, - obj - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); + naming_context->bind (name, obj); - return true; + return 0; } int @@ -137,8 +131,6 @@ main (int argc, char *argv[]) { ACE_TRY_NEW_ENV { - // @@ Error checking is very bad! Need to be fixed! - // -- bala // Initialize orb CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, @@ -166,8 +158,7 @@ main (int argc, char *argv[]) ACE_TRY_CHECK; IORTable::Table_var adapter = - IORTable::Table::_narrow (table_object.in () - ACE_ENV_ARG_PARAMETER); + IORTable::Table::_narrow (table_object.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; if (CORBA::is_nil (adapter.in ())) @@ -183,18 +174,14 @@ main (int argc, char *argv[]) // Implicit activation PortableServer::ServantBase_var safe_daemon (daemon_servant); - CIAO::ExecutionManagerDaemon_var daemon = - daemon_servant->_this (); + CIAO::ExecutionManagerDaemon_var daemon = daemon_servant->_this (); // Now register daemon with IOR table and write its IOR. - CORBA::String_var str = - orb->object_to_string (daemon.in () - ACE_ENV_ARG_PARAMETER); + CORBA::String_var str = orb->object_to_string (daemon.in () + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - adapter->bind ("ExecutionManager", - str.in () - ACE_ENV_ARG_PARAMETER); + adapter->bind ("ExecutionManager", str.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; if (write_to_ior_) @@ -202,17 +189,10 @@ main (int argc, char *argv[]) else if (register_with_ns_) { // Register this name with the Naming Service - (void) register_with_ns (name, - orb.in (), - daemon.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + register_with_ns (name, orb.in (), daemon.in ()); } -#if 0 - ACE_DEBUG ((LM_INFO, - "CIAO_ExecutionMananger IOR: %s\n", str.in ())); -#endif /*if 0*/ + ACE_DEBUG ((LM_INFO, "CIAO_ExecutionMananger IOR: %s\n", str.in ())); // Activate POA manager PortableServer::POAManager_var mgr diff --git a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp index 86ef0881fa8..2021a7b5839 100644 --- a/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp +++ b/TAO/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp @@ -239,8 +239,7 @@ create_connections (ACE_ENV_SINGLE_ARG_DECL) const CORBA::ULong facet_len = facets->length (); const CORBA::ULong consumer_len = consumers->length (); - CORBA::ULong curr_len = retv->length (); - retv->length (curr_len + facet_len + consumer_len); + retv->length (facet_len + consumer_len); CORBA::ULong i = 0; for (i = 0; i < facet_len; ++i) @@ -309,7 +308,7 @@ startLaunch (const Deployment::Properties & configProperty, Deployment::ComponentInfos_var comp_info; // For debugging. - if (true) //(CIAO::debug_level () > 1) + if (CIAO::debug_level () > 1) { const CORBA::ULong info_len = infos.length (); for (CORBA::ULong i = 0; i < info_len; ++i) diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp index a48fa385a45..49cb6647fb1 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp +++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.cpp @@ -3,6 +3,9 @@ #include "NodeDaemon_Impl.h" #include "../NodeApplicationManager/NodeApplicationManager_Impl.h" +// @@ (OO) Method definitions should never use "_WITH_DEFAULTS" +// versions of emulated exception parameters. Please remove +// the "_WITH_DEFAULTS" CIAO::NodeDaemon_Impl::NodeDaemon_Impl (const char *name, CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, @@ -19,30 +22,27 @@ CIAO::NodeDaemon_Impl::NodeDaemon_Impl (const char *name, { ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY - { - //create the call back poa for NAM. - PortableServer::POAManager_var mgr - = this->poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->callback_poa_ = - this->poa_->create_POA ("callback_poa", - mgr.in (), - 0 - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + { + //create the call back poa for NAM. + PortableServer::POAManager_var mgr + = this->poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; - } + this->callback_poa_ = + this->poa_->create_POA ("callback_poa", + mgr.in (), + 0 + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + } ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "NodeDaemon_Impl::constructor\t\n"); - // @@ This is bogus and will not work with emulated exceptions - // -- Bala - ACE_RE_THROW; - } + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "NodeDaemon_Impl::constructor\t\n"); + ACE_RE_THROW; + } ACE_ENDTRY; - ACE_CHECK; } CIAO::NodeDaemon_Impl::~NodeDaemon_Impl () @@ -125,12 +125,19 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; + // Obtain the Object Reference + //CORBA::Object_var obj = + // this->poa_->servant_to_reference (app_mgr ACE_ENV_ARG_PARAMETER); + //ACE_TRY_CHECK; + + //this->manager_ = + // Deployment::NodeApplicationManager::_narrow (obj.in ()); + if (CORBA::is_nil (this->manager_.in ())) { - ACE_ERROR ((LM_ERROR, - "CIAO.NodeDaemon (%P|%t) -- ", - "preparePlan: NodeApplicationManager ref", - "is nil\n")); + ACE_DEBUG ((LM_DEBUG, + "NodeDaemon_Impl:preparePlan: " + "NodeApplicationManager ref is nil\n")); ACE_TRY_THROW (Deployment::StartError ()); } } @@ -152,8 +159,7 @@ CIAO::NodeDaemon_Impl::preparePlan (const Deployment::DeploymentPlan &plan void CIAO::NodeDaemon_Impl::destroyManager (Deployment::NodeApplicationManager_ptr ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - Deployment::StopError)) + ACE_THROW_SPEC ((CORBA::SystemException, Deployment::StopError)) { ACE_TRY { @@ -163,12 +169,10 @@ CIAO::NodeDaemon_Impl::destroyManager (Deployment::NodeApplicationManager_ptr ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - this->poa_->deactivate_object (id.in () - ACE_ENV_ARG_PARAMETER); + this->poa_->deactivate_object (id.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - this->manager_ = - Deployment::NodeApplicationManager::_nil (); + this->manager_ = Deployment::NodeApplicationManager::_nil (); } ACE_CATCHANY { diff --git a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h index a30fe5a2244..7266604d2f7 100644 --- a/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h +++ b/TAO/CIAO/DAnCE/NodeManager/NodeDaemon_Impl.h @@ -1,4 +1,5 @@ // -*- C++ -*- + //============================================================================= /** * @file NodeDaemon_Impl.h @@ -6,11 +7,11 @@ * $Id$ * * This file contains servant implementation for Deployment:NodeManager - * interface. In the current design of the NodeManager, as with the - * legacy implementation of CIAO, Each NodeManager corresponds to - * ONE NodeApplication Manager. Though, the name intuitively suggests - * that there be one NodeManager for every node, our design, allows - * the end-user to have multiple components run on the same node. + * interface. In the current design of the NodeManager, as with the legacy + * implementation of CIAO, Each NodeManager corresponds to ONE NodeApplication + * Manager. Though, the name intuitively suggests that there be one NodeManager + * for every node, our design, allows the end-user to have multiple components + * run on the same node. * * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu> */ @@ -27,21 +28,13 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#if defined (_MSC_VER) -# if (_MSC_VER >= 1200) -# pragma warning(push) -# endif /* _MSC_VER >= 1200 */ -# pragma warning (disable:4250) -#endif /* _MSC_VER */ - namespace CIAO { /** * @class NodeDaemon_Impl * - * @brief Servant implementation CIAO's daemon process control - * interface + * @brief Servant implementation CIAO's daemon process control interface * * This class implements the CIAO:NodeDaemon interface. * @@ -58,9 +51,10 @@ namespace CIAO PortableServer::POA_ptr p, const char * nodeapp_loc, int spawn_delay) - ACE_THROW_SPEC ((CORBA::SystemException)); + ACE_THROW_SPEC ((CORBA::SystemException)); - /// POA operation.. + /// Get the containing POA. This operation does *not* + /// increase the reference count of the POA. virtual PortableServer::POA_ptr _default_POA (void); /// CIAO::Daemon defined attributes/operations. @@ -94,11 +88,12 @@ namespace CIAO Deployment::StopError)); protected: - /// Since this class is reference counted, making this - /// destructor protected to enforce proper memory managment - /// through the reference counting mechanism (i.e. to - /// disallow calling operator delete() on an instance of - /// this class. + // Since this class is reference counted, making this + // destructor protected to enforce proper memory managment + // through the reference counting mechanism (i.e. to + // disallow calling operator delete() on an instance of + // this class. + /// Destructor virtual ~NodeDaemon_Impl (void); // Keep a pointer to the managing ORB serving this servant. @@ -121,13 +116,9 @@ namespace CIAO // Cache reference of last NodeAppManager Deployment::NodeApplicationManager_var manager_; + }; } - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -#pragma warning(pop) -#endif /* _MSC_VER */ - #if defined (__ACE_INLINE__) # include "NodeDaemon_Impl.inl" #endif /* __ACE_INLINE__ */ diff --git a/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp b/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp index 11dd2165059..f29c5d50922 100644 --- a/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp +++ b/TAO/CIAO/DAnCE/NodeManager/Node_Daemon.cpp @@ -1,14 +1,35 @@ // $Id$ +//============================================================== +/** + * @file Node_Daemon.cpp + * + * @brief CIAO's Node Daemon implementation + * + * NodeDaemon is the bootstraping mechanism to create new + * NodeApplication on the localhost. We currently depend on + * starting the NodeApplicationManager process on some port of all + * the hosts that have NodeApplication install to function properly. + * The port to run this daemon can be set by using the TAO ORB options + * command of -ORBEndpoint <port>. This replaces the earlier CIAO_Daemon + * implementation of CIAO as defined in the CCM specification. + * + * @author Arvind S. Krishna <arvindk@dre.vanderbilt.edu> + * @author Tao Lu <lu@dre.vanderbilt.edu> + */ +//=============================================================== + #include "NodeDaemon_Impl.h" -#include "orbsvcs/CosNamingC.h" #include "tao/IORTable/IORTable.h" + +// Include Name Service header +#include "orbsvcs/orbsvcs/CosNamingC.h" + #include "ace/SString.h" #include "ace/Read_Buffer.h" #include "ace/Get_Opt.h" #include "ace/OS_NS_stdio.h" #include "ace/OS_NS_unistd.h" -#include "ace/os_include/os_netdb.h" #include "ciao/Server_init.h" #include "ciao/CIAO_common.h" @@ -90,17 +111,14 @@ write_IOR(const char* ior) return 0; } -bool +int register_with_ns (const char * name_context, CORBA::ORB_ptr orb, - CIAO::NodeDaemon_ptr obj - ACE_ENV_ARG_DECL) + CIAO::NodeDaemon_ptr obj) { // Naming Service related operations CORBA::Object_var naming_context_object = - orb->resolve_initial_references ("NameService" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (false); + orb->resolve_initial_references ("NameService"); CosNaming::NamingContext_var naming_context = CosNaming::NamingContext::_narrow (naming_context_object.in ()); @@ -108,12 +126,13 @@ register_with_ns (const char * name_context, // Initialize the Naming Sequence CosNaming::Name name (1); name.length (1); - name[0].id = name_context; + // Register the name with the NS + name[0].id = CORBA::string_dup (name_context); // Register the servant with the Naming Service naming_context->bind (name, obj); - return true; + return 0; } int @@ -122,7 +141,6 @@ main (int argc, char *argv[]) ACE_TRY_NEW_ENV { // Initialize orb - // @@TODO: Add error checking. There is absoluteley none. CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "" @@ -177,39 +195,30 @@ main (int argc, char *argv[]) spawn_delay), -1); PortableServer::ServantBase_var safe_daemon (daemon_servant); - // Implicit activation - CIAO::NodeDaemon_var daemon = - daemon_servant->_this (); - CORBA::String_var str = - orb->object_to_string (daemon.in () - ACE_ENV_ARG_PARAMETER); + CIAO::NodeDaemon_var daemon = daemon_servant->_this (); + + CORBA::String_var str = orb->object_to_string (daemon.in () + ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - adapter->bind ("NodeManager", - str.in () - ACE_ENV_ARG_PARAMETER); + adapter->bind ("NodeManager", str.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; if (write_to_ior_) write_IOR (str.in ()); else if (register_with_ns_) { - char name [MAXHOSTNAMELEN + 1]; + char name [100]; if (ACE_OS::hostname (name, 100) == -1) { - ACE_ERROR ((LM_ERROR, - "gethostname call failed! \n")); + ACE_DEBUG ((LM_DEBUG, "gethostname call failed! \n")); exit (1); } // Register this name with the Naming Service - (void) register_with_ns (name, - orb.in (), - daemon.in () - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; + register_with_ns (name, orb.in (), daemon.in ()); } ACE_DEBUG ((LM_INFO, "CIAO_NodeDaemon IOR: %s\n", str.in ())); diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp index fa5b840ef43..60055845cad 100644 --- a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp +++ b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp @@ -4,7 +4,6 @@ #include "RepositoryManager_Impl.h" #include "Repository_Manager_conf.h" #include "Config_Handlers/TPD_Handler.h" -#include "Config_Handlers/DnC_Dump.h" CIAO::RepositoryManager_Impl::RepositoryManager_Impl (CORBA::ORB_ptr orb, @@ -80,9 +79,7 @@ installPackage (const char* installation_name, DOMNodeFilter::SHOW_TEXT); Deployment::PackageConfiguration pc; pc_handler.process_PackageConfiguration (pc); - //Deployment::DnC_Dump::dump (pc); - this->pc_table_.bind (installation_name, (pc)); - //Deployment::DnC_Dump::dump (*(&pc)); + this->pc_table_.bind (installation_name, &(pc)); } catch (CORBA::Exception& ex) { @@ -133,18 +130,11 @@ CIAO::RepositoryManager_Impl::findPackageByName (const char* name ACE_THROW_SPEC ((CORBA::SystemException, Deployment::NoSuchName)) { - Deployment::PackageConfiguration pc; + Deployment::PackageConfiguration* pc = 0; if (pc_table_.find (name, pc) == 0) { - //Deployment::PackageConfiguration* dup_pc = pc; - //Deployment::DnC_Dump::dump (*pc); - //return dup_pc; - Deployment::PackageConfiguration_var pc_var = 0; - ACE_NEW_THROW_EX (pc_var, - Deployment::PackageConfiguration (pc), - CORBA::NO_MEMORY ()); - //Deployment::DnC_Dump::dump (*pc_var); - return pc_var._retn (); + Deployment::PackageConfiguration* dup_pc = pc; + return dup_pc; } else { diff --git a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h index afe7dd36542..2ad95826023 100644 --- a/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h +++ b/TAO/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h @@ -144,7 +144,7 @@ namespace CIAO // destructor typedef ACE_Hash_Map_Manager_Ex<const char *, - Deployment::PackageConfiguration, + Deployment::PackageConfiguration*, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX> pc_table; @@ -157,7 +157,7 @@ namespace CIAO pc_table pc_table_; }; -} +}; #include /**/ "ace/post.h" #endif /* REPOSITORYMANAGER_IMPL_H */ diff --git a/TAO/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp b/TAO/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp index 4605a1ea41b..312d01d0bfd 100644 --- a/TAO/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp +++ b/TAO/CIAO/DAnCE/RepositoryManager/Repository_Manager.cpp @@ -3,7 +3,6 @@ #include "RepositoryManager_Impl.h" #include "Update_Plan.h" #include "ExecutionManager/ExecutionManagerC.h" -#include "Config_Handlers/DnC_Dump.h" #include "NodeManager/NodeDaemonC.h" #include "ace/OS_NS_stdio.h" #include "ace/streams.h" @@ -68,10 +67,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) // Initialize the ORB so that CORBA::Any will work // - CORBA::ORB_var orb = - CORBA::ORB_init (argc, - argv, - ""); + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, ""); try { @@ -106,9 +102,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) return 1; } - //DOMDocument* tpd_doc = tpd_parser->parseURI (package_url); + DOMDocument* tpd_doc = tpd_parser->parseURI (package_url); - //ACE_UNUSED_ARG (tpd_doc); + ACE_UNUSED_ARG (tpd_doc); if (tpd_handler.getErrors()) { @@ -119,7 +115,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_DEBUG ((LM_DEBUG, "Null DOM Document obtained, \ May be the URL is wrong!!\n")); - throw CIAO::Null_Dom_Document (); + throw Null_Dom_Document (); } // free up DOMBuilder. DOMBuilder also deletes the DOMDocument memory. @@ -143,14 +139,13 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) rep_impl->installPackage ("PC", package_url); pc = rep_impl->findPackageByName ("PC"); - //Deployment::DnC_Dump::dump (*pc); - CIAO::REF_MAP ref_map; - CIAO::REF_MAP primary_ref_map; + REF_MAP ref_map; + REF_MAP primary_ref_map; // traverse the PackageConfiguration IDL data structure and // update the deployment plan IDL data structure. - CIAO::traverse_package (pc, plan, ref_map, primary_ref_map); + traverse_package (pc, plan, ref_map, primary_ref_map); //Deployment::DnC_Dump::dump (plan); @@ -259,7 +254,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) catch (CORBA::Exception& ex) { ACE_PRINT_EXCEPTION (ex, "Caught CORBA Exception: "); - while (true); + while (true); return -1; } catch (const DOMException& e) @@ -278,13 +273,13 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[]) } //ACE_PRINT_EXCEPTION ("Caught DOM Exception: "); ACE_ERROR ((LM_ERROR, "Caught DOM exception\n")); - while (true); + while (true); return -1; } catch (...) { ACE_ERROR ((LM_ERROR, "Caught unknown exception\n")); - while (true); + while (true); return -1; } diff --git a/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.cpp b/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.cpp index f8f16019b95..76f4fa242ca 100644 --- a/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.cpp +++ b/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.cpp @@ -7,77 +7,54 @@ #include "ace/OS_NS_stdio.h" #include "ace/streams.h" -ACE_RCSID (DAnCE, - RepositoryManager, - "$Id$") - -using namespace Deployment; - -namespace CIAO +void traverse_package (Deployment::PackageConfiguration* &pc, + Deployment::DeploymentPlan &plan, + REF_MAP &ref_map, REF_MAP &primary_ref_map) { - void - traverse_package (PackageConfiguration* &pc, - DeploymentPlan &plan, - REF_MAP &ref_map, - REF_MAP &primary_ref_map) - { - // traverse the package configuration structure to get to the - // BasePackage which consists of assemblies. - // - CORBA::ULong bp_len = - pc->basePackage.length (); - - for (CORBA::ULong x = 0; x != bp_len; ++x) - { - CORBA::ULong impl_len = - pc->basePackage[x].implementation.length (); - - for (CORBA::ULong y = 0; - y != impl_len; - ++y) - { - // traverse the .cpd file and get to the referenced .cid file - // - ComponentImplementationDescription cid = - pc->basePackage[x].implementation[y].referencedImplementation; - CORBA::ULong assembly_len = cid.assemblyImpl.length (); - - for (CORBA::ULong z = 0; - z != assembly_len; - ++z) - { - // traverse the .cid file and get to each - // of the "assemblyImpl" tags. - // - ComponentAssemblyDescription assembly = - cid.assemblyImpl[z]; - // - // traverse the individual assembly. - // - traverse_assembly (assembly, plan, ref_map, primary_ref_map); - } - } - } - } - - void - traverse_assembly (ComponentAssemblyDescription &assembly, - DeploymentPlan &plan, - REF_MAP &ref_map, REF_MAP &primary_ref_map) - { - // traverse the assembly (ComponentAssemblyDescription) and - // processes the instances and the connection within the assembly. - // - CORBA::ULong ins_len = assembly.instance.length (); - for (CORBA::ULong k = 0; k < ins_len; ++k) - { - SubcomponentInstantiationDescription ins = - assembly.instance[k]; - const char* in_name = ins.name; - - CORBA::ULong plan_ins_len = - plan.instance.length (); + // traverse the package configuration structure to get to the + // BasePackage which consists of assemblies. + // + CORBA::ULong bp_len = pc->basePackage.length (); + for (CORBA::ULong x = 0; x < bp_len; ++x) + { + CORBA::ULong impl_len = pc->basePackage[x].implementation.length (); + for (CORBA::ULong y = 0; y < impl_len; ++y) + { + // traverse the .cpd file and get to the referenced .cid file + // + Deployment::ComponentImplementationDescription cid = + pc->basePackage[x].implementation[y].referencedImplementation; + CORBA::ULong assembly_len = cid.assemblyImpl.length (); + for (CORBA::ULong z = 0; z < assembly_len; ++z) + { + // traverse the .cid file and get to each + // of the "assemblyImpl" tags. + // + Deployment::ComponentAssemblyDescription assembly = + cid.assemblyImpl[z]; + // + // traverse the individual assembly. + // + traverse_assembly (assembly, plan, ref_map, primary_ref_map); + } + } + } +} +void traverse_assembly (Deployment::ComponentAssemblyDescription &assembly, + Deployment::DeploymentPlan &plan, + REF_MAP &ref_map, REF_MAP &primary_ref_map) +{ + // traverse the assembly (ComponentAssemblyDescription) and + // processes the instances and the connection within the assembly. + // + CORBA::ULong ins_len = assembly.instance.length (); + for (CORBA::ULong k = 0; k < ins_len; ++k) + { + Deployment::SubcomponentInstantiationDescription ins = + assembly.instance[k]; + const char* in_name = ins.name; + CORBA::ULong plan_ins_len = plan.instance.length (); for (CORBA::ULong l = 0; l < plan_ins_len; ++l) { const char* plan_name = plan.instance[l].name; @@ -87,47 +64,43 @@ namespace CIAO ref_map, primary_ref_map); } } - } - - CORBA::ULong assembly_conn_len = - assembly.connection.length (); - - for (CORBA::ULong m = 0; m < assembly_conn_len; ++m) - { - AssemblyConnectionDescription - assembly_connection = assembly.connection[m]; - traverse_assembly_connection (assembly, - assembly_connection, - plan); - } - } + } + CORBA::ULong assembly_conn_len = assembly.connection.length (); + for (CORBA::ULong m = 0; m < assembly_conn_len; ++m) + { + Deployment::AssemblyConnectionDescription + assembly_connection = assembly.connection[m]; + traverse_assembly_connection (assembly, + assembly_connection, + plan); + } +} - void - traverse_assembly_connection (ComponentAssemblyDescription - &assembly, - AssemblyConnectionDescription - &assembly_connection, - DeploymentPlan &plan) - { - // traverse the assembly connection and get information about the - // portName and the instances at each end of the connection. - // Also traverse the InterfaceDescriptions for each of those instances - // and populate the portKind information. - // - CORBA::ULong con_length (plan.connection.length ()); - plan.connection.length (con_length + 1); - CORBA::ULong iepe_len = assembly_connection.internalEndpoint.length (); - for (CORBA::ULong n = 0; n < iepe_len; ++n) - { - CORBA::ULong iep_len (plan.connection[con_length]. - internalEndpoint.length ()); +void traverse_assembly_connection (Deployment::ComponentAssemblyDescription + &assembly, + Deployment::AssemblyConnectionDescription + &assembly_connection, + Deployment::DeploymentPlan &plan) +{ + // traverse the assembly connection and get information about the + // portName and the instances at each end of the connection. + // Also traverse the InterfaceDescriptions for each of those instances + // and populate the portKind information. + // + CORBA::ULong con_length (plan.connection.length ()); + plan.connection.length (con_length + 1); + CORBA::ULong iepe_len = assembly_connection.internalEndpoint.length (); + for (CORBA::ULong n = 0; n < iepe_len; ++n) + { + CORBA::ULong iep_len (plan.connection[con_length]. + internalEndpoint.length ()); plan.connection[con_length].internalEndpoint - .length (iep_len + 1); + .length (iep_len + 1); plan.connection[con_length].internalEndpoint - [iep_len].portName = assembly_connection. - internalEndpoint[n].portName; + [iep_len].portName = assembly_connection. + internalEndpoint[n].portName; CORBA::ULong ins_ref = assembly_connection.internalEndpoint[n]. - instanceRef; + instanceRef; const char* ins_name = assembly.instance[ins_ref].name; CORBA::ULong plan_ins_len = plan.instance.length (); for (CORBA::ULong w = 0; w < plan_ins_len; ++w) @@ -143,243 +116,233 @@ namespace CIAO traverse_interface (assembly.instance[ins_ref], plan.connection[con_length]. internalEndpoint[iep_len]); - } - } - - void - traverse_interface (SubcomponentInstantiationDescription - &instance, - PlanSubcomponentPortEndpoint - &pspe) - { - // traverse the InterfaceDescription of the instance and get information - // about the portkind of the port. - // - CORBA::ULong pack_len = instance.package.length (); - for (CORBA::ULong m = 0; m < pack_len; ++m) - { - ComponentPackageDescription - package = instance.package[m]; - - ComponentInterfaceDescription - cid = package.realizes; - - CORBA::ULong port_len = cid.port.length (); - - for (CORBA::ULong n = 0; n < port_len; ++n) - { - const char* main_port_name = cid.port[n].name; - const char* port_name = pspe.portName; - if (strcmp (main_port_name, port_name) == 0) - { - pspe.kind = cid.port[n].kind; - } - } - } - } + } +} - void - traverse_assembly_instance ( - SubcomponentInstantiationDescription - &instance, - DeploymentPlan &plan, int l, - REF_MAP &ref_map, REF_MAP &primary_ref_map) - { - // Each instance has a package. - // Each package has an implementation and their correspoding artifacts. - // Traverse this information and populate the artifact and the - // implementation information within the DeploymentPlan. - // - ART_REF_MAP art_ref_map; +void traverse_interface (Deployment::SubcomponentInstantiationDescription + &instance, + Deployment::PlanSubcomponentPortEndpoint + &pspe) +{ + // traverse the InterfaceDescription of the instance and get information + // about the portkind of the port. + // + CORBA::ULong pack_len = instance.package.length (); + for (CORBA::ULong m = 0; m < pack_len; ++m) + { + Deployment::ComponentPackageDescription + package = instance.package[m]; - CORBA::ULong pack_len = instance.package.length (); + Deployment::ComponentInterfaceDescription + cid = package.realizes; - for (CORBA::ULong m = 0; m < pack_len; ++m) - { - ComponentPackageDescription - package = instance.package[m]; - CORBA::ULong pack_impl_len = package.implementation.length (); + CORBA::ULong port_len = cid.port.length (); - for (CORBA::ULong n = 0; n < pack_impl_len; ++n) - { - PackagedComponentImplementation - impl = package.implementation[n]; - CORBA::ULong impl_length (plan.implementation.length ()); - plan.implementation.length (impl_length + 1); - plan.implementation[impl_length].name = plan.instance[l].name; - plan.instance[l].implementationRef = impl_length; - CORBA::ULong mono_impl_len = - impl.referencedImplementation.monolithicImpl.length (); + for (CORBA::ULong n = 0; n < port_len; ++n) + { + const char* main_port_name = cid.port[n].name; + const char* port_name = pspe.portName; + if (strcmp (main_port_name, port_name) == 0) + { + pspe.kind = cid.port[n].kind; + } + } + } +} - for (CORBA::ULong p = 0; p < mono_impl_len; ++p) - { - MonolithicImplementationDescription - mid = impl.referencedImplementation.monolithicImpl[p]; +void traverse_assembly_instance (Deployment:: + SubcomponentInstantiationDescription + &instance, + Deployment::DeploymentPlan &plan, int l, + REF_MAP &ref_map, REF_MAP &primary_ref_map) +{ + // Each instance has a package. + // Each package has an implementation and their correspoding artifacts. + // Traverse this information and populate the artifact and the + // implementation information within the DeploymentPlan. + // + ART_REF_MAP art_ref_map; + + CORBA::ULong pack_len = instance.package.length (); + + for (CORBA::ULong m = 0; m < pack_len; ++m) + { + Deployment::ComponentPackageDescription + package = instance.package[m]; + CORBA::ULong pack_impl_len = package.implementation.length (); + + for (CORBA::ULong n = 0; n < pack_impl_len; ++n) + { + Deployment::PackagedComponentImplementation + impl = package.implementation[n]; + CORBA::ULong impl_length (plan.implementation.length ()); + plan.implementation.length (impl_length + 1); + plan.implementation[impl_length].name = plan.instance[l].name; + plan.instance[l].implementationRef = impl_length; + CORBA::ULong mono_impl_len = + impl.referencedImplementation.monolithicImpl.length (); + + for (CORBA::ULong p = 0; p < mono_impl_len; ++p) + { + Deployment::MonolithicImplementationDescription + mid = impl.referencedImplementation.monolithicImpl[p]; - update_artifacts (mid, plan, plan.instance[l], + update_artifacts (mid, plan, plan.instance[l], ref_map, primary_ref_map, art_ref_map, - plan.implementation[impl_length]); - } - update_impl_config_property (impl, plan.implementation[impl_length], - plan.instance[l]); - } - } - } - - void - update_artifacts (MonolithicImplementationDescription &mid, - DeploymentPlan &plan, - InstanceDeploymentDescription &instance, - REF_MAP &ref_map, REF_MAP &primary_ref_map, - ART_REF_MAP &art_ref_map, - MonolithicDeploymentDescription &mdd) - { - CORBA::ULong prim_art_len = mid.primaryArtifact.length (); - for (CORBA::ULong q = 0; q < prim_art_len; ++q) - { - ImplementationArtifactDescription - pack_iad = mid.primaryArtifact[q].referencedArtifact; - ACE_TString artifact_name = (const char*)mid.primaryArtifact[q].name; - int arti_len; - CORBA::ULong art_length (plan.artifact.length ()); + plan.implementation[impl_length]); + } + update_impl_config_property (impl, plan.implementation[impl_length], + plan.instance[l]); + } + } +} - if (ref_map.find (artifact_name, arti_len) != 0) - { - plan.artifact.length (art_length + 1); - plan.artifact[art_length].name = mid.primaryArtifact[q].name; - plan.artifact[art_length].node = instance.node; - ref_map.bind (artifact_name, art_length); - primary_ref_map.bind (artifact_name, art_length); - CORBA::ULong art_ref_len (mdd.artifactRef.length ()); - mdd.artifactRef.length (art_ref_len + 1); - mdd.artifactRef[art_ref_len] = art_length; - update_artifact_location (pack_iad, +void update_artifacts (Deployment::MonolithicImplementationDescription &mid, + Deployment::DeploymentPlan &plan, + Deployment::InstanceDeploymentDescription &instance, + REF_MAP &ref_map, REF_MAP &primary_ref_map, + ART_REF_MAP &art_ref_map, + Deployment::MonolithicDeploymentDescription &mdd) +{ + CORBA::ULong prim_art_len = mid.primaryArtifact.length (); + for (CORBA::ULong q = 0; q < prim_art_len; ++q) + { + Deployment::ImplementationArtifactDescription + pack_iad = mid.primaryArtifact[q].referencedArtifact; + ACE_TString artifact_name = (const char*)mid.primaryArtifact[q].name; + int arti_len; + CORBA::ULong art_length (plan.artifact.length ()); + + if (ref_map.find (artifact_name, arti_len) != 0) + { + plan.artifact.length (art_length + 1); + plan.artifact[art_length].name = mid.primaryArtifact[q].name; + plan.artifact[art_length].node = instance.node; + ref_map.bind (artifact_name, art_length); + primary_ref_map.bind (artifact_name, art_length); + CORBA::ULong art_ref_len (mdd.artifactRef.length ()); + mdd.artifactRef.length (art_ref_len + 1); + mdd.artifactRef[art_ref_len] = art_length; + update_artifact_location (pack_iad, + plan.artifact[art_length]); + update_artifact_property (pack_iad, plan.artifact[art_length]); - update_artifact_property (pack_iad, - plan.artifact[art_length]); - } - update_common_artifact_and_art_ref (pack_iad, - primary_ref_map, ref_map, + } + update_common_artifact_and_art_ref (pack_iad, + primary_ref_map, ref_map, art_ref_map, mdd, - plan, instance); - } - } - - void - update_common_artifact_and_art_ref ( - ImplementationArtifactDescription - &pack_iad, - REF_MAP &primary_ref_map, - REF_MAP &ref_map, - ART_REF_MAP &art_ref_map, - - MonolithicDeploymentDescription &mid, - DeploymentPlan &plan, + plan, instance); + } +} +void update_common_artifact_and_art_ref (Deployment:: + ImplementationArtifactDescription + &pack_iad, + REF_MAP &primary_ref_map, + REF_MAP &ref_map, + ART_REF_MAP &art_ref_map, + Deployment:: + MonolithicDeploymentDescription &mid, + Deployment::DeploymentPlan &plan, + Deployment:: InstanceDeploymentDescription &instance) - { - CORBA::ULong deps_len = pack_iad.dependsOn.length (); - for (CORBA::ULong g = 0; g < deps_len; ++g) - { - ACE_TString dep_name = - (const char*)pack_iad.dependsOn[g].name; - int arti_len; - - if (ref_map.find (dep_name, arti_len) == 0) - { - if (primary_ref_map.find (dep_name, arti_len) != 0) - { - if (art_ref_map.find (arti_len, arti_len) != 0) - { - update_impl_art_ref (mid, arti_len); - art_ref_map.bind (arti_len, arti_len); - } - } - } - else - { - ImplementationArtifactDescription - depends_iad = pack_iad.dependsOn[g]. - referencedArtifact; - CORBA::ULong new_art_length (plan.artifact.length ()); - plan.artifact.length (new_art_length + 1); - plan.artifact[new_art_length].name = - pack_iad.dependsOn[g].name; - plan.artifact[new_art_length].node = instance.node; - update_artifact_location (depends_iad, - plan.artifact - [new_art_length]); - ref_map.bind ( - (const char*)plan.artifact[new_art_length].name, - new_art_length); - update_impl_art_ref (mid, new_art_length); - art_ref_map.bind (new_art_length, new_art_length); - } - } - } - - void - update_impl_config_property (PackagedComponentImplementation - &impl, - MonolithicDeploymentDescription - &mid, +{ + CORBA::ULong deps_len = pack_iad.dependsOn.length (); + for (CORBA::ULong g = 0; g < deps_len; ++g) + { + ACE_TString dep_name = + (const char*)pack_iad.dependsOn[g].name; + int arti_len; + + if (ref_map.find (dep_name, arti_len) == 0) + { + if (primary_ref_map.find (dep_name, arti_len) != 0) + { + if (art_ref_map.find (arti_len, arti_len) != 0) + { + update_impl_art_ref (mid, arti_len); + art_ref_map.bind (arti_len, arti_len); + } + } + } + else + { + Deployment::ImplementationArtifactDescription + depends_iad = pack_iad.dependsOn[g]. + referencedArtifact; + CORBA::ULong new_art_length (plan.artifact.length ()); + plan.artifact.length (new_art_length + 1); + plan.artifact[new_art_length].name = + pack_iad.dependsOn[g].name; + plan.artifact[new_art_length].node = instance.node; + update_artifact_location (depends_iad, + plan.artifact + [new_art_length]); + ref_map.bind ( + (const char*)plan.artifact[new_art_length].name, + new_art_length); + update_impl_art_ref (mid, new_art_length); + art_ref_map.bind (new_art_length, new_art_length); + } + } +} +void update_impl_config_property (Deployment::PackagedComponentImplementation + &impl, + Deployment::MonolithicDeploymentDescription + &mid, + Deployment:: InstanceDeploymentDescription - &instance) - { - CORBA::ULong pro_len = + &instance) +{ + CORBA::ULong pro_len = impl.referencedImplementation.configProperty.length (); + for (CORBA::ULong x = 0; x < pro_len; ++x) + { + CORBA::ULong impl_pro_len (mid.execParameter.length ()); + mid.execParameter.length (impl_pro_len + 1); + mid.execParameter[impl_pro_len] + = impl.referencedImplementation.configProperty[x]; + CORBA::ULong ins_pro_len (instance.configProperty. length ()); + instance.configProperty.length (ins_pro_len + 1); + instance.configProperty[ins_pro_len] + = impl.referencedImplementation.configProperty[x]; + } +} - for (CORBA::ULong x = 0; x < pro_len; ++x) - { - CORBA::ULong impl_pro_len (mid.execParameter.length ()); - mid.execParameter.length (impl_pro_len + 1); - mid.execParameter[impl_pro_len] - = impl.referencedImplementation.configProperty[x]; - CORBA::ULong ins_pro_len (instance.configProperty. length ()); - instance.configProperty.length (ins_pro_len + 1); - instance.configProperty[ins_pro_len] - = impl.referencedImplementation.configProperty[x]; - } - } - - void - update_impl_art_ref (MonolithicDeploymentDescription &mid, - int arti_len) - { - CORBA::ULong new_art_ref_len (mid.artifactRef.length ()); - mid.artifactRef.length (new_art_ref_len + 1); - mid.artifactRef[new_art_ref_len] = arti_len; - } +void update_impl_art_ref (Deployment::MonolithicDeploymentDescription + &mid, int arti_len) +{ + CORBA::ULong new_art_ref_len (mid.artifactRef.length ()); + mid.artifactRef.length (new_art_ref_len + 1); + mid.artifactRef[new_art_ref_len] = arti_len; +} - void - update_artifact_location (ImplementationArtifactDescription - &pack_iad, - ArtifactDeploymentDescription - &plan_artifact) - { - CORBA::ULong loc_len = pack_iad.location.length (); - for (CORBA::ULong e = 0; e < loc_len; ++e) - { - CORBA::ULong art_loc_len (plan_artifact.location.length ()); - plan_artifact.location.length (art_loc_len + 1); - plan_artifact.location[art_loc_len] = pack_iad.location[e]; - } - } +void update_artifact_location (Deployment::ImplementationArtifactDescription + &pack_iad, + Deployment::ArtifactDeploymentDescription + &plan_artifact) +{ + CORBA::ULong loc_len = pack_iad.location.length (); + for (CORBA::ULong e = 0; e < loc_len; ++e) + { + CORBA::ULong art_loc_len (plan_artifact.location.length ()); + plan_artifact.location.length (art_loc_len + 1); + plan_artifact.location[art_loc_len] = pack_iad.location[e]; + } +} - void - update_artifact_property (ImplementationArtifactDescription - &pack_iad, - ArtifactDeploymentDescription - &plan_artifact) - { - CORBA::ULong para_len = pack_iad.execParameter.length (); - for (CORBA::ULong f = 0; f < para_len; ++f) - { - CORBA::ULong art_pro_len (plan_artifact.execParameter.length ()); - plan_artifact.execParameter.length (art_pro_len + 1); - plan_artifact.execParameter[art_pro_len] = pack_iad.execParameter[f]; - } - } +void update_artifact_property (Deployment::ImplementationArtifactDescription + &pack_iad, + Deployment::ArtifactDeploymentDescription + &plan_artifact) +{ + CORBA::ULong para_len = pack_iad.execParameter.length (); + for (CORBA::ULong f = 0; f < para_len; ++f) + { + CORBA::ULong art_pro_len (plan_artifact.execParameter.length ()); + plan_artifact.execParameter.length (art_pro_len + 1); + plan_artifact.execParameter[art_pro_len] = pack_iad.execParameter[f]; + } } diff --git a/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.h b/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.h index 3a67955bd2f..018a090cb94 100644 --- a/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.h +++ b/TAO/CIAO/DAnCE/RepositoryManager/Update_Plan.h @@ -12,101 +12,86 @@ * *======================================================================*/ -#ifndef CIAO_REPOSITORY_MANAGER_UPDATE_PLAN_H -#define CIAO_REPOSITORY_MANAGER_UPDATE_PLAN_H -#include /**/ "ace/pre.h" +#ifndef UPDATE_PLAN_H +#define UPDATE_PLAN_H +#include "DeploymentC.h" #include "ace/Hash_Map_Manager.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ - -namespace Deployment -{ - struct SubcomponentInstantiationDescription; - struct DeploymentPlan; - struct ComponentAssemblyDescription; - struct SubcomponentInstantiationDescription; - struct AssemblyConnectionDescription; -} - -namespace CIAO -{ - class Null_Dom_Document { }; - // exception thrown when we have a null dom document. - - typedef ACE_Hash_Map_Manager<ACE_TString, int, ACE_Null_Mutex> REF_MAP; - typedef ACE_Hash_Map_Manager<int, int, ACE_Null_Mutex> ART_REF_MAP; - - void - traverse_assembly_instance (Deployment:: - SubcomponentInstantiationDescription &instance, - Deployment::DeploymentPlan &plan, - int l, - REF_MAP &ref_map, - REF_MAP &primary_ref_map); - - void traverse_assembly (Deployment::ComponentAssemblyDescription &assembly, - Deployment::DeploymentPlan &plan, - REF_MAP &ref_map, REF_MAP &primary_ref_map); - - void traverse_interface (Deployment::SubcomponentInstantiationDescription - &instance, - Deployment::PlanSubcomponentPortEndpoint - &pspe); - - void traverse_assembly_connection (Deployment::ComponentAssemblyDescription - &assembly, - Deployment::AssemblyConnectionDescription - &assembly_connection, - Deployment::DeploymentPlan &plan); - - void traverse_package (Deployment::PackageConfiguration* &pc, - Deployment::DeploymentPlan &plan, - REF_MAP &ref_map, REF_MAP &primary_ref_map); - - void update_artifacts (Deployment::MonolithicImplementationDescription &mid, - Deployment::DeploymentPlan &plan, - Deployment::InstanceDeploymentDescription &instance, - REF_MAP &ref_map, REF_MAP &primary_ref_map, - ART_REF_MAP &art_ref_map, - Deployment::MonolithicDeploymentDescription &mdd); - - void update_artifact_location (Deployment::ImplementationArtifactDescription - &pack_iad, - Deployment::ArtifactDeploymentDescription - &plan_artifact); - - void update_artifact_property (Deployment::ImplementationArtifactDescription - &pack_iad, - Deployment::ArtifactDeploymentDescription - &plan_artifact); - - void update_impl_art_ref (Deployment::MonolithicDeploymentDescription - &mid, int art_len); - - void update_impl_config_property (Deployment:: - PackagedComponentImplementation &impl, - Deployment:: - MonolithicDeploymentDescription &mid, - Deployment:: - InstanceDeploymentDescription - &instance); - - void update_common_artifact_and_art_ref (Deployment:: - ImplementationArtifactDescription &pack_iad, - REF_MAP &primary_ref_map, - REF_MAP &ref_map, - ART_REF_MAP &art_ref_map, - Deployment::MonolithicDeploymentDescription - &mid, - Deployment::DeploymentPlan &plan, - Deployment:: - InstanceDeploymentDescription - &instance); -} +class Null_Dom_Document { }; +// exception thrown when we have a null dom document. + +typedef ACE_Hash_Map_Manager<ACE_TString, int, ACE_Null_Mutex> REF_MAP; +typedef ACE_Hash_Map_Manager<int, int, ACE_Null_Mutex> ART_REF_MAP; + +void traverse_assembly_instance (Deployment:: + SubcomponentInstantiationDescription + &instance, + Deployment::DeploymentPlan &plan, int l, + REF_MAP &ref_map, REF_MAP &primary_ref_map); + +void traverse_assembly (Deployment::ComponentAssemblyDescription &assembly, + Deployment::DeploymentPlan &plan, + REF_MAP &ref_map, REF_MAP &primary_ref_map); + +void traverse_interface (Deployment::SubcomponentInstantiationDescription + &instance, + Deployment::PlanSubcomponentPortEndpoint + &pspe); + +void traverse_assembly_connection (Deployment::ComponentAssemblyDescription + &assembly, + Deployment::AssemblyConnectionDescription + &assembly_connection, + Deployment::DeploymentPlan &plan); + +void traverse_package (Deployment::PackageConfiguration* &pc, + Deployment::DeploymentPlan &plan, + REF_MAP &ref_map, REF_MAP &primary_ref_map); + +void update_artifacts (Deployment::MonolithicImplementationDescription &mid, + Deployment::DeploymentPlan &plan, + Deployment::InstanceDeploymentDescription &instance, + REF_MAP &ref_map, REF_MAP &primary_ref_map, + ART_REF_MAP &art_ref_map, + Deployment::MonolithicDeploymentDescription &mdd); + +void update_artifact_location (Deployment::ImplementationArtifactDescription + &pack_iad, + Deployment::ArtifactDeploymentDescription + &plan_artifact); + +void update_artifact_property (Deployment::ImplementationArtifactDescription + &pack_iad, + Deployment::ArtifactDeploymentDescription + &plan_artifact); + +void update_impl_art_ref (Deployment::MonolithicDeploymentDescription + &mid, int art_len); + +void update_impl_config_property (Deployment:: + PackagedComponentImplementation &impl, + Deployment:: + MonolithicDeploymentDescription &mid, + Deployment:: + InstanceDeploymentDescription + &instance); + +void update_common_artifact_and_art_ref (Deployment:: + ImplementationArtifactDescription &pack_iad, + REF_MAP &primary_ref_map, + REF_MAP &ref_map, + ART_REF_MAP &art_ref_map, + Deployment::MonolithicDeploymentDescription + &mid, + Deployment::DeploymentPlan &plan, + Deployment:: + InstanceDeploymentDescription + &instance); #include /**/ "ace/post.h" -#endif /* CIAO_REPOSITORY_MANAGER_UPDATE_PLAN_H*/ +#endif /* UPDATE_PLAN_H */ diff --git a/TAO/CIAO/DAnCE/ciao/CCM_Container.idl b/TAO/CIAO/DAnCE/ciao/CCM_Container.idl index 220a09ea261..0b7d23562fc 100644 --- a/TAO/CIAO/DAnCE/ciao/CCM_Container.idl +++ b/TAO/CIAO/DAnCE/ciao/CCM_Container.idl @@ -17,7 +17,7 @@ #define CCM_CONTAINER_IDL #include "CCM_Component.idl" -#include "orbsvcs/SecurityLevel2.idl" +#include "orbsvcs/orbsvcs/SecurityLevel2.idl" #include "CCM_Transaction.idl" // *************** Basic Container interfaces *************** diff --git a/TAO/CIAO/DAnCE/ciao/CCM_Core.mpc b/TAO/CIAO/DAnCE/ciao/CCM_Core.mpc index 8384d770c0a..b8a0c253087 100644 --- a/TAO/CIAO/DAnCE/ciao/CCM_Core.mpc +++ b/TAO/CIAO/DAnCE/ciao/CCM_Core.mpc @@ -31,7 +31,7 @@ project (CIAO_DnC_Client) : taolib_with_idl, valuetype, ifr_client { } } -project (CIAO_DnC_Container) : orbsvcslib, portableserver, security, valuetype, ifr_client { +project (CIAO_DnC_Container) : orbsvcslib, portableserver, security, iorinterceptor, objreftemplate, valuetype, ifr_client { after += CIAO_DnC_Client sharedname = CIAO_DnC_Container libs += CIAO_DnC_Client @@ -62,7 +62,7 @@ project (CIAO_DnC_Container) : orbsvcslib, portableserver, security, valuetype, // Valuetype library must be linked for this project. // Please don't remove. project(Deployment_stub) : taolib_with_idl, valuetype, ifr_client { - sharedname = CIAO_Deployment_stub + sharedname = Deployment_stub after += CIAO_DnC_Client idlflags += -Wb,stub_export_macro=Deployment_stub_Export @@ -91,11 +91,11 @@ project(Deployment_stub) : taolib_with_idl, valuetype, ifr_client { // CIAO_DnC_Client library must be linked for this project. // Please don't remove. -project(Deployment_svnt) : taolib_with_idl, portableserver, valuetype,ifr_client { +project(Deployment_svnt) : taolib_with_idl, portableserver, ifr_client { after += Deployment_stub - sharedname = CIAO_Deployment_svnt + sharedname = Deployment_svnt dynamicflags = DEPLOYMENT_SVNT_BUILD_DLL - libs += CIAO_Deployment_stub CIAO_DnC_Client + libs += Deployment_stub CIAO_DnC_Client idlflags += -Wb,stub_export_macro=Deployment_stub_Export idlflags += -Wb,stub_export_include=Deployment_stub_export.h idlflags += -Wb,skel_export_macro=Deployment_svnt_Export @@ -115,11 +115,10 @@ project(Deployment_svnt) : taolib_with_idl, portableserver, valuetype,ifr_client } -project (CIAO_DnC_Server) : orbsvcslib, portableserver, valuetype, ifr_client, utils, security { +project (CIAO_DnC_Server) : orbsvcslib, portableserver, iorinterceptor, objreftemplate, valuetype, ifr_client, security { after += CIAO_DnC_Container Deployment_svnt - includes += $(CIAO_ROOT)/DAnCE sharedname = CIAO_DnC_Server - libs += CIAO_DnC_Client CIAO_DnC_Container CIAO_Deployment_svnt CIAO_Deployment_stub + libs += CIAO_DnC_Client CIAO_DnC_Container Deployment_svnt Deployment_stub idlflags += -Wb,export_include=CIAO_Server_Export.h -Wb,export_macro=CIAO_SERVER_Export dynamicflags = CIAO_SERVER_BUILD_DLL @@ -130,13 +129,8 @@ project (CIAO_DnC_Server) : orbsvcslib, portableserver, valuetype, ifr_client, u Source_Files { Container_Base.cpp NodeApplication_Impl.cpp - Context_Impl_Base.cpp - Home_Servant_Impl_Base.cpp - Servant_Impl_Base.cpp Server_init.cpp - Servant_Activator.cpp - Port_Activator.cpp - StandardConfigurator_Impl.cpp + Servant_Impl_Base.cpp } Header_Files { @@ -145,10 +139,7 @@ project (CIAO_DnC_Server) : orbsvcslib, portableserver, valuetype, ifr_client, u } Template_Files { - Context_Impl_T.cpp - Home_Servant_Impl_T.cpp Servant_Impl_T.cpp - Servant_Activator_T.cpp } } diff --git a/TAO/CIAO/DAnCE/ciao/ComponentsC.h b/TAO/CIAO/DAnCE/ciao/ComponentsC.h index 4ef065c4e8d..32e5a755e83 100644 --- a/TAO/CIAO/DAnCE/ciao/ComponentsC.h +++ b/TAO/CIAO/DAnCE/ciao/ComponentsC.h @@ -72,7 +72,7 @@ // Traits specializations. namespace TAO { -} +}; // TAO_IDL - Generated from // be/be_visitor_root/cdr_op.cpp:48 diff --git a/TAO/CIAO/DAnCE/ciao/Container_Base.cpp b/TAO/CIAO/DAnCE/ciao/Container_Base.cpp index f1fce5ec95f..794e3927437 100644 --- a/TAO/CIAO/DAnCE/ciao/Container_Base.cpp +++ b/TAO/CIAO/DAnCE/ciao/Container_Base.cpp @@ -2,429 +2,300 @@ #include "Container_Base.h" #include "ace/DLL.h" -#include "tao/Utils/PolicyList_Destroyer.h" #include "ace/OS_NS_stdio.h" -#include "Servant_Activator.h" #if !defined (__ACE_INLINE__) # include "Container_Base.inl" #endif /* __ACE_INLINE__ */ -namespace CIAO +//////////////////////////////////////////////////////////////// + +CIAO::Container::Container (CORBA::ORB_ptr o) + : orb_ (CORBA::ORB::_duplicate (o)) { +} -//////////////////////////////////////////////////////////////// - Container::Container (CORBA::ORB_ptr o) - : orb_ (CORBA::ORB::_duplicate (o)) - { - } - - Container::~Container () - { - } - - PortableServer::POA_ptr - Container::the_POA (void) const - { - return this->component_poa_.in (); - } - - CORBA::ORB_ptr - Container::the_ORB (void) const - { - return this->orb_.in (); - } - - /////////////////////////////////////////////////////////////// - - ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> - Session_Container::serial_number_ (0); - - Session_Container::Session_Container (CORBA::ORB_ptr o, - bool static_config_flag, - const Static_Config_EntryPoints_Maps* maps) +CIAO::Container::~Container () +{ +} + +PortableServer::POA_ptr +CIAO::Container::_ciao_the_POA (void) +{ + return this->poa_.in (); +} + +CORBA::ORB_ptr +CIAO::Container::_ciao_the_ORB () +{ + return this->orb_.in (); +} + +/////////////////////////////////////////////////////////////// + +ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> +CIAO::Session_Container::serial_number_ (0); + +CIAO::Session_Container::Session_Container (CORBA::ORB_ptr o, + int static_config_flag, + const Static_Config_EntryPoints_Maps* maps + ) : Container (o), number_ (0), static_config_flag_ (static_config_flag), - static_entrypts_maps_ (maps), - sa_ (0) - { - } - - Session_Container::~Session_Container () - { - } - - int - Session_Container::init (const char *name, - const CORBA::PolicyList *more_policies - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - char buffer[MAXPATHLEN]; - - if (name == 0) - { - this->number_ = ++Session_Container::serial_number_; - ACE_OS::sprintf (buffer, "CIAO::Session_Container-%ld", - this->number_); - name = buffer; - } - - CORBA::Object_var poa_object = - this->orb_->resolve_initial_references("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - this->create_component_POA (name, - more_policies, - root_poa.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - this->create_facet_consumer_POA (root_poa.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; - } - - void - Session_Container::create_component_POA (const char *name, - const CORBA::PolicyList *p, - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL) - { - // Set up proper poa policies here. Default policies seems to be - // fine for session container. If you add some other default - // policies here, then you need to "add" more_policies below - // instead of simply assigning more_policies to the init policy - // list. - CORBA::PolicyList policies (0); - - if (p != 0) - policies = *p; - - PortableServer::POAManager_var poa_manager = - root->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->component_poa_ = - root->create_POA (name, - poa_manager.in (), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - void - Session_Container::create_facet_consumer_POA ( - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL) - { - PortableServer::POAManager_var poa_manager = - root->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO::Utils::PolicyList_Destroyer policies (3); - policies.length (3); - - policies[0] = - root->create_id_assignment_policy (PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policies[1] = - root->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Servant Retention Policy - policies[2] = - root->create_servant_retention_policy (PortableServer::RETAIN - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->facet_cons_poa_ = - root->create_POA ("facet_consumer_poa", - poa_manager.in (), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_NEW_THROW_EX (this->sa_, - Servant_Activator (this->orb_.in ()), - CORBA::NO_MEMORY ()); - - this->facet_cons_poa_->set_servant_manager ( - this->sa_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - CORBA::Object_ptr - Session_Container::install_servant (PortableServer::Servant p, - Container::OA_Type t - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid - = tmp->activate_object (p - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Object_var objref - = tmp->id_to_reference (oid.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return objref._retn (); - } - - CORBA::Object_ptr - Session_Container::install_component (PortableServer::Servant p, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::ObjectId_var id = - this->component_poa_->activate_object (p - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Object_var objref - = this->component_poa_->id_to_reference (id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - oid = id._retn (); - - return objref._retn (); - } - - - //@@ Apparently we need to be cautious when handling the exception - // thrown here. We should make sure that new DnC interfaces - // NodeApplication/NodeApplicationManager etc will cache the new - // exceptions--> rethrow of new exceptions is needed. - // --Tao - Components::CCMHome_ptr - Session_Container::ciao_install_home (const char *exe_dll_name, - const char *exe_entrypt, - const char *sv_dll_name, - const char *sv_entrypt - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - Deployment::UnknownImplId, - Deployment::ImplEntryPointNotFound, - Deployment::InstallationFailure)) - { - - HomeFactory hcreator = 0; - ServantFactory screator = 0; - - if (this->static_config_flag_ == 0) - { - ACE_DLL executor_dll, servant_dll; - - if (exe_dll_name == 0 || sv_dll_name == 0) - ACE_THROW_RETURN (Deployment::UnknownImplId (), - Components::CCMHome::_nil ()); - - if (executor_dll.open (exe_dll_name, - ACE_DEFAULT_SHLIB_MODE, - 0) != 0 - || servant_dll.open (sv_dll_name, - ACE_DEFAULT_SHLIB_MODE, - 0) != 0) - { - ACE_THROW_RETURN (Deployment::UnknownImplId (), - Components::CCMHome::_nil ()); - } - - if (exe_entrypt == 0 || sv_entrypt == 0) - ACE_THROW_RETURN (Deployment::ImplEntryPointNotFound (), - Components::CCMHome::_nil ()); - - // @@ (OO) Please use a static_cast<> here instead of a C-style - // cast. ANSI C++ casts are the preferred (and modern) - // way of casting in ACE/TAO/CIAO. - hcreator = (HomeFactory) executor_dll.symbol (exe_entrypt); - screator = (ServantFactory) servant_dll.symbol (sv_entrypt); + static_entrypts_maps_ (maps) +{ +} + +CIAO::Session_Container::~Session_Container () +{ +} + +int +CIAO::Session_Container::init (const char *name, + const CORBA::PolicyList *more_policies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + char buffer[MAXPATHLEN]; + + if (name == 0) + { + this->number_ = ++CIAO::Session_Container::serial_number_; + ACE_OS::sprintf (buffer, "CIAO::Session_Container-%ld", + this->number_); + name = buffer; } - else - { - if (static_entrypts_maps_ == 0 || - static_entrypts_maps_->home_creator_funcptr_map_ == 0 || - static_entrypts_maps_->home_servant_creator_funcptr_map_ == 0) - ACE_THROW_RETURN (Deployment::ImplEntryPointNotFound (), - Components::CCMHome::_nil ()); - - ACE_CString exe_entrypt_str (exe_entrypt); - static_entrypts_maps_->home_creator_funcptr_map_-> - find (exe_entrypt_str, hcreator); - - ACE_CString sv_entrypt_str (sv_entrypt); - static_entrypts_maps_->home_servant_creator_funcptr_map_-> - find (sv_entrypt_str, screator); - } - - if (hcreator == 0 || screator == 0) - ACE_THROW_RETURN (Deployment::ImplEntryPointNotFound (), - Components::CCMHome::_nil ()); - - Components::HomeExecutorBase_var home_executor = hcreator (); - if (CORBA::is_nil (home_executor.in ())) - ACE_THROW_RETURN (Deployment::InstallationFailure (), - Components::CCMHome::_nil ()); - - PortableServer::Servant home_servant = screator (home_executor.in (), - this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Components::CCMHome::_nil ()); - - if (home_servant == 0) - ACE_THROW_RETURN (Deployment::InstallationFailure (), - Components::CCMHome::_nil ()); - - PortableServer::ServantBase_var safe (home_servant); - - CORBA::Object_var objref = - this->install_servant (home_servant, - Container::Component - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Components::CCMHome::_nil ()); - - Components::CCMHome_var homeref = - Components::CCMHome::_narrow (objref.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return homeref._retn (); - - } - - void - Session_Container::ciao_uninstall_home (Components::CCMHome_ptr homeref + + CORBA::Object_var poa_object = + this->orb_->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + -1); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + // Set up proper poa policies here. Default policies seems to be + // fine for session container. If you add some other default + // policies here, then you need to "add" more_policies below + // instead of simply assigning more_policies to the init policy + // list. + CORBA::PolicyList policies (0); + + if (more_policies != 0) + policies = *more_policies; + + this->poa_ = root_poa->create_POA (name, + PortableServer::POAManager::_nil (), + policies + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + PortableServer::POAManager_var poa_manager = + this->poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + return 0; +} + +CORBA::Object_ptr +CIAO::Session_Container::install_servant (PortableServer::Servant p ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - this->uninstall (homeref, - Container::Component - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - void - Session_Container::uninstall (CORBA::Object_ptr objref, - Container::OA_Type t - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid = - tmp->reference_to_id (objref - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - tmp->deactivate_object (oid.in () - ACE_ENV_ARG_PARAMETER); - } - - void - Session_Container::uninstall (PortableServer::Servant svt, - Container::OA_Type t - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid - = tmp->servant_to_id (svt + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var oid + = this->poa_->activate_object (p + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + CORBA::Object_var objref + = this->poa_->id_to_reference (oid.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + return objref._retn (); +} + +CORBA::Object_ptr +CIAO::Session_Container::install_component (PortableServer::Servant p, + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var id + = this->poa_->activate_object (p + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + CORBA::Object_var objref + = this->poa_->id_to_reference (id.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + oid = id._retn (); + + return objref._retn (); +} + + +//@@ Apparently we need to be cautious when handling the exception +// thrown here. We should make sure that new DnC interfaces +// NodeApplication/NodeApplicationManager etc will cache the new +// exceptions--> rethrow of new exceptions is needed. +// --Tao +Components::CCMHome_ptr +CIAO::Session_Container::ciao_install_home (const char *exe_dll_name, + const char *exe_entrypt, + const char *sv_dll_name, + const char *sv_entrypt + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Deployment::UnknownImplId, + Deployment::ImplEntryPointNotFound, + Deployment::InstallationFailure)) +{ + + HomeFactory hcreator = 0; + ServantFactory screator = 0; + + if (this->static_config_flag_ == 0) + { + ACE_DLL executor_dll, servant_dll; + + if (exe_dll_name == 0 || sv_dll_name == 0) + ACE_THROW_RETURN (Deployment::UnknownImplId (), + Components::CCMHome::_nil ()); + + if (executor_dll.open (exe_dll_name, + ACE_DEFAULT_SHLIB_MODE, + 0) != 0 + || servant_dll.open (sv_dll_name, + ACE_DEFAULT_SHLIB_MODE, + 0) != 0) + { + ACE_THROW_RETURN (Deployment::UnknownImplId (), + Components::CCMHome::_nil ()); + } + + if (exe_entrypt == 0 || sv_entrypt == 0) + ACE_THROW_RETURN (Deployment::ImplEntryPointNotFound (), + Components::CCMHome::_nil ()); + + // @@ (OO) Please use a static_cast<> here instead of a C-style + // cast. ANSI C++ casts are the preferred (and modern) + // way of casting in ACE/TAO/CIAO. + hcreator = (HomeFactory) executor_dll.symbol (exe_entrypt); + screator = (ServantFactory) servant_dll.symbol (sv_entrypt); + } + else + { + if (static_entrypts_maps_ == 0 || + static_entrypts_maps_->home_creator_funcptr_map_ == 0 || + static_entrypts_maps_->home_servant_creator_funcptr_map_ == 0) + ACE_THROW_RETURN (Deployment::ImplEntryPointNotFound (), + Components::CCMHome::_nil ()); + + ACE_CString exe_entrypt_str (exe_entrypt); + static_entrypts_maps_->home_creator_funcptr_map_-> + find (exe_entrypt_str, hcreator); + + ACE_CString sv_entrypt_str (sv_entrypt); + static_entrypts_maps_->home_servant_creator_funcptr_map_-> + find (sv_entrypt_str, screator); + } + + if (hcreator == 0 || screator == 0) + ACE_THROW_RETURN (Deployment::ImplEntryPointNotFound (), + Components::CCMHome::_nil ()); + + Components::HomeExecutorBase_var home_executor = hcreator (); + if (CORBA::is_nil (home_executor.in ())) + ACE_THROW_RETURN (Deployment::InstallationFailure (), + Components::CCMHome::_nil ()); + + PortableServer::Servant home_servant = screator (home_executor.in (), + this + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (Components::CCMHome::_nil ()); + + if (home_servant == 0) + ACE_THROW_RETURN (Deployment::InstallationFailure (), + Components::CCMHome::_nil ()); + + PortableServer::ServantBase_var safe (home_servant); + + CORBA::Object_var objref = this->install_servant (home_servant + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (Components::CCMHome::_nil ()); + + Components::CCMHome_var homeref = + Components::CCMHome::_narrow (objref.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + return homeref._retn (); + +} + +void +CIAO::Session_Container::ciao_uninstall_home (Components::CCMHome_ptr homeref + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->uninstall (homeref + ACE_ENV_ARG_PARAMETER); +} + +void +CIAO::Session_Container::uninstall (CORBA::Object_ptr objref + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var oid + = this->poa_->reference_to_id (objref + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->poa_->deactivate_object (oid.in () + ACE_ENV_ARG_PARAMETER); +} + +void +CIAO::Session_Container::uninstall (PortableServer::Servant svt + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var oid + = this->poa_->servant_to_id (svt ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_CHECK; - tmp->deactivate_object (oid.in () - ACE_ENV_ARG_PARAMETER); - } + this->poa_->deactivate_object (oid.in () + ACE_ENV_ARG_PARAMETER); +} - void - Session_Container::uninstall_component (Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - - PortableServer::ObjectId_var id = - this->component_poa_->reference_to_id (objref - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->component_poa_->deactivate_object (id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - oid = id._retn (); - } - - CORBA::Object_ptr - Session_Container::generate_reference (const char *obj_id, - const char *repo_id, - Container::OA_Type t - ACE_ENV_ARG_DECL) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid = - PortableServer::string_to_ObjectId (obj_id); - - CORBA::Object_var objref = - tmp->create_reference_with_id (oid.in (), - repo_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return objref._retn (); - } +void +CIAO::Session_Container::uninstall_component (Components::CCMObject_ptr objref, + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var id + = this->poa_->reference_to_id (objref + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->poa_->deactivate_object (id.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + oid = id._retn (); } diff --git a/TAO/CIAO/DAnCE/ciao/Container_Base.h b/TAO/CIAO/DAnCE/ciao/Container_Base.h index b76cf9da544..2a618114c7d 100644 --- a/TAO/CIAO/DAnCE/ciao/Container_Base.h +++ b/TAO/CIAO/DAnCE/ciao/Container_Base.h @@ -20,9 +20,9 @@ #include "tao/ORB.h" #include "tao/PortableServer/PortableServer.h" #include "tao/PortableServer/Servant_Base.h" -#include "ciao/CCM_ContainerC.h" -#include "ciao/Deployment_CoreC.h" -#include "ciao/CIAO_Server_Export.h" +#include "CCM_ContainerC.h" +#include "Deployment_CoreC.h" +#include "CIAO_Server_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -30,8 +30,6 @@ namespace CIAO { - class Servant_Activator; - /** * @class Container * @@ -43,25 +41,16 @@ namespace CIAO class CIAO_SERVER_Export Container { public: - enum OA_Type - { - Component, - Facet_Consumer - }; - Container (CORBA::ORB_ptr o); virtual ~Container (void) = 0; - /// Get component's POA. - /** - * This operation does *NOT* increase the reference count of the - * POA. Look at the const qualifier in the method. - */ - PortableServer::POA_ptr the_POA (void) const; + /// Get the containing POA. This operation does *NOT* + /// increase the reference count of the POA. + virtual PortableServer::POA_ptr _ciao_the_POA (void); /// Get a reference to the underlying ORB. - CORBA::ORB_ptr the_ORB (void) const; + virtual CORBA::ORB_ptr _ciao_the_ORB (void); /// Initialize the container with a name. virtual int init (const char *name = 0, @@ -88,25 +77,14 @@ namespace CIAO // Uninstall a servant for component. virtual void uninstall_component (::Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)) = 0; - protected: CORBA::ORB_var orb_; - /// POA within which all the components in this container will be - /// activated. - PortableServer::POA_var component_poa_; - - /// POA within which all the facets and receptacles will be - /// activated. - /** - * Having two POA's allows us to associate different policies that - * are distinct from the component. - */ - PortableServer::POA_var facet_cons_poa_; + PortableServer::POA_var poa_; }; class Session_Container; @@ -115,10 +93,7 @@ namespace CIAO typedef ::PortableServer::Servant (*ServantFactory) (::Components::HomeExecutorBase_ptr p, ::CIAO::Session_Container *c -#if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT) - , CORBA::Environment & -#endif - ); + ACE_ENV_ARG_DECL_WITH_DEFAULTS); typedef ACE_Hash_Map_Manager_Ex<ACE_CString, HomeFactory, @@ -149,8 +124,9 @@ namespace CIAO // It appears to be a boolean value. Please use bool // instead. Session_Container (CORBA::ORB_ptr o, - bool static_config_flag = false, - const Static_Config_EntryPoints_Maps* static_entrypts_maps =0); + int static_config_flag =0, + const Static_Config_EntryPoints_Maps* static_entrypts_maps =0 + ); virtual ~Session_Container (void); @@ -158,7 +134,6 @@ namespace CIAO virtual int init (const char *name = 0, const CORBA::PolicyList *more_policies = 0 ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); /** @@ -190,13 +165,12 @@ namespace CIAO // Uninstall a servant for component. virtual void uninstall_component (::Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL_WITH_DEFAULTS) + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Install a servant for component or home. - CORBA::Object_ptr install_servant (PortableServer::Servant p, - Container::OA_Type t + CORBA::Object_ptr install_servant (PortableServer::Servant p ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); @@ -212,44 +186,15 @@ namespace CIAO ACE_THROW_SPEC ((CORBA::SystemException)); // Uninstall a servant for component or home. - void uninstall (CORBA::Object_ptr objref, - Container::OA_Type t + void uninstall (CORBA::Object_ptr objref ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Uninstall a servant for component or home. - void uninstall (PortableServer::Servant svt, - Container::OA_Type t + void uninstall (PortableServer::Servant svt ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - // Analog of the POA method that creates an object reference from - // an object id string. - CORBA::Object_ptr generate_reference (const char *obj_id, - const char *repo_id, - Container::OA_Type t - ACE_ENV_ARG_DECL); - - /// Return the servant activator factory that activates the - /// servants for facets and consumers. - Servant_Activator *ports_servant_activator (void) const; - - private: - - /// Create POA for the component. - /** - * This is the POA that is returned to the component applications - * if they need one. - */ - void create_component_POA (const char *name, - const CORBA::PolicyList *p, - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL); - - /// Create POA for the facets and consumers alone. - void create_facet_consumer_POA (PortableServer::POA_ptr root - ACE_ENV_ARG_DECL); - protected: long number_; @@ -259,12 +204,8 @@ namespace CIAO // boolean value. Please use bool instead. // // It looks like it can also be declared const, as well. - bool static_config_flag_; + int static_config_flag_; const Static_Config_EntryPoints_Maps* static_entrypts_maps_; - - /// The servant activator factory used to activate facets and - /// consumer servants. - Servant_Activator *sa_; }; } @@ -277,7 +218,7 @@ namespace CIAO { \ CORBA::ValueFactory factory = new FACTORY; \ CORBA::ORB_ptr orb = \ - this->context_->_ciao_the_Container ()->the_ORB (); \ + this->context_->_ciao_the_Container ()->_ciao_the_ORB (); \ CORBA::ValueFactory prev_factory = \ orb->register_value_factory ( \ VALUETYPE::_tao_obv_static_repository_id (), \ diff --git a/TAO/CIAO/DAnCE/ciao/Container_Base.inl b/TAO/CIAO/DAnCE/ciao/Container_Base.inl index 0d6aeef9bcc..5435a481075 100644 --- a/TAO/CIAO/DAnCE/ciao/Container_Base.inl +++ b/TAO/CIAO/DAnCE/ciao/Container_Base.inl @@ -5,12 +5,6 @@ CIAO::Session_Container::get_objref (PortableServer::Servant p ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - return this->the_POA ()->servant_to_reference (p - ACE_ENV_ARG_PARAMETER); -} - -ACE_INLINE CIAO::Servant_Activator * -CIAO::Session_Container::ports_servant_activator (void) const -{ - return this->sa_; + return this->_ciao_the_POA ()->servant_to_reference (p + ACE_ENV_ARG_PARAMETER); } diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp index fccbf855572..16bfc99c407 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp @@ -1,8 +1,6 @@ // $Id$ #include "Servant_Impl_Base.h" -#include "StandardConfigurator_Impl.h" -#include "Container_Base.h" namespace CIAO { @@ -15,347 +13,6 @@ namespace CIAO { } - // Operations for CCMObject interface. - - ::Components::PrimaryKeyBase * - Servant_Impl_Base::get_primary_key ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - ::Components::NoKeyAvailable)) - { - ACE_THROW_RETURN (::Components::NoKeyAvailable (), 0); - - return 0; - } - - CORBA::IRObject_ptr - Servant_Impl_Base::get_component_def ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CORBA::IRObject::_nil ()); - } - - void - Servant_Impl_Base::configuration_complete ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidConfiguration)) - { - // CIAO to-do - } - - void - Servant_Impl_Base::remove ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::RemoveFailure)) - { - // CIAO to-do - } - - ::Components::ConnectionDescriptions * - Servant_Impl_Base::get_connections ( - const char * /* name */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ComponentPortDescription * - Servant_Impl_Base::get_all_ports ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - OBV_Components::ComponentPortDescription *cps = 0; - ACE_NEW_RETURN (cps, - OBV_Components::ComponentPortDescription, - 0); - ::Components::ComponentPortDescription_var retv = cps; - - ::Components::FacetDescriptions_var facets_desc = - this->get_all_facets (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::ReceptacleDescriptions_var receptacle_desc = - this->get_all_receptacles (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::ConsumerDescriptions_var consumer_desc = - this->get_all_consumers (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::EmitterDescriptions_var emitter_desc = - this->get_all_emitters (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::PublisherDescriptions_var publisher_desc = - this->get_all_publishers (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - retv->facets (facets_desc.in ()); - retv->receptacles (receptacle_desc.in ()); - retv->consumers (consumer_desc.in ()); - retv->emitters (emitter_desc.in ()); - retv->publishers (publisher_desc.in ()); - - return retv._retn (); - } - - CORBA::Object_ptr - Servant_Impl_Base::provide_facet ( - const char *name - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - if (name == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - CORBA::Object::_nil ()); - } - - CORBA::Object_ptr retval = this->lookup_facet (name); - - if (CORBA::is_nil (retval)) - { - ACE_THROW_RETURN (Components::InvalidName (), - CORBA::Object::_nil ()); - } - - return retval; - } - - Components::FacetDescriptions * - Servant_Impl_Base::get_named_facets ( - const ::Components::NameList & names - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - Components::FacetDescriptions *retval = 0; - ACE_NEW_RETURN (retval, - ::Components::FacetDescriptions, - 0); - Components::FacetDescriptions_var safe_retval = retval; - CORBA::ULong len = names.length (); - safe_retval->length (len); - ::Components::FacetDescription *tmp = 0; - - for (CORBA::ULong i = 0; i < len; ++i) - { - tmp = this->lookup_facet_description (names[i].in ()); - - if (tmp == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - 0); - } - - safe_retval[i] = tmp; - } - - return safe_retval._retn (); - } - - ::Components::FacetDescriptions * - Servant_Impl_Base::get_all_facets ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::FacetDescriptions *tmp = 0; - ACE_NEW_RETURN (tmp, - ::Components::FacetDescriptions, - 0); - - ::Components::FacetDescriptions_var retval = tmp; - - retval->length (this->facet_table_.current_size ()); - CORBA::ULong i = 0; - - for (FacetTable::iterator iter = this->facet_table_.begin (); - iter != this->facet_table_.end (); - ++iter, ++i) - { - FacetTable::ENTRY & entry = *iter; - retval[i] = entry.int_id_; - } - - return retval._retn (); - } - - ::Components::ConsumerDescriptions * - Servant_Impl_Base::get_all_consumers ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::ConsumerDescriptions *tmp = 0; - ACE_NEW_RETURN (tmp, - ::Components::ConsumerDescriptions, - 0); - - ::Components::ConsumerDescriptions_var retval = tmp; - - retval->length (this->consumer_table_.current_size ()); - CORBA::ULong i = 0; - - for (ConsumerTable::iterator iter = this->consumer_table_.begin (); - iter != this->consumer_table_.end (); - ++iter, ++i) - { - ConsumerTable::ENTRY & entry = *iter; - retval[i] = entry.int_id_; - } - - return retval._retn (); - } - - ::Components::EventConsumerBase_ptr - Servant_Impl_Base::get_consumer ( - const char *sink_name - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - if (sink_name == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - Components::EventConsumerBase::_nil ()); - } - - Components::EventConsumerBase_ptr retval = - this->lookup_consumer (sink_name); - - if (CORBA::is_nil (retval)) - { - ACE_THROW_RETURN (Components::InvalidName (), - Components::EventConsumerBase::_nil ()); - } - - return retval; - } - - ::Components::EventConsumerBase_ptr - Servant_Impl_Base::disconnect_consumer ( - const char * /* source_name */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName, - Components::NoConnection)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ConsumerDescriptions * - Servant_Impl_Base::get_named_consumers ( - const ::Components::NameList & names - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - Components::ConsumerDescriptions *retval = 0; - ACE_NEW_RETURN (retval, - ::Components::ConsumerDescriptions, - 0); - Components::ConsumerDescriptions_var safe_retval = retval; - CORBA::ULong len = names.length (); - safe_retval->length (len); - ::Components::ConsumerDescription *tmp = 0; - - for (CORBA::ULong i = 0; i < len; ++i) - { - tmp = this->lookup_consumer_description (names[i].in ()); - - if (tmp == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - 0); - } - - safe_retval[i] = tmp; - } - - return safe_retval._retn (); - } - - ::Components::EmitterDescriptions * - Servant_Impl_Base::get_all_emitters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::EmitterDescriptions * - Servant_Impl_Base::get_named_emitters ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ReceptacleDescriptions * - Servant_Impl_Base::get_all_receptacles ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ReceptacleDescriptions * - Servant_Impl_Base::get_named_receptacles ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::PublisherDescriptions * - Servant_Impl_Base::get_all_publishers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::PublisherDescriptions * - Servant_Impl_Base::get_named_publishers ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - /// Protected operations. - void Servant_Impl_Base::add_facet (const char *port_name, CORBA::Object_ptr port_ref) @@ -374,32 +31,6 @@ namespace CIAO safe._retn (); } } - - CORBA::Object_ptr - Servant_Impl_Base::lookup_facet (const char *port_name) - { - ::Components::FacetDescription_var fd; - - if (this->facet_table_.find (port_name, fd) != 0) - { - return CORBA::Object::_nil (); - } - - return CORBA::Object::_duplicate (fd.in ()->facet_ref ()); - } - - ::Components::FacetDescription * - Servant_Impl_Base::lookup_facet_description (const char *port_name) - { - ::Components::FacetDescription_var fd; - - if (this->facet_table_.find (port_name, fd) != 0) - { - return 0; - } - - return fd._retn (); - } void Servant_Impl_Base::add_consumer ( @@ -421,60 +52,4 @@ namespace CIAO safe._retn (); } } - - ::Components::EventConsumerBase_ptr - Servant_Impl_Base::lookup_consumer (const char *port_name) - { - ::Components::ConsumerDescription_var cd; - - if (this->consumer_table_.find (port_name, cd) != 0) - { - return ::Components::EventConsumerBase::_nil (); - } - - return - ::Components::EventConsumerBase::_duplicate (cd.in ()->consumer ()); - } - - ::Components::ConsumerDescription * - Servant_Impl_Base::lookup_consumer_description ( - const char *port_name - ) - { - ::Components::ConsumerDescription_var cd; - - if (this->consumer_table_.find (port_name, cd) != 0) - { - return 0; - } - - return cd._retn (); - } - - Components::StandardConfigurator* - Servant_Impl_Base::get_standard_configurator ( - ACE_ENV_SINGLE_ARG_DECL) - { - // Create the configurator servant. - StandardConfigurator_Impl *config_impl = 0; - - ACE_NEW_THROW_EX (config_impl, - StandardConfigurator_Impl (this), - CORBA::NO_MEMORY ()); - - - Components::StandardConfigurator_var configurator = - config_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (Components::StandardConfigurator::_nil ()); - - return configurator._retn (); - } - - PortableServer::POA_ptr - Servant_Impl_Base::_default_POA ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - { - return - PortableServer::POA::_duplicate (container_->the_POA ()); - } } diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.h b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.h index 272fa8f3d5a..ea854dbde26 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.h +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.h @@ -27,7 +27,6 @@ #include "CCM_EventC.h" #include "CIAO_Server_Export.h" -#include "CCM_ComponentS.h" namespace CIAO { @@ -42,150 +41,19 @@ namespace CIAO * Servant_Impl. */ class CIAO_SERVER_Export Servant_Impl_Base - : public virtual POA_Components::CCMObject { public: Servant_Impl_Base (Session_Container * c); virtual ~Servant_Impl_Base (void); - /// Operations for CCMObject interface. - - virtual ::Components::PrimaryKeyBase * - get_primary_key (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::NoKeyAvailable)); - - virtual CORBA::IRObject_ptr - get_component_def (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void - configuration_complete (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidConfiguration)); - - virtual void - remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::RemoveFailure)); - - virtual ::Components::ConnectionDescriptions * - get_connections (const char *name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::ComponentPortDescription * - get_all_ports (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Object_ptr - provide_facet (const char *name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::FacetDescriptions * - get_named_facets (const ::Components::NameList & names - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::FacetDescriptions * - get_all_facets (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::ConsumerDescriptions * - get_all_consumers (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::EventConsumerBase_ptr - get_consumer (const char *sink_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::EventConsumerBase_ptr - disconnect_consumer (const char *source_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName, - Components::NoConnection)); - - virtual ::Components::ConsumerDescriptions * - get_named_consumers (const ::Components::NameList & names - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::EmitterDescriptions * - get_all_emitters (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::EmitterDescriptions * - get_named_emitters (const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::ReceptacleDescriptions * - get_all_receptacles (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::ReceptacleDescriptions * - get_named_receptacles (const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::PublisherDescriptions * - get_all_publishers (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::PublisherDescriptions * - get_named_publishers (const ::Components::NameList & names - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - /// Operation to set attributes on the component. - virtual void set_attributes (const Components::ConfigValues &descr - ACE_ENV_ARG_DECL) = 0; - - // Creates and returns the StandardConfigurator for the component. - virtual Components::StandardConfigurator *get_standard_configurator ( - ACE_ENV_SINGLE_ARG_DECL - ); - - /// Override that returns the (passed-in) default POA of our member - /// component's container, to ensure that we get registered - /// to that POA when _this() is called. - virtual PortableServer::POA_ptr _default_POA ( - ACE_ENV_SINGLE_ARG_DECL - ); - protected: void add_facet (const char *port_name, CORBA::Object_ptr port_ref); - CORBA::Object_ptr lookup_facet (const char *port_name); - - ::Components::FacetDescription *lookup_facet_description ( - const char *port_name - ); - void add_consumer (const char *port_name, ::Components::EventConsumerBase_ptr port_ref); - - ::Components::EventConsumerBase_ptr lookup_consumer ( - const char *port_name - ); - - ::Components::ConsumerDescription *lookup_consumer_description ( - const char *port_name - ); - + protected: typedef ACE_Hash_Map_Manager_Ex<const char *, ::Components::FacetDescription_var, diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp index 4e39010461f..443aab29064 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp @@ -26,200 +26,68 @@ namespace CIAO typename CONTEXT> Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::~Servant_Impl (void) { - ACE_TRY_NEW_ENV - { - ::Components::SessionComponent_var scom = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - if (! ::CORBA::is_nil (scom.in ())) - { - scom->ccm_remove (ACE_ENV_SINGLE_ARG_PARAMETER); - } - } - ACE_CATCHANY - { - } - ACE_ENDTRY; - - this->context_->_remove_ref (); - } - - // Operations for CCMObject interface. - - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - CORBA::Boolean - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::same_component ( - CORBA::Object_ptr object_ref - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - if (::CORBA::is_nil (object_ref)) - { - ACE_THROW_RETURN (::CORBA::BAD_PARAM (), 0); - } - - ::CORBA::Object_var the_other = - object_ref->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::CORBA::Object_var me = - this->context_->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return me->_is_equivalent (the_other.in () - ACE_ENV_ARG_PARAMETER); } template <typename BASE_SKEL, typename EXEC, typename EXEC_VAR, typename CONTEXT> - ::Components::CCMHome_ptr - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_ccm_home ( - ACE_ENV_SINGLE_ARG_DECL + ::Components::FacetDescriptions * + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_facets ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED ) ACE_THROW_SPEC ((CORBA::SystemException)) { - return this->context_->get_CCM_home (ACE_ENV_SINGLE_ARG_PARAMETER); - } + ::Components::FacetDescriptions *tmp = 0; + ACE_NEW_RETURN (tmp, + ::Components::FacetDescriptions, + 0); - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - CORBA::Object_ptr - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::_get_component ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionContext_var sc = - ::Components::SessionContext::_narrow ( - this->context_ - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK_RETURN (::CORBA::Object::_nil ()); + ::Components::FacetDescriptions_var retval = tmp; - if (! ::CORBA::is_nil (sc.in ())) - { - return sc->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); - } + retval->length (this->facet_table_.current_size ()); + CORBA::ULong i = 0; - ::Components::EntityContext_var ec = - ::Components::EntityContext::_narrow ( - this->context_ - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK_RETURN (::CORBA::Object::_nil ()); - - if (! ::CORBA::is_nil (ec.in ())) + for (FacetTable::iterator iter = this->facet_table_.begin (); + iter != this->facet_table_.end (); + ++iter, ++i) { - return ec->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); + FacetTable::ENTRY & entry = *iter; + retval[i] = entry.int_id_; } - ACE_THROW_RETURN (CORBA::INTERNAL (), - ::CORBA::Object::_nil ()); + return retval._retn (); } - // CIAO-specific operations. - template <typename BASE_SKEL, typename EXEC, typename EXEC_VAR, typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_preactivate ( - ACE_ENV_SINGLE_ARG_DECL + ::Components::ConsumerDescriptions * + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_consumers ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED ) ACE_THROW_SPEC ((CORBA::SystemException)) { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; + ::Components::ConsumerDescriptions *tmp = 0; + ACE_NEW_RETURN (tmp, + ::Components::ConsumerDescriptions, + 0); - if (! ::CORBA::is_nil (temp.in ())) - { - temp->ciao_preactivate (ACE_ENV_SINGLE_ARG_PARAMETER); - } - } + ::Components::ConsumerDescriptions_var retval = tmp; - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_activate ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; + retval->length (this->consumer_table_.current_size ()); + CORBA::ULong i = 0; - if (! ::CORBA::is_nil (temp.in ())) + for (ConsumerTable::iterator iter = this->consumer_table_.begin (); + iter != this->consumer_table_.end (); + ++iter, ++i) { - temp->ccm_activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ConsumerTable::ENTRY & entry = *iter; + retval[i] = entry.int_id_; } - } - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_postactivate ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - if (! ::CORBA::is_nil (temp.in ())) - { - temp->ciao_postactivate (ACE_ENV_SINGLE_ARG_PARAMETER); - } - } - - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::_ciao_passivate ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - if (! ::CORBA::is_nil (temp.in ())) - { - temp->ccm_passivate (ACE_ENV_SINGLE_ARG_PARAMETER); - } + return retval._retn (); } } diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h index 45f223f57b5..af8f19a0eb2 100644 --- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h +++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.h @@ -43,48 +43,21 @@ namespace CIAO typename EXEC_VAR, typename CONTEXT> class Servant_Impl : public virtual BASE_SKEL, - public virtual Servant_Impl_Base + public Servant_Impl_Base { public: - Servant_Impl (EXEC * exe, + Servant_Impl (EXEC * exe, Session_Container * c); - virtual ~Servant_Impl (void); - // Operations for CCMObject interface. - - virtual CORBA::Boolean - same_component (CORBA::Object_ptr object_ref - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::CCMHome_ptr - get_ccm_home (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Object_ptr - _get_component (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - // CIAO-specific operations. - - void - ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void - ciao_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + virtual ::Components::FacetDescriptions * + get_all_facets (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - - void - ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + + virtual ::Components::ConsumerDescriptions * + get_all_consumers (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - - /// @@NOTE: The busted operation. - void - _ciao_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - + protected: EXEC_VAR executor_; diff --git a/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.cpp b/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.cpp index 6b117839019..a00a939f113 100644 --- a/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.cpp +++ b/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.cpp @@ -1,204 +1,17 @@ // $Id$ -#ifndef HANDLER_TEST_CPP -#define HANDLER_TEST_CPP #include "Handler_Test.h" -#include "ace/Get_Opt.h" -#include "ace/Auto_Ptr.h" -#include "ace/Log_Msg.h" -#include "ace/OS_main.h" -#include "ace/Auto_Ptr.h" -#include "tao/Exception.h" -#include "Config_Handlers/XercesString.h" -#include <xercesc/util/XMLUniDefs.hpp> -#include "Config_Handlers/Config_Handler_export.h" -#include "Config_Handlers/DnC_Dump.h" -#include "Config_Handlers/Config_Error_Handler.h" +#ifdef ACE_HAS_BROKEN_NESTED_TEMPLATES -using Config_Handler::XStr; -using xercesc::XMLUni; -using xercesc::XMLString; -using xercesc::XMLException; -using xercesc::DOMException; -using xercesc::DOMBuilder; -using xercesc::DOMImplementationRegistry; -using xercesc::DOMImplementationLS; -using xercesc::DOMImplementation; -using xercesc::DOMAttr; -using xercesc::DOMNamedNodeMap; -using xercesc::DOMLocator; -using xercesc::DOMError; -using xercesc::DOMNodeList; -using xercesc::DOMDocument; -using xercesc::DOMDocumentTraversal; -using xercesc::DOMNodeIterator; -using xercesc::DOMNode; -using xercesc::DOMNodeFilter; - -void -usage (const ACE_TCHAR* program) +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_ERROR ((LM_ERROR, - ACE_TEXT ("Usage: %s -u <URI>\n") - ACE_TEXT (" <URI>: URI identifying the resource\n"), - program)); -} - -template <typename HANDLER, typename DATA> -int run_test (int argc, ACE_TCHAR *argv[], void (HANDLER::*func) (DATA&)) -{ - ACE_TCHAR* url = 0; - - ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("u:")); - int c; - - while ((c = get_opt ()) != EOF) - { - switch (c) - { - case 'u': - url = get_opt.opt_arg(); - break; - default: - usage(argv[0]); - return -1; - } - } - - if (url == 0) { - usage (argv[0]); - return -1; - } - - // Initialize the ORB so that CORBA::Any will work - // - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, ""); - - // Initialize the Xerces run-time - try - { - xercesc::XMLPlatformUtils::Initialize(); - } - - catch (const XMLException& e) - { - char* message = XMLString::transcode (e.getMessage()); - ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message); - ACE_DEBUG ((LM_DEBUG, "Error during initialization : %s\n", message)); - return 1; - } - - try - { - - // Instantiate the DOM parser. - static const XMLCh gLS[] = { xercesc::chLatin_L, - xercesc::chLatin_S, - xercesc::chNull }; - - // Get an implementation of the Load-Store (LS) interface - DOMImplementation* impl - = DOMImplementationRegistry::getDOMImplementation(gLS); - - auto_ptr<DOMImplementation> cleanup_impl (impl); - - // Create a DOMBuilder - DOMBuilder* parser = - ((DOMImplementationLS*)impl)->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0); - - auto_ptr<DOMBuilder> cleanup_builder (parser); - - // Discard comment nodes in the document - parser->setFeature (XMLUni::fgDOMComments, false); - - // Disable datatype normalization. The XML 1.0 attribute value - // normalization always occurs though. - parser->setFeature (XMLUni::fgDOMDatatypeNormalization, true); - - // Do not create EntityReference nodes in the DOM tree. No - // EntityReference nodes will be created, only the nodes - // corresponding to their fully expanded sustitution text will be - // created. - parser->setFeature (XMLUni::fgDOMEntities, false); - - // Perform Namespace processing. - parser->setFeature (XMLUni::fgDOMNamespaces, true); - - // Perform Validation - parser->setFeature (XMLUni::fgDOMValidation, true); - - // Do not include ignorable whitespace in the DOM tree. - parser->setFeature (XMLUni::fgDOMWhitespaceInElementContent, false); - - // Enable the parser schema support. - parser->setFeature (XMLUni::fgXercesSchema, true); - - // Enable full schema constraint checking, including checking which - // may be time-consuming or memory intensive. Currently, particle - // unique attribution constraint checking and particle derivation - // restriction checking are controlled by this option. - parser->setFeature (XMLUni::fgXercesSchemaFullChecking, true); - - // The parser will treat validation error as fatal and will exit. - parser->setFeature (XMLUni::fgXercesValidationErrorAsFatal, true); - - CIAO::Config_Handler::Config_Error_Handler handler; - parser->setErrorHandler(&handler); - - DOMDocument* doc = parser->parseURI(url); - auto_ptr<DOMDocument> cleanup_doc (doc); - - if (handler.getErrors()) - { - return 1; - } - HANDLER obj (doc, DOMNodeFilter::SHOW_ELEMENT | - DOMNodeFilter::SHOW_TEXT); - - DATA data; - (obj.*func)(data); - Deployment::DnC_Dump::dump (data); - //domain_handler.dump(domain); - - // parser->release (); - } - catch (const DOMException& e) - { - const unsigned int maxChars = 2047; - XMLCh errText[maxChars + 1]; - - ACE_ERROR ((LM_ERROR, "\nException occured while parsing %s: \n", url)); - ACE_ERROR ((LM_ERROR, "DOMException code: %d\n ", e.code)); - if (DOMImplementation::loadDOMExceptionMsg(e.code, errText, maxChars)) - { - char* message = XMLString::transcode (errText); - ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message); - ACE_ERROR ((LM_ERROR, "Message is: %s\n", message)); - } - return 1; - } - catch (const XMLException& e) - { - char* message = XMLString::transcode (e.getMessage()); - ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message); - ACE_ERROR ((LM_ERROR, "\nException occured: %s\n ", message)); - return 1; - } - catch (CORBA::Exception& ex) - { - ACE_PRINT_EXCEPTION (ex, "Caught CORBA Exception: "); - return 1; - } - catch (...) - { - ACE_ERROR ((LM_ERROR, "Caught unknown exception\n")); - return 1; - } - - xercesc::XMLPlatformUtils::Terminate(); - return 0; + ACE_TEXT ("DaNCe internal testing doesn't work with compilers ") + ACE_TEXT ("not supporting nested templates (like VC6).\n"))); + return -1; } +#endif // ACE_HAS_BROKEN_NESTED_TEMPLATES -#endif /*HANDLER_TEST_CPP*/ diff --git a/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.h b/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.h index b51a6e4c00b..a5598e8a55c 100644 --- a/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.h +++ b/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.h @@ -6,6 +6,8 @@ #include "ace/Log_Msg.h" #include "ace/OS_main.h" +#ifndef ACE_HAS_BROKEN_NESTED_TEMPLATES + #include "ace/Get_Opt.h" #include "ace/Auto_Ptr.h" #include "tao/Exception.h" @@ -40,13 +42,9 @@ using xercesc::DOMNodeFilter; template <typename HANDLER, typename DATA> int run_test (int argc, ACE_TCHAR *argv[], void (HANDLER::*func) (DATA&)); +#include "Handler_Test.i" -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "Handler_Test.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Handler_Test.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ +#endif // ACE_HAS_BROKEN_NESTED_TEMPLATES #endif // HANDLER_TEST_H + diff --git a/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.i b/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.i index cfa1da318d3..eb6041b83d0 100644 --- a/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.i +++ b/TAO/CIAO/DAnCE/tests/Config_Handlers/Handler_Test.i @@ -1 +1,197 @@ // $Id$ + +#include "ace/Get_Opt.h" +#include "ace/Auto_Ptr.h" +#include "ace/Log_Msg.h" +#include "ace/OS_main.h" +#include "ace/Auto_Ptr.h" +#include "tao/Exception.h" +#include "Config_Handlers/XercesString.h" +#include <xercesc/util/XMLUniDefs.hpp> +#include "Config_Handlers/Config_Handler_export.h" +#include "Config_Handlers/DnC_Dump.h" +#include "Config_Handlers/Config_Error_Handler.h" + +using Config_Handler::XStr; +using xercesc::XMLUni; +using xercesc::XMLString; +using xercesc::XMLException; +using xercesc::DOMException; +using xercesc::DOMBuilder; +using xercesc::DOMImplementationRegistry; +using xercesc::DOMImplementationLS; +using xercesc::DOMImplementation; +using xercesc::DOMAttr; +using xercesc::DOMNamedNodeMap; +using xercesc::DOMLocator; +using xercesc::DOMError; +using xercesc::DOMNodeList; +using xercesc::DOMDocument; +using xercesc::DOMDocumentTraversal; +using xercesc::DOMNodeIterator; +using xercesc::DOMNode; +using xercesc::DOMNodeFilter; + +inline void +usage (const ACE_TCHAR* program) +{ + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("Usage: %s -u <URI>\n") + ACE_TEXT (" <URI>: URI identifying the resource\n"), + program)); +} + +template <typename HANDLER, typename DATA> +int run_test (int argc, ACE_TCHAR *argv[], void (HANDLER::*func) (DATA&)) +{ + ACE_TCHAR* url = 0; + + ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("u:")); + int c; + + while ((c = get_opt ()) != EOF) + { + switch (c) + { + case 'u': + url = get_opt.opt_arg(); + break; + default: + usage(argv[0]); + return -1; + } + } + + if (url == 0) { + usage(argv[0]); + return -1; + } + + // Initialize the ORB so that CORBA::Any will work + // + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, ""); + + // Initialize the Xerces run-time + try + { + xercesc::XMLPlatformUtils::Initialize(); + } + + catch (const XMLException& e) + { + char* message = XMLString::transcode (e.getMessage()); + ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message); + ACE_DEBUG ((LM_DEBUG, "Error during initialization : %s\n", message)); + return 1; + } + + try + { + + // Instantiate the DOM parser. + static const XMLCh gLS[] = { xercesc::chLatin_L, + xercesc::chLatin_S, + xercesc::chNull }; + + // Get an implementation of the Load-Store (LS) interface + DOMImplementation* impl + = DOMImplementationRegistry::getDOMImplementation(gLS); + + auto_ptr<DOMImplementation> cleanup_impl (impl); + + // Create a DOMBuilder + DOMBuilder* parser = + ((DOMImplementationLS*)impl)->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0); + + auto_ptr<DOMBuilder> cleanup_builder (parser); + + // Discard comment nodes in the document + parser->setFeature (XMLUni::fgDOMComments, false); + + // Disable datatype normalization. The XML 1.0 attribute value + // normalization always occurs though. + parser->setFeature (XMLUni::fgDOMDatatypeNormalization, true); + + // Do not create EntityReference nodes in the DOM tree. No + // EntityReference nodes will be created, only the nodes + // corresponding to their fully expanded sustitution text will be + // created. + parser->setFeature (XMLUni::fgDOMEntities, false); + + // Perform Namespace processing. + parser->setFeature (XMLUni::fgDOMNamespaces, true); + + // Perform Validation + parser->setFeature (XMLUni::fgDOMValidation, true); + + // Do not include ignorable whitespace in the DOM tree. + parser->setFeature (XMLUni::fgDOMWhitespaceInElementContent, false); + + // Enable the parser schema support. + parser->setFeature (XMLUni::fgXercesSchema, true); + + // Enable full schema constraint checking, including checking which + // may be time-consuming or memory intensive. Currently, particle + // unique attribution constraint checking and particle derivation + // restriction checking are controlled by this option. + parser->setFeature (XMLUni::fgXercesSchemaFullChecking, true); + + // The parser will treat validation error as fatal and will exit. + parser->setFeature (XMLUni::fgXercesValidationErrorAsFatal, true); + + CIAO::Config_Handler::Config_Error_Handler handler; + parser->setErrorHandler(&handler); + + DOMDocument* doc = parser->parseURI(url); + auto_ptr<DOMDocument> cleanup_doc (doc); + + if (handler.getErrors()) + { + return 1; + } + HANDLER obj (doc, DOMNodeFilter::SHOW_ELEMENT | + DOMNodeFilter::SHOW_TEXT); + + DATA data; + (obj.*func)(data); + Deployment::DnC_Dump::dump (data); + //domain_handler.dump(domain); + + // parser->release (); + } + catch (const DOMException& e) + { + const unsigned int maxChars = 2047; + XMLCh errText[maxChars + 1]; + + ACE_ERROR ((LM_ERROR, "\nException occured while parsing %s: \n", url)); + ACE_ERROR ((LM_ERROR, "DOMException code: %d\n ", e.code)); + if (DOMImplementation::loadDOMExceptionMsg(e.code, errText, maxChars)) + { + char* message = XMLString::transcode (errText); + ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message); + ACE_ERROR ((LM_ERROR, "Message is: %s\n", message)); + } + return 1; + } + catch (const XMLException& e) + { + char* message = XMLString::transcode (e.getMessage()); + ACE_Auto_Basic_Array_Ptr<char> cleanup_message (message); + ACE_ERROR ((LM_ERROR, "\nException occured: %s\n ", message)); + return 1; + } + catch (CORBA::Exception& ex) + { + ACE_PRINT_EXCEPTION (ex, "Caught CORBA Exception: "); + return 1; + } + catch (...) + { + ACE_ERROR ((LM_ERROR, "Caught unknown exception\n")); + return 1; + } + + xercesc::XMLPlatformUtils::Terminate(); + return 0; +} diff --git a/TAO/CIAO/DAnCE/tests/Config_Handlers/handler_test.mpb b/TAO/CIAO/DAnCE/tests/Config_Handlers/handler_test.mpb index 07bec27c7a4..fae3de02b21 100644 --- a/TAO/CIAO/DAnCE/tests/Config_Handlers/handler_test.mpb +++ b/TAO/CIAO/DAnCE/tests/Config_Handlers/handler_test.mpb @@ -1,16 +1,15 @@ //$Id$ -project : taoexe, ciao_server_dnc, ciao_deployment_stub { +project : taoexe, ciao_client_dnc, ciao_deployment_stub { // , portableserver, typecodefactory { dynamicflags = CONFIG_HANDLER_BUILD_DLL macros += XML_USE_PTHREADS requires += exceptions - includes += $(XERCESCROOT)/include $(ACE_ROOT)/TAO/CIAO/DAnCE - libpaths += $(XERCESCROOT)/lib + includes += $(XERCESCROOT)/include /usr/include $(ACE_ROOT)/TAO/CIAO/DAnCE + libpaths += $(XERCESCROOT)/lib /usr/lib // $(ACE_ROOT)/lib libs += xerces-c Config_Handlers // Deployment_stub Deployment_svnt -// libs += CIAO_DnC_Server CIAO_DnC_Container after += Config_Handlers - Template_Files { + Source_Files { Handler_Test.cpp } } diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc index d9048326040..23507cdc58c 100644 --- a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc @@ -17,7 +17,6 @@ project(NodeAppTest_RoundTrip_stub): ciao_client_dnc { project(NodeAppTest_RoundTrip_svnt) : ciao_servant_dnc { after += NodeAppTest_RoundTrip_stub - requires += cidl sharedname = NodeAppTest_RoundTrip_svnt libs += NodeAppTest_RoundTrip_stub @@ -55,10 +54,10 @@ project(NodeAppTest_RoundTrip_exec) : ciao_component_dnc { } } -project (NodeAppTest_client_simple) : ciao_server_dnc, ciao_deployment_svnt { +project (NodeAppTest_client_simple) : ciao_server_dnc, ciao_deployment_stub { after += NodeAppTest_RoundTrip_exec - libs += NodeAppTest_RoundTrip_stub + libs += NodeAppTest_RoundTrip_stub exename += client_simple IDL_Files { @@ -69,7 +68,7 @@ project (NodeAppTest_client_simple) : ciao_server_dnc, ciao_deployment_svnt { } } -project (NodeAppTest_client) : ciao_server_dnc, ciao_deployment_svnt { +project (NodeAppTest_client) : ciao_server_dnc, ciao_deployment_stub { after += NodeAppTest_RoundTrip_exec libs += NodeAppTest_RoundTrip_stub exename += client @@ -83,9 +82,9 @@ project (NodeAppTest_client) : ciao_server_dnc, ciao_deployment_svnt { } } -project (NodeAppTest_client_ex) : ciao_server_dnc, ciao_deployment_svnt { +project (NodeAppTest_client_ex) : ciao_server_dnc, ciao_deployment_stub { after += NodeAppTest_RoundTrip_exec - libs += NodeAppTest_RoundTrip_stub + libs += NodeAppTest_RoundTrip_stub exename += client_ex IDL_Files { diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp index 4563835a2a0..48c585202d9 100644 --- a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.cpp @@ -119,8 +119,7 @@ RoundTrip_Impl::RoundTripHome_exec_i::create (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) // Implementation for the probided inferface. CORBA::Long -RoundTrip_Impl::LatencyTest_Impl::cube_long (CORBA::Long data - ACE_ENV_ARG_DECL_NOT_USED) +RoundTrip_Impl::LatencyTest_Impl::cube_long (CORBA::Long data) ACE_THROW_SPEC ((CORBA::SystemException)) { return data*data*data; diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h index ce25a707580..132d52a2e30 100644 --- a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/RoundTrip_exec.h @@ -109,8 +109,7 @@ namespace RoundTrip_Impl { } - virtual CORBA::Long cube_long (CORBA::Long data - ACE_ENV_ARG_DECL) + virtual CORBA::Long cube_long (CORBA::Long data) ACE_THROW_SPEC ((CORBA::SystemException)); }; diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test.pl b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test.pl index dc8afc09a22..66bd2b1120f 100755 --- a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test.pl +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test.pl @@ -25,7 +25,7 @@ for ($iter = 0; $iter <= $#ARGV; $iter++) { unlink $iorfile; $CIAO_ROOT=$ENV{'CIAO_ROOT'}; -$SV = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication", +$SV = new PerlACE::Process ("$CIAO_ROOT/DnC/NodeApplication/NodeApplication", "-n -o $iorfile"); $CL = new PerlACE::Process ("client", diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_ex.pl b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_ex.pl index ccb27eab392..1840175abde 100755 --- a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_ex.pl +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_ex.pl @@ -25,7 +25,7 @@ for ($iter = 0; $iter <= $#ARGV; $iter++) { unlink $iorfile; $CIAO_ROOT=$ENV{'CIAO_ROOT'}; -$SV = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication", +$SV = new PerlACE::Process ("$CIAO_ROOT/DnC/NodeApplication/NodeApplication", "-n -o $iorfile"); $CL = new PerlACE::Process ("client_ex", diff --git a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_simple.pl b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_simple.pl index 0d0253e2b5d..26b7edf2c14 100755 --- a/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_simple.pl +++ b/TAO/CIAO/DAnCE/tests/NodeApplicationTest/run_test_simple.pl @@ -25,7 +25,7 @@ for ($iter = 0; $iter <= $#ARGV; $iter++) { unlink $iorfile; $CIAO_ROOT=$ENV{'CIAO_ROOT'}; -$SV = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication", +$SV = new PerlACE::Process ("$CIAO_ROOT/DnC/NodeApplication/NodeApplication", "-n -o $iorfile"); $CL = new PerlACE::Process ("client_simple", diff --git a/TAO/CIAO/NEWS b/TAO/CIAO/NEWS index f9bb415d491..3350ed8090f 100644 --- a/TAO/CIAO/NEWS +++ b/TAO/CIAO/NEWS @@ -4,9 +4,6 @@ PLANNED MAJOR CHANGES TARGETED FOR TAO-1.4.3 - (DOC-ISIS) Changes to DAnCE - (Jeff/Boris) CIDL compiler generates dummy implementation code - . This item added 08/05/04. See CIAO ChangeLog: - - Thu Aug 5 17:42:56 2004 Jeff Parsons <j.parsons@vanderbilt.edu> USER VISIBLE CHANGES BETWEEN CIAO-0.4.1 and CIAO-0.4.2 diff --git a/TAO/CIAO/PROBLEM-REPORT-FORM b/TAO/CIAO/PROBLEM-REPORT-FORM index 5cda35bc57e..4933c6e92ce 100644 --- a/TAO/CIAO/PROBLEM-REPORT-FORM +++ b/TAO/CIAO/PROBLEM-REPORT-FORM @@ -1,9 +1,7 @@ -[Please use the PRF form below to submit bug reports, problem +[Please use the form below to submit bug reports, problem reports, etc., to the CIAO developers and interested users. - Send to ciao-users@cs.wustl.edu. If you are using OCI or PrismTech's - versions of CIAO do not send bugs to this mailing list, but - instead contact those companies for support. Please also send your - PRF as plain ASCII text, _not_ uuencoded or as an attachment. + Send to ciao-users@cs.wustl.edu. Please send it as plain + ASCII text, _not_ uuencoded or as an attachment. We prefer that all bug reports be submitted through our bug tracking system. See $ACE_ROOT/docs/usage-bugzilla.html for more information @@ -15,14 +13,11 @@ browse bugzilla and the ChangeLog files to find out if your problem has been solved in a more recent version of CIAO. - To ensure that you see responses, please do one of the following: + To ensure that you see responses, please try to subscribe to the + ciao-users mail list, by sending email with contents "subscribe + ciao-users" to majordomo@cs.wustl.edu. - 1) Subscribe to the ciao-users mail list, by sending email with - contents "subscribe ciao-users" to majordomo@cs.wustl.edu. - - 2) Or, monitor the comp.soft-sys.ace newsgroup for responses. - - Replace/remove all the explanatory text in brackets before mailing. + Replace/remove all the explanatory text in brackets before mailing. Please send this form as ASCII text only. Do _not_ send it as an attachment, or as tar'ed, compressed and/or uuencoded text. And @@ -32,12 +27,6 @@ Subjects like "CIAO bug" or "bug report" are not helpful! Also, do _not_ include the word "help" in the Subject!] - When including your config.h and platform_macros.GNU files as requested - below, only include the contents if you use the recommended method of - including the platform-specific file in your file. If you use a link - to the platform-specific file, simply state which one - DO NOT include - an entire platform-specific configuration file in the form. - 8<----------8<----------8<----------8<----------8<----------8<----------8<---- To: ciao-users@cs.wustl.edu @@ -54,15 +43,6 @@ Subject: [area]: [synopsis] TARGET MACHINE and OPERATING SYSTEM, if different from HOST: COMPILER NAME AND VERSION (AND PATCHLEVEL): - CONTENTS OF $ACE_ROOT/ace/config.h [if you use a link to a platform- - specific file, simply state which one]: - - CONTENTS OF $ACE_ROOT/include/makeinclude/platform_macros.GNU (unless - this isn't used in this case, e.g., with Microsoft Visual C++): - - CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features - (used by MPC when you generate your own makefiles): - AREA/CLASS/EXAMPLE AFFECTED: [What example failed? What module failed to compile?] diff --git a/TAO/CIAO/ciao/CCM_Container.idl b/TAO/CIAO/ciao/CCM_Container.idl index 220a09ea261..0b7d23562fc 100644 --- a/TAO/CIAO/ciao/CCM_Container.idl +++ b/TAO/CIAO/ciao/CCM_Container.idl @@ -17,7 +17,7 @@ #define CCM_CONTAINER_IDL #include "CCM_Component.idl" -#include "orbsvcs/SecurityLevel2.idl" +#include "orbsvcs/orbsvcs/SecurityLevel2.idl" #include "CCM_Transaction.idl" // *************** Basic Container interfaces *************** diff --git a/TAO/CIAO/ciao/CCM_Core.mpc b/TAO/CIAO/ciao/CCM_Core.mpc index afb0a3458dc..c3bd8d917af 100644 --- a/TAO/CIAO/ciao/CCM_Core.mpc +++ b/TAO/CIAO/ciao/CCM_Core.mpc @@ -30,12 +30,11 @@ project (CIAO_Client) : taolib_with_idl, valuetype, ifr_client { } } -project (CIAO_Container) : orbsvcslib, portableserver, security, valuetype, ifr_client { +project (CIAO_Container) : orbsvcslib, portableserver, security, iorinterceptor, objreftemplate, valuetype, ifr_client { after += CIAO_Client sharedname = CIAO_Container libs += CIAO_Client - idlflags += -Sc -Wb,export_include=CIAO_Container_Export.h - idlflags += -Wb,export_macro=CIAO_CONTAINER_Export + idlflags += -Sc -Wb,export_include=CIAO_Container_Export.h -Wb,export_macro=CIAO_CONTAINER_Export dynamicflags = CIAO_CONTAINER_BUILD_DLL IDL_Files { @@ -60,9 +59,8 @@ project (CIAO_Container) : orbsvcslib, portableserver, security, valuetype, ifr_ } } -project (CIAO_Server) : orbsvcslib, portableserver, valuetype, ifr_client, security, utils { +project (CIAO_Server) : orbsvcslib, portableserver, iorinterceptor, objreftemplate, valuetype, ifr_client, security { after += CIAO_Container - includes += $(CIAO_ROOT) sharedname = CIAO_Server libs += CIAO_Client CIAO_Container idlflags += -Sc -Wb,export_include=CIAO_Server_Export.h -Wb,export_macro=CIAO_SERVER_Export @@ -72,6 +70,7 @@ project (CIAO_Server) : orbsvcslib, portableserver, valuetype, ifr_client, secur IDL_Files { CCM_Deployment.idl CIAO_Servers.idl +// HomeRegistrar.idl } Source_Files { @@ -79,18 +78,16 @@ project (CIAO_Server) : orbsvcslib, portableserver, valuetype, ifr_client, secur CCM_DeploymentS.cpp CIAO_ServersC.cpp CIAO_ServersS.cpp +// HomeRegistrarC.cpp +// HomeRegistrarS.cpp ComponentInstallation_Impl.cpp ComponentServer_Impl.cpp Container_Base.cpp Container_Impl.cpp - Context_Impl_Base.cpp - Home_Servant_Impl_Base.cpp +// HomeRegistrar_i.cpp Servant_Impl_Base.cpp - Servant_Activator.cpp - Port_Activator.cpp Server_init.cpp ServerActivator_Impl.cpp - StandardConfigurator_Impl.cpp } Header_Files { @@ -99,10 +96,7 @@ project (CIAO_Server) : orbsvcslib, portableserver, valuetype, ifr_client, secur } Template_Files { - Context_Impl_T.cpp - Home_Servant_Impl_T.cpp Object_Set_T.cpp Servant_Impl_T.cpp - Servant_Activator_T.cpp } } diff --git a/TAO/CIAO/ciao/ComponentsC.h b/TAO/CIAO/ciao/ComponentsC.h index 4ef065c4e8d..32e5a755e83 100644 --- a/TAO/CIAO/ciao/ComponentsC.h +++ b/TAO/CIAO/ciao/ComponentsC.h @@ -72,7 +72,7 @@ // Traits specializations. namespace TAO { -} +}; // TAO_IDL - Generated from // be/be_visitor_root/cdr_op.cpp:48 diff --git a/TAO/CIAO/ciao/Container_Base.cpp b/TAO/CIAO/ciao/Container_Base.cpp index 8a0d48b8810..0d575b25f0a 100644 --- a/TAO/CIAO/ciao/Container_Base.cpp +++ b/TAO/CIAO/ciao/Container_Base.cpp @@ -2,429 +2,284 @@ #include "Container_Base.h" #include "ace/DLL.h" -#include "tao/Utils/PolicyList_Destroyer.h" #include "ace/OS_NS_stdio.h" -#include "Servant_Activator.h" #if !defined (__ACE_INLINE__) # include "Container_Base.inl" #endif /* __ACE_INLINE__ */ -namespace CIAO +//////////////////////////////////////////////////////////////// + +CIAO::Container::Container (CORBA::ORB_ptr o) + : orb_ (CORBA::ORB::_duplicate (o)) { +} -//////////////////////////////////////////////////////////////// - Container::Container (CORBA::ORB_ptr o) - : orb_ (CORBA::ORB::_duplicate (o)) - { - } - - Container::~Container () - { - } - - PortableServer::POA_ptr - Container::the_POA (void) const - { - return this->component_poa_.in (); - } - - CORBA::ORB_ptr - Container::the_ORB (void) const - { - return this->orb_.in (); - } - - /////////////////////////////////////////////////////////////// - - ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> - Session_Container::serial_number_ (0); - - Session_Container::Session_Container (CORBA::ORB_ptr o, - bool static_config_flag, - const Static_Config_EntryPoints_Maps* maps) +CIAO::Container::~Container () +{ +} + +PortableServer::POA_ptr +CIAO::Container::_ciao_the_POA (void) +{ + return this->poa_.in (); +} + +CORBA::ORB_ptr +CIAO::Container::_ciao_the_ORB () +{ + return this->orb_.in (); +} + +/////////////////////////////////////////////////////////////// + +ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> +CIAO::Session_Container::serial_number_ (0); + +CIAO::Session_Container::Session_Container (CORBA::ORB_ptr o, + int static_config_flag, + const Static_Config_EntryPoints_Maps* maps + ) : Container (o), number_ (0), static_config_flag_ (static_config_flag), - static_entrypts_maps_ (maps), - sa_ (0) - { - } - - Session_Container::~Session_Container () - { - } - - int - Session_Container::init (const char *name, - const CORBA::PolicyList *more_policies - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - char buffer[MAXPATHLEN]; - - if (name == 0) - { - this->number_ = ++Session_Container::serial_number_; - ACE_OS::sprintf (buffer, "CIAO::Session_Container-%ld", - this->number_); - name = buffer; - } - - CORBA::Object_var poa_object = - this->orb_->resolve_initial_references("RootPOA" - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - this->create_component_POA (name, - more_policies, - root_poa.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - this->create_facet_consumer_POA (root_poa.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (-1); - - return 0; - } - - void - Session_Container::create_component_POA (const char *name, - const CORBA::PolicyList *p, - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL) - { - // Set up proper poa policies here. Default policies seems to be - // fine for session container. If you add some other default - // policies here, then you need to "add" more_policies below - // instead of simply assigning more_policies to the init policy - // list. - CORBA::PolicyList policies (0); - - if (p != 0) - policies = *p; - - PortableServer::POAManager_var poa_manager = - root->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - this->component_poa_ = - root->create_POA (name, - poa_manager.in (), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - void - Session_Container::create_facet_consumer_POA ( - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL) - { - PortableServer::POAManager_var poa_manager = - root->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; - - TAO::Utils::PolicyList_Destroyer policies (3); - policies.length (3); - - policies[0] = - root->create_id_assignment_policy (PortableServer::USER_ID - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - policies[1] = - root->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - // Servant Retention Policy - policies[2] = - root->create_servant_retention_policy (PortableServer::RETAIN - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->facet_cons_poa_ = - root->create_POA ("facet_consumer_poa", - poa_manager.in (), - policies - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - ACE_NEW_THROW_EX (this->sa_, - Servant_Activator (this->orb_.in ()), - CORBA::NO_MEMORY ()); - - this->facet_cons_poa_->set_servant_manager ( - this->sa_ - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - CORBA::Object_ptr - Session_Container::install_servant (PortableServer::Servant p, - Container::OA_Type t - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid - = tmp->activate_object (p - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Object_var objref - = tmp->id_to_reference (oid.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return objref._retn (); - } - - CORBA::Object_ptr - Session_Container::install_component (PortableServer::Servant p, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::ObjectId_var id = - this->component_poa_->activate_object (p - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - CORBA::Object_var objref - = this->component_poa_->id_to_reference (id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - oid = id._retn (); - - return objref._retn (); - } - - - //@@ Apparently we need to be cautious when handling the exception - // thrown here. We should make sure that new DnC interfaces - // NodeApplication/NodeApplicationManager etc will cache the new - // exceptions--> rethrow of new exceptions is needed. - // --Tao - Components::CCMHome_ptr - Session_Container::ciao_install_home (const char *exe_dll_name, - const char *exe_entrypt, - const char *sv_dll_name, - const char *sv_entrypt - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::Deployment::UnknownImplId, - Components::Deployment::ImplEntryPointNotFound, - Components::Deployment::InstallationFailure)) - { - - HomeFactory hcreator = 0; - ServantFactory screator = 0; - - if (this->static_config_flag_ == 0) - { - ACE_DLL executor_dll, servant_dll; - - if (exe_dll_name == 0 || sv_dll_name == 0) - ACE_THROW_RETURN (Components::Deployment::UnknownImplId (), - Components::CCMHome::_nil ()); - - if (executor_dll.open (exe_dll_name, - ACE_DEFAULT_SHLIB_MODE, - 0) != 0 - || servant_dll.open (sv_dll_name, - ACE_DEFAULT_SHLIB_MODE, - 0) != 0) - { - ACE_THROW_RETURN (Components::Deployment::UnknownImplId (), - Components::CCMHome::_nil ()); - } - - if (exe_entrypt == 0 || sv_entrypt == 0) - ACE_THROW_RETURN (Components::Deployment::ImplEntryPointNotFound (), - Components::CCMHome::_nil ()); - - // @@ (OO) Please use a static_cast<> here instead of a C-style - // cast. ANSI C++ casts are the preferred (and modern) - // way of casting in ACE/TAO/CIAO. - hcreator = (HomeFactory) executor_dll.symbol (exe_entrypt); - screator = (ServantFactory) servant_dll.symbol (sv_entrypt); - } - else - { - if (static_entrypts_maps_ == 0 || - static_entrypts_maps_->home_creator_funcptr_map_ == 0 || - static_entrypts_maps_->home_servant_creator_funcptr_map_ == 0) - ACE_THROW_RETURN (Components::Deployment::ImplEntryPointNotFound (), - Components::CCMHome::_nil ()); - - ACE_CString exe_entrypt_str (exe_entrypt); - static_entrypts_maps_->home_creator_funcptr_map_-> - find (exe_entrypt_str, hcreator); - - ACE_CString sv_entrypt_str (sv_entrypt); - static_entrypts_maps_->home_servant_creator_funcptr_map_-> - find (sv_entrypt_str, screator); - } - - if (hcreator == 0 || screator == 0) - ACE_THROW_RETURN (Components::Deployment::ImplEntryPointNotFound (), - Components::CCMHome::_nil ()); - - Components::HomeExecutorBase_var home_executor = hcreator (); - if (CORBA::is_nil (home_executor.in ())) - ACE_THROW_RETURN (Components::Deployment::InstallationFailure (), - Components::CCMHome::_nil ()); - - PortableServer::Servant home_servant = screator (home_executor.in (), - this - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Components::CCMHome::_nil ()); - - if (home_servant == 0) - ACE_THROW_RETURN (Components::Deployment::InstallationFailure (), - Components::CCMHome::_nil ()); - - PortableServer::ServantBase_var safe (home_servant); - - CORBA::Object_var objref = - this->install_servant (home_servant, - Container::Component - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (Components::CCMHome::_nil ()); - - Components::CCMHome_var homeref = - Components::CCMHome::_narrow (objref.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return homeref._retn (); - - } - - void - Session_Container::ciao_uninstall_home (Components::CCMHome_ptr homeref + static_entrypts_maps_ (maps) +{ +} + +CIAO::Session_Container::~Session_Container () +{ +} + +int +CIAO::Session_Container::init (const char *name, + const CORBA::PolicyList *more_policies + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + char buffer[MAXPATHLEN]; + + if (name == 0) + { + this->number_ = ++CIAO::Session_Container::serial_number_; + ACE_OS::sprintf (buffer, "CIAO::Session_Container-%ld", + this->number_); + name = buffer; + } + + CORBA::Object_var poa_object = + this->orb_->resolve_initial_references("RootPOA" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + if (CORBA::is_nil (poa_object.in ())) + ACE_ERROR_RETURN ((LM_ERROR, + " (%P|%t) Unable to initialize the POA.\n"), + -1); + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + // Set up proper poa policies here. Default policies seems to be + // fine for session container. If you add some other default + // policies here, then you need to "add" more_policies below + // instead of simply assigning more_policies to the init policy + // list. + CORBA::PolicyList policies (0); + + if (more_policies != 0) + policies = *more_policies; + + this->poa_ = root_poa->create_POA (name, + PortableServer::POAManager::_nil (), + policies + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + PortableServer::POAManager_var poa_manager = + this->poa_->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (-1); + + return 0; +} + +CORBA::Object_ptr +CIAO::Session_Container::install_servant (PortableServer::Servant p ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - this->uninstall (homeref, - Container::Component - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - } - - void - Session_Container::uninstall (CORBA::Object_ptr objref, - Container::OA_Type t - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid = - tmp->reference_to_id (objref - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - tmp->deactivate_object (oid.in () - ACE_ENV_ARG_PARAMETER); - } - - void - Session_Container::uninstall (PortableServer::Servant svt, - Container::OA_Type t - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid - = tmp->servant_to_id (svt + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var oid + = this->poa_->activate_object (p + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + CORBA::Object_var objref + = this->poa_->id_to_reference (oid.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + return objref._retn (); +} + +CORBA::Object_ptr +CIAO::Session_Container::install_component (PortableServer::Servant p, + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var id + = this->poa_->activate_object (p + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + CORBA::Object_var objref + = this->poa_->id_to_reference (id.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + oid = id._retn (); + + return objref._retn (); +} + +Components::CCMHome_ptr +CIAO::Session_Container::ciao_install_home (const char *exe_dll_name, + const char *exe_entrypt, + const char *sv_dll_name, + const char *sv_entrypt + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + Components::Deployment::UnknownImplId, + Components::Deployment::ImplEntryPointNotFound, + Components::Deployment::InstallationFailure)) +{ + ACE_DLL executor_dll, servant_dll; + HomeFactory hcreator=0; + ServantFactory screator=0; + + if (this->static_config_flag_ == 0) + { + if (exe_dll_name == 0 || sv_dll_name == 0) + ACE_THROW_RETURN (Components::Deployment::UnknownImplId (), 0); + + if (executor_dll.open (exe_dll_name, + ACE_DEFAULT_SHLIB_MODE, + 0) != 0) + ACE_THROW_RETURN (Components::Deployment::UnknownImplId (), 0); + + if (servant_dll.open (sv_dll_name, + ACE_DEFAULT_SHLIB_MODE, + 0) != 0) + { + executor_dll.close (); + ACE_THROW_RETURN (Components::Deployment::UnknownImplId (), 0); + } + + if (exe_entrypt == 0 || sv_entrypt == 0) + ACE_THROW_RETURN (Components::Deployment::ImplEntryPointNotFound (), 0); + + hcreator = (HomeFactory) executor_dll.symbol (exe_entrypt); + screator = (ServantFactory) servant_dll.symbol (sv_entrypt); + } + else + { + if ( static_entrypts_maps_ == 0 || + static_entrypts_maps_->home_creator_funcptr_map_ == 0 || + static_entrypts_maps_->home_servant_creator_funcptr_map_ == 0) + ACE_THROW_RETURN (Components::Deployment::ImplEntryPointNotFound (), 0); + + ACE_CString exe_entrypt_str (exe_entrypt); + static_entrypts_maps_->home_creator_funcptr_map_-> + find (exe_entrypt_str, hcreator); + + ACE_CString sv_entrypt_str (sv_entrypt); + static_entrypts_maps_->home_servant_creator_funcptr_map_-> + find (sv_entrypt_str, screator); + } + + if (hcreator == 0 || screator == 0) + ACE_THROW_RETURN (Components::Deployment::ImplEntryPointNotFound (), 0); + + Components::HomeExecutorBase_var home_executor = hcreator (); + if (CORBA::is_nil (home_executor.in ())) + ACE_THROW_RETURN (Components::Deployment::InstallationFailure (), 0); + + PortableServer::Servant home_servant = screator (home_executor.in (), + this + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + if (home_servant == 0) + ACE_THROW_RETURN (Components::Deployment::InstallationFailure (), 0); + + PortableServer::ServantBase_var safe (home_servant); + + CORBA::Object_var objref = this->install_servant (home_servant + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + Components::CCMHome_var homeref = Components::CCMHome::_narrow (objref.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + return homeref._retn (); + +} + +void +CIAO::Session_Container::ciao_uninstall_home (Components::CCMHome_ptr homeref + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + this->uninstall (homeref + ACE_ENV_ARG_PARAMETER); +} + +void +CIAO::Session_Container::uninstall (CORBA::Object_ptr objref + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var oid + = this->poa_->reference_to_id (objref + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->poa_->deactivate_object (oid.in () + ACE_ENV_ARG_PARAMETER); +} + +void +CIAO::Session_Container::uninstall (PortableServer::Servant svt + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var oid + = this->poa_->servant_to_id (svt + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->poa_->deactivate_object (oid.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; +} - tmp->deactivate_object (oid.in () - ACE_ENV_ARG_PARAMETER); - } +void +CIAO::Session_Container::uninstall_component (CORBA::Object_ptr objref, + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + PortableServer::ObjectId_var id + = this->poa_->reference_to_id (objref + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; - void - Session_Container::uninstall_component (Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - - PortableServer::ObjectId_var id = - this->component_poa_->reference_to_id (objref - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - this->component_poa_->deactivate_object (id.in () - ACE_ENV_ARG_PARAMETER); - ACE_CHECK; - - oid = id._retn (); - } - - CORBA::Object_ptr - Session_Container::generate_reference (const char *obj_id, - const char *repo_id, - Container::OA_Type t - ACE_ENV_ARG_DECL) - { - PortableServer::POA_ptr tmp = 0; - - if (t == Container::Component) - tmp = this->component_poa_.in (); - else - tmp = this->facet_cons_poa_.in (); - - PortableServer::ObjectId_var oid = - PortableServer::string_to_ObjectId (obj_id); - - CORBA::Object_var objref = - tmp->create_reference_with_id (oid.in (), - repo_id - ACE_ENV_ARG_PARAMETER); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); - - return objref._retn (); - } + this->poa_->deactivate_object (id.in () + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + oid = id._retn (); } diff --git a/TAO/CIAO/ciao/Container_Base.h b/TAO/CIAO/ciao/Container_Base.h index 325143f1dad..89f57e360b4 100644 --- a/TAO/CIAO/ciao/Container_Base.h +++ b/TAO/CIAO/ciao/Container_Base.h @@ -29,8 +29,6 @@ namespace CIAO { - class Servant_Activator; - /** * @class Container * @@ -42,25 +40,16 @@ namespace CIAO class CIAO_SERVER_Export Container { public: - enum OA_Type - { - Component, - Facet_Consumer - }; - Container (CORBA::ORB_ptr o); virtual ~Container (void) = 0; - /// Get component's POA. - /** - * This operation does *NOT* increase the reference count of the - * POA. Look at the const qualifier in the method. - */ - PortableServer::POA_ptr the_POA (void) const; + /// Get the containing POA. This operation does *NOT* + /// increase the reference count of the POA. + virtual PortableServer::POA_ptr _ciao_the_POA (void); /// Get a reference to the underlying ORB. - CORBA::ORB_ptr the_ORB (void) const; + virtual CORBA::ORB_ptr _ciao_the_ORB (void); /// Initialize the container with a name. virtual int init (const char *name = 0, @@ -85,27 +74,10 @@ namespace CIAO ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)) = 0; - // Uninstall a servant for component. - virtual void uninstall_component (::Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)) = 0; - - protected: CORBA::ORB_var orb_; - /// POA within which all the components in this container will be - /// activated. - PortableServer::POA_var component_poa_; - - /// POA within which all the facets and receptacles will be - /// activated. - /** - * Having two POA's allows us to associate different policies that - * are distinct from the component. - */ - PortableServer::POA_var facet_cons_poa_; + PortableServer::POA_var poa_; }; class Session_Container; @@ -114,10 +86,7 @@ namespace CIAO typedef ::PortableServer::Servant (*ServantFactory) (::Components::HomeExecutorBase_ptr p, ::CIAO::Session_Container *c -#if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT) - , CORBA::Environment & -#endif - ); + ACE_ENV_ARG_DECL_WITH_DEFAULTS); typedef ACE_Hash_Map_Manager_Ex<ACE_CString, HomeFactory, @@ -143,13 +112,10 @@ namespace CIAO class CIAO_SERVER_Export Session_Container : public Container { public: - - // @@ (OO) Does the static_config_flag really need to be an int? - // It appears to be a boolean value. Please use bool - // instead. Session_Container (CORBA::ORB_ptr o, - bool static_config_flag = false, - const Static_Config_EntryPoints_Maps* static_entrypts_maps =0); + int static_config_flag =0, + const Static_Config_EntryPoints_Maps* static_entrypts_maps =0 + ); virtual ~Session_Container (void); @@ -157,7 +123,6 @@ namespace CIAO virtual int init (const char *name = 0, const CORBA::PolicyList *more_policies = 0 ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); /** @@ -187,15 +152,8 @@ namespace CIAO ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - // Uninstall a servant for component. - virtual void uninstall_component (::Components::CCMObject_ptr objref, - PortableServer::ObjectId_out oid - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - // Install a servant for component or home. - CORBA::Object_ptr install_servant (PortableServer::Servant p, - Container::OA_Type t + CORBA::Object_ptr install_servant (PortableServer::Servant p ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); @@ -203,6 +161,7 @@ namespace CIAO CORBA::Object_ptr install_component (PortableServer::Servant p, PortableServer::ObjectId_out oid ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); // Get an object reference to a component or home from the servant. @@ -211,64 +170,33 @@ namespace CIAO ACE_THROW_SPEC ((CORBA::SystemException)); // Uninstall a servant for component or home. - void uninstall (CORBA::Object_ptr objref, - Container::OA_Type t + void uninstall (CORBA::Object_ptr objref ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); // Uninstall a servant for component or home. - void uninstall (PortableServer::Servant svt, - Container::OA_Type t + void uninstall (PortableServer::Servant svt ACE_ENV_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - // Analog of the POA method that creates an object reference from - // an object id string. - CORBA::Object_ptr generate_reference (const char *obj_id, - const char *repo_id, - Container::OA_Type t - ACE_ENV_ARG_DECL); - - /// Return the servant activator factory that activates the - /// servants for facets and consumers. - Servant_Activator *ports_servant_activator (void) const; - - private: - - /// Create POA for the component. - /** - * This is the POA that is returned to the component applications - * if they need one. - */ - void create_component_POA (const char *name, - const CORBA::PolicyList *p, - PortableServer::POA_ptr root - ACE_ENV_ARG_DECL); - - /// Create POA for the facets and consumers alone. - void create_facet_consumer_POA (PortableServer::POA_ptr root - ACE_ENV_ARG_DECL); + // Uninstall a servant for component or home. + void uninstall_component (CORBA::Object_ptr objref, + PortableServer::ObjectId_out oid + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); protected: long number_; static ACE_Atomic_Op <ACE_SYNCH_MUTEX, long> serial_number_; - // @@ (OO) Does this really need to be an int? It appears to be a - // boolean value. Please use bool instead. - // - // It looks like it can also be declared const, as well. - bool static_config_flag_; + int static_config_flag_; const Static_Config_EntryPoints_Maps* static_entrypts_maps_; - - /// The servant activator factory used to activate facets and - /// consumer servants. - Servant_Activator *sa_; }; } // Macro for registration of an OBV factory in the generated -// servant class. Similar to the macro for TAO in +// servant class. Similar to the macro for TAO in // tao/ValueType/ValueFactory.h but here we take advantage of // the fact that we have access to the current ORB indirectly // through the context and container. @@ -276,7 +204,7 @@ namespace CIAO { \ CORBA::ValueFactory factory = new FACTORY; \ CORBA::ORB_ptr orb = \ - this->context_->_ciao_the_Container ()->the_ORB (); \ + this->context_->_ciao_the_Container ()->_ciao_the_ORB (); \ CORBA::ValueFactory prev_factory = \ orb->register_value_factory ( \ VALUETYPE::_tao_obv_static_repository_id (), \ diff --git a/TAO/CIAO/ciao/Container_Base.inl b/TAO/CIAO/ciao/Container_Base.inl index 0d6aeef9bcc..ee17c741fae 100644 --- a/TAO/CIAO/ciao/Container_Base.inl +++ b/TAO/CIAO/ciao/Container_Base.inl @@ -5,12 +5,6 @@ CIAO::Session_Container::get_objref (PortableServer::Servant p ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { - return this->the_POA ()->servant_to_reference (p + return this->_ciao_the_POA ()->servant_to_reference (p ACE_ENV_ARG_PARAMETER); } - -ACE_INLINE CIAO::Servant_Activator * -CIAO::Session_Container::ports_servant_activator (void) const -{ - return this->sa_; -} diff --git a/TAO/CIAO/ciao/Servant_Impl_Base.cpp b/TAO/CIAO/ciao/Servant_Impl_Base.cpp index fccbf855572..5f3db1e9050 100644 --- a/TAO/CIAO/ciao/Servant_Impl_Base.cpp +++ b/TAO/CIAO/ciao/Servant_Impl_Base.cpp @@ -1,8 +1,6 @@ // $Id$ #include "Servant_Impl_Base.h" -#include "StandardConfigurator_Impl.h" -#include "Container_Base.h" namespace CIAO { @@ -10,352 +8,11 @@ namespace CIAO : container_ (c) { } - - Servant_Impl_Base::~Servant_Impl_Base (void) - { - } - - // Operations for CCMObject interface. - - ::Components::PrimaryKeyBase * - Servant_Impl_Base::get_primary_key ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - ::Components::NoKeyAvailable)) - { - ACE_THROW_RETURN (::Components::NoKeyAvailable (), 0); - - return 0; - } - - CORBA::IRObject_ptr - Servant_Impl_Base::get_component_def ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), - CORBA::IRObject::_nil ()); - } - - void - Servant_Impl_Base::configuration_complete ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidConfiguration)) - { - // CIAO to-do - } - - void - Servant_Impl_Base::remove ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::RemoveFailure)) - { - // CIAO to-do - } - - ::Components::ConnectionDescriptions * - Servant_Impl_Base::get_connections ( - const char * /* name */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ComponentPortDescription * - Servant_Impl_Base::get_all_ports ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - OBV_Components::ComponentPortDescription *cps = 0; - ACE_NEW_RETURN (cps, - OBV_Components::ComponentPortDescription, - 0); - ::Components::ComponentPortDescription_var retv = cps; - - ::Components::FacetDescriptions_var facets_desc = - this->get_all_facets (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::ReceptacleDescriptions_var receptacle_desc = - this->get_all_receptacles (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::ConsumerDescriptions_var consumer_desc = - this->get_all_consumers (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::EmitterDescriptions_var emitter_desc = - this->get_all_emitters (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::Components::PublisherDescriptions_var publisher_desc = - this->get_all_publishers (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - retv->facets (facets_desc.in ()); - retv->receptacles (receptacle_desc.in ()); - retv->consumers (consumer_desc.in ()); - retv->emitters (emitter_desc.in ()); - retv->publishers (publisher_desc.in ()); - - return retv._retn (); - } - - CORBA::Object_ptr - Servant_Impl_Base::provide_facet ( - const char *name - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - if (name == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - CORBA::Object::_nil ()); - } - - CORBA::Object_ptr retval = this->lookup_facet (name); - - if (CORBA::is_nil (retval)) - { - ACE_THROW_RETURN (Components::InvalidName (), - CORBA::Object::_nil ()); - } - - return retval; - } - - Components::FacetDescriptions * - Servant_Impl_Base::get_named_facets ( - const ::Components::NameList & names - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - Components::FacetDescriptions *retval = 0; - ACE_NEW_RETURN (retval, - ::Components::FacetDescriptions, - 0); - Components::FacetDescriptions_var safe_retval = retval; - CORBA::ULong len = names.length (); - safe_retval->length (len); - ::Components::FacetDescription *tmp = 0; - - for (CORBA::ULong i = 0; i < len; ++i) - { - tmp = this->lookup_facet_description (names[i].in ()); - - if (tmp == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - 0); - } - - safe_retval[i] = tmp; - } - - return safe_retval._retn (); - } - - ::Components::FacetDescriptions * - Servant_Impl_Base::get_all_facets ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::FacetDescriptions *tmp = 0; - ACE_NEW_RETURN (tmp, - ::Components::FacetDescriptions, - 0); - - ::Components::FacetDescriptions_var retval = tmp; - - retval->length (this->facet_table_.current_size ()); - CORBA::ULong i = 0; - - for (FacetTable::iterator iter = this->facet_table_.begin (); - iter != this->facet_table_.end (); - ++iter, ++i) - { - FacetTable::ENTRY & entry = *iter; - retval[i] = entry.int_id_; - } - - return retval._retn (); - } - - ::Components::ConsumerDescriptions * - Servant_Impl_Base::get_all_consumers ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::ConsumerDescriptions *tmp = 0; - ACE_NEW_RETURN (tmp, - ::Components::ConsumerDescriptions, - 0); - - ::Components::ConsumerDescriptions_var retval = tmp; - - retval->length (this->consumer_table_.current_size ()); - CORBA::ULong i = 0; - - for (ConsumerTable::iterator iter = this->consumer_table_.begin (); - iter != this->consumer_table_.end (); - ++iter, ++i) - { - ConsumerTable::ENTRY & entry = *iter; - retval[i] = entry.int_id_; - } - - return retval._retn (); - } - ::Components::EventConsumerBase_ptr - Servant_Impl_Base::get_consumer ( - const char *sink_name - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - if (sink_name == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - Components::EventConsumerBase::_nil ()); - } - - Components::EventConsumerBase_ptr retval = - this->lookup_consumer (sink_name); - - if (CORBA::is_nil (retval)) - { - ACE_THROW_RETURN (Components::InvalidName (), - Components::EventConsumerBase::_nil ()); - } - - return retval; - } - - ::Components::EventConsumerBase_ptr - Servant_Impl_Base::disconnect_consumer ( - const char * /* source_name */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName, - Components::NoConnection)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ConsumerDescriptions * - Servant_Impl_Base::get_named_consumers ( - const ::Components::NameList & names - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - Components::ConsumerDescriptions *retval = 0; - ACE_NEW_RETURN (retval, - ::Components::ConsumerDescriptions, - 0); - Components::ConsumerDescriptions_var safe_retval = retval; - CORBA::ULong len = names.length (); - safe_retval->length (len); - ::Components::ConsumerDescription *tmp = 0; - - for (CORBA::ULong i = 0; i < len; ++i) - { - tmp = this->lookup_consumer_description (names[i].in ()); - - if (tmp == 0) - { - ACE_THROW_RETURN (Components::InvalidName (), - 0); - } - - safe_retval[i] = tmp; - } - - return safe_retval._retn (); - } - - ::Components::EmitterDescriptions * - Servant_Impl_Base::get_all_emitters ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::EmitterDescriptions * - Servant_Impl_Base::get_named_emitters ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ReceptacleDescriptions * - Servant_Impl_Base::get_all_receptacles ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::ReceptacleDescriptions * - Servant_Impl_Base::get_named_receptacles ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::PublisherDescriptions * - Servant_Impl_Base::get_all_publishers ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); - } - - ::Components::PublisherDescriptions * - Servant_Impl_Base::get_named_publishers ( - const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)) + Servant_Impl_Base::~Servant_Impl_Base (void) { - ACE_THROW_RETURN (::CORBA::NO_IMPLEMENT (), 0); } - /// Protected operations. - void Servant_Impl_Base::add_facet (const char *port_name, CORBA::Object_ptr port_ref) @@ -364,43 +21,17 @@ namespace CIAO ACE_NEW (fd, OBV_Components::FacetDescription); ::Components::FacetDescription_var safe = fd; - + fd->name (port_name); fd->type_id (port_ref->_interface_repository_id ()); fd->facet_ref (port_ref); - + if (this->facet_table_.bind (port_name, fd) == 0) { safe._retn (); } } - - CORBA::Object_ptr - Servant_Impl_Base::lookup_facet (const char *port_name) - { - ::Components::FacetDescription_var fd; - - if (this->facet_table_.find (port_name, fd) != 0) - { - return CORBA::Object::_nil (); - } - - return CORBA::Object::_duplicate (fd.in ()->facet_ref ()); - } - - ::Components::FacetDescription * - Servant_Impl_Base::lookup_facet_description (const char *port_name) - { - ::Components::FacetDescription_var fd; - - if (this->facet_table_.find (port_name, fd) != 0) - { - return 0; - } - - return fd._retn (); - } - + void Servant_Impl_Base::add_consumer ( const char *port_name, @@ -411,70 +42,15 @@ namespace CIAO ACE_NEW (cd, OBV_Components::ConsumerDescription); ::Components::ConsumerDescription_var safe = cd; - + cd->name (port_name); cd->type_id (port_ref->_interface_repository_id ()); cd->consumer (port_ref); - + if (this->consumer_table_.bind (port_name, cd) == 0) { safe._retn (); } } - - ::Components::EventConsumerBase_ptr - Servant_Impl_Base::lookup_consumer (const char *port_name) - { - ::Components::ConsumerDescription_var cd; - - if (this->consumer_table_.find (port_name, cd) != 0) - { - return ::Components::EventConsumerBase::_nil (); - } - - return - ::Components::EventConsumerBase::_duplicate (cd.in ()->consumer ()); - } - - ::Components::ConsumerDescription * - Servant_Impl_Base::lookup_consumer_description ( - const char *port_name - ) - { - ::Components::ConsumerDescription_var cd; - - if (this->consumer_table_.find (port_name, cd) != 0) - { - return 0; - } - - return cd._retn (); - } - - Components::StandardConfigurator* - Servant_Impl_Base::get_standard_configurator ( - ACE_ENV_SINGLE_ARG_DECL) - { - // Create the configurator servant. - StandardConfigurator_Impl *config_impl = 0; - - ACE_NEW_THROW_EX (config_impl, - StandardConfigurator_Impl (this), - CORBA::NO_MEMORY ()); - - - Components::StandardConfigurator_var configurator = - config_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (Components::StandardConfigurator::_nil ()); - - return configurator._retn (); - } - - PortableServer::POA_ptr - Servant_Impl_Base::_default_POA ( - ACE_ENV_SINGLE_ARG_DECL_NOT_USED) - { - return - PortableServer::POA::_duplicate (container_->the_POA ()); - } } + diff --git a/TAO/CIAO/ciao/Servant_Impl_Base.h b/TAO/CIAO/ciao/Servant_Impl_Base.h index 272fa8f3d5a..c7225c3fefa 100644 --- a/TAO/CIAO/ciao/Servant_Impl_Base.h +++ b/TAO/CIAO/ciao/Servant_Impl_Base.h @@ -27,12 +27,11 @@ #include "CCM_EventC.h" #include "CIAO_Server_Export.h" -#include "CCM_ComponentS.h" namespace CIAO { class Session_Container; - + /** * @class Servant_Impl_Base * @@ -42,150 +41,19 @@ namespace CIAO * Servant_Impl. */ class CIAO_SERVER_Export Servant_Impl_Base - : public virtual POA_Components::CCMObject { public: Servant_Impl_Base (Session_Container * c); - + virtual ~Servant_Impl_Base (void); - /// Operations for CCMObject interface. - - virtual ::Components::PrimaryKeyBase * - get_primary_key (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::NoKeyAvailable)); - - virtual CORBA::IRObject_ptr - get_component_def (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual void - configuration_complete (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidConfiguration)); - - virtual void - remove (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::RemoveFailure)); - - virtual ::Components::ConnectionDescriptions * - get_connections (const char *name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::ComponentPortDescription * - get_all_ports (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Object_ptr - provide_facet (const char *name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::FacetDescriptions * - get_named_facets (const ::Components::NameList & names - ACE_ENV_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::FacetDescriptions * - get_all_facets (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::ConsumerDescriptions * - get_all_consumers (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::EventConsumerBase_ptr - get_consumer (const char *sink_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::EventConsumerBase_ptr - disconnect_consumer (const char *source_name - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName, - Components::NoConnection)); - - virtual ::Components::ConsumerDescriptions * - get_named_consumers (const ::Components::NameList & names - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::EmitterDescriptions * - get_all_emitters (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::EmitterDescriptions * - get_named_emitters (const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::ReceptacleDescriptions * - get_all_receptacles (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::ReceptacleDescriptions * - get_named_receptacles (const ::Components::NameList & /* names */ - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - virtual ::Components::PublisherDescriptions * - get_all_publishers (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::PublisherDescriptions * - get_named_publishers (const ::Components::NameList & names - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException, - Components::InvalidName)); - - /// Operation to set attributes on the component. - virtual void set_attributes (const Components::ConfigValues &descr - ACE_ENV_ARG_DECL) = 0; - - // Creates and returns the StandardConfigurator for the component. - virtual Components::StandardConfigurator *get_standard_configurator ( - ACE_ENV_SINGLE_ARG_DECL - ); - - /// Override that returns the (passed-in) default POA of our member - /// component's container, to ensure that we get registered - /// to that POA when _this() is called. - virtual PortableServer::POA_ptr _default_POA ( - ACE_ENV_SINGLE_ARG_DECL - ); - protected: void add_facet (const char *port_name, CORBA::Object_ptr port_ref); - - CORBA::Object_ptr lookup_facet (const char *port_name); - - ::Components::FacetDescription *lookup_facet_description ( - const char *port_name - ); - + void add_consumer (const char *port_name, ::Components::EventConsumerBase_ptr port_ref); - - ::Components::EventConsumerBase_ptr lookup_consumer ( - const char *port_name - ); - - ::Components::ConsumerDescription *lookup_consumer_description ( - const char *port_name - ); - + protected: typedef ACE_Hash_Map_Manager_Ex<const char *, ::Components::FacetDescription_var, @@ -200,9 +68,9 @@ namespace CIAO ACE_Equal_To<const char *>, ACE_Null_Mutex> ConsumerTable; - - FacetTable facet_table_; - ConsumerTable consumer_table_; + + FacetTable facet_table_; + ConsumerTable consumer_table_; Session_Container * container_; }; } @@ -210,3 +78,4 @@ namespace CIAO #include /**/ "ace/post.h" #endif /* CIAO_SERVANT_IMPL_T_H */ + diff --git a/TAO/CIAO/ciao/Servant_Impl_T.cpp b/TAO/CIAO/ciao/Servant_Impl_T.cpp index 4e39010461f..443aab29064 100644 --- a/TAO/CIAO/ciao/Servant_Impl_T.cpp +++ b/TAO/CIAO/ciao/Servant_Impl_T.cpp @@ -26,200 +26,68 @@ namespace CIAO typename CONTEXT> Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::~Servant_Impl (void) { - ACE_TRY_NEW_ENV - { - ::Components::SessionComponent_var scom = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_TRY_CHECK; - - if (! ::CORBA::is_nil (scom.in ())) - { - scom->ccm_remove (ACE_ENV_SINGLE_ARG_PARAMETER); - } - } - ACE_CATCHANY - { - } - ACE_ENDTRY; - - this->context_->_remove_ref (); - } - - // Operations for CCMObject interface. - - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - CORBA::Boolean - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::same_component ( - CORBA::Object_ptr object_ref - ACE_ENV_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - if (::CORBA::is_nil (object_ref)) - { - ACE_THROW_RETURN (::CORBA::BAD_PARAM (), 0); - } - - ::CORBA::Object_var the_other = - object_ref->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - ::CORBA::Object_var me = - this->context_->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK_RETURN (0); - - return me->_is_equivalent (the_other.in () - ACE_ENV_ARG_PARAMETER); } template <typename BASE_SKEL, typename EXEC, typename EXEC_VAR, typename CONTEXT> - ::Components::CCMHome_ptr - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_ccm_home ( - ACE_ENV_SINGLE_ARG_DECL + ::Components::FacetDescriptions * + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_facets ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED ) ACE_THROW_SPEC ((CORBA::SystemException)) { - return this->context_->get_CCM_home (ACE_ENV_SINGLE_ARG_PARAMETER); - } + ::Components::FacetDescriptions *tmp = 0; + ACE_NEW_RETURN (tmp, + ::Components::FacetDescriptions, + 0); - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - CORBA::Object_ptr - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::_get_component ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionContext_var sc = - ::Components::SessionContext::_narrow ( - this->context_ - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK_RETURN (::CORBA::Object::_nil ()); + ::Components::FacetDescriptions_var retval = tmp; - if (! ::CORBA::is_nil (sc.in ())) - { - return sc->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); - } + retval->length (this->facet_table_.current_size ()); + CORBA::ULong i = 0; - ::Components::EntityContext_var ec = - ::Components::EntityContext::_narrow ( - this->context_ - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK_RETURN (::CORBA::Object::_nil ()); - - if (! ::CORBA::is_nil (ec.in ())) + for (FacetTable::iterator iter = this->facet_table_.begin (); + iter != this->facet_table_.end (); + ++iter, ++i) { - return ec->get_CCM_object (ACE_ENV_SINGLE_ARG_PARAMETER); + FacetTable::ENTRY & entry = *iter; + retval[i] = entry.int_id_; } - ACE_THROW_RETURN (CORBA::INTERNAL (), - ::CORBA::Object::_nil ()); + return retval._retn (); } - // CIAO-specific operations. - template <typename BASE_SKEL, typename EXEC, typename EXEC_VAR, typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_preactivate ( - ACE_ENV_SINGLE_ARG_DECL + ::Components::ConsumerDescriptions * + Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::get_all_consumers ( + ACE_ENV_SINGLE_ARG_DECL_NOT_USED ) ACE_THROW_SPEC ((CORBA::SystemException)) { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; + ::Components::ConsumerDescriptions *tmp = 0; + ACE_NEW_RETURN (tmp, + ::Components::ConsumerDescriptions, + 0); - if (! ::CORBA::is_nil (temp.in ())) - { - temp->ciao_preactivate (ACE_ENV_SINGLE_ARG_PARAMETER); - } - } + ::Components::ConsumerDescriptions_var retval = tmp; - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_activate ( - ACE_ENV_SINGLE_ARG_DECL) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; + retval->length (this->consumer_table_.current_size ()); + CORBA::ULong i = 0; - if (! ::CORBA::is_nil (temp.in ())) + for (ConsumerTable::iterator iter = this->consumer_table_.begin (); + iter != this->consumer_table_.end (); + ++iter, ++i) { - temp->ccm_activate (ACE_ENV_SINGLE_ARG_PARAMETER); + ConsumerTable::ENTRY & entry = *iter; + retval[i] = entry.int_id_; } - } - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::ciao_postactivate ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - if (! ::CORBA::is_nil (temp.in ())) - { - temp->ciao_postactivate (ACE_ENV_SINGLE_ARG_PARAMETER); - } - } - - template <typename BASE_SKEL, - typename EXEC, - typename EXEC_VAR, - typename CONTEXT> - void - Servant_Impl<BASE_SKEL, EXEC, EXEC_VAR, CONTEXT>::_ciao_passivate ( - ACE_ENV_SINGLE_ARG_DECL - ) - ACE_THROW_SPEC ((CORBA::SystemException)) - { - ::Components::SessionComponent_var temp = - ::Components::SessionComponent::_narrow ( - this->executor_.in () - ACE_ENV_ARG_PARAMETER - ); - ACE_CHECK; - - if (! ::CORBA::is_nil (temp.in ())) - { - temp->ccm_passivate (ACE_ENV_SINGLE_ARG_PARAMETER); - } + return retval._retn (); } } diff --git a/TAO/CIAO/ciao/Servant_Impl_T.h b/TAO/CIAO/ciao/Servant_Impl_T.h index 4bface2a5b8..af8f19a0eb2 100644 --- a/TAO/CIAO/ciao/Servant_Impl_T.h +++ b/TAO/CIAO/ciao/Servant_Impl_T.h @@ -43,49 +43,21 @@ namespace CIAO typename EXEC_VAR, typename CONTEXT> class Servant_Impl : public virtual BASE_SKEL, - public virtual Servant_Impl_Base, - public virtual PortableServer::RefCountServantBase + public Servant_Impl_Base { public: - Servant_Impl (EXEC * exe, + Servant_Impl (EXEC * exe, Session_Container * c); - virtual ~Servant_Impl (void); - // Operations for CCMObject interface. - - virtual CORBA::Boolean - same_component (CORBA::Object_ptr object_ref - ACE_ENV_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual ::Components::CCMHome_ptr - get_ccm_home (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - virtual CORBA::Object_ptr - _get_component (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - // CIAO-specific operations. - - void - ciao_preactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - - void - ciao_activate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + virtual ::Components::FacetDescriptions * + get_all_facets (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - - void - ciao_postactivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) + + virtual ::Components::ConsumerDescriptions * + get_all_consumers (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) ACE_THROW_SPEC ((CORBA::SystemException)); - - /// @@NOTE: The busted operation. - void - _ciao_passivate (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS) - ACE_THROW_SPEC ((CORBA::SystemException)); - + protected: EXEC_VAR executor_; diff --git a/TAO/CIAO/docs/schema/Modified_Deployment.xsd b/TAO/CIAO/docs/schema/Modified_Deployment.xsd index af2f1885837..2531cc323eb 100644 --- a/TAO/CIAO/docs/schema/Modified_Deployment.xsd +++ b/TAO/CIAO/docs/schema/Modified_Deployment.xsd @@ -381,22 +381,23 @@ <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" /> - <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" /> - <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: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="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription" 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> +--> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> diff --git a/TAO/CIAO/docs/schema/cdp.xsd b/TAO/CIAO/docs/schema/cdp.xsd index b907f4df0af..6a667d8d4d9 100644 --- a/TAO/CIAO/docs/schema/cdp.xsd +++ b/TAO/CIAO/docs/schema/cdp.xsd @@ -6,22 +6,23 @@ <xsd:include schemaLocation="ccd.xsd" /> - <xsd:complexType name="DeploymentPlan"> +<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" /> - <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" /> - <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="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription" 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> +--> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> +</xsd:complexType> </xsd:schema> diff --git a/TAO/CIAO/examples/Hello/Sender/Sender_exec.cpp b/TAO/CIAO/examples/Hello/Sender/Sender_exec.cpp index 9f22f2642b9..6fad594114b 100644 --- a/TAO/CIAO/examples/Hello/Sender/Sender_exec.cpp +++ b/TAO/CIAO/examples/Hello/Sender/Sender_exec.cpp @@ -144,7 +144,6 @@ Sender_Impl::SenderHome_exec_i::create (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) ACE_THROW_SPEC ((CORBA::SystemException, Components::CCMException)) { - ACE_DEBUG ((LM_DEBUG, "%P|%t) creating SenderHome \n")); return new Sender_Impl::Sender_exec_i; } diff --git a/TAO/CIAO/performance-tests/Benchmark/Benchmark.mpc b/TAO/CIAO/performance-tests/Benchmark/Benchmark.mpc index a84ca1595c4..cd9f23e7f7c 100644 --- a/TAO/CIAO/performance-tests/Benchmark/Benchmark.mpc +++ b/TAO/CIAO/performance-tests/Benchmark/Benchmark.mpc @@ -28,9 +28,9 @@ project(Benchmark_svnt) : ciao_server { } } -project (*server) : taoserver, strategies,ciao_server { +project (*server) : taoserver, strategies { after += Benchmark_svnt - libs += Benchmark_svnt Benchmark_stub + libs += Benchmark_svnt Benchmark_stub Source_Files { server.cpp diff --git a/TAO/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc b/TAO/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc index b24ccfcf9e8..da1db00336f 100644 --- a/TAO/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc +++ b/TAO/CIAO/performance-tests/Protocols/Receiver/Receiver.mpc @@ -20,7 +20,7 @@ project(Protocols_Receiver_stub): ciao_client { project(Protocols_Receiver_svnt) : ciao_servant { after += Protocols_svnt Protocols_Receiver_stub sharedname = Protocols_Receiver_svnt - libs += Protocols_Receiver_stub Protocols_stub Protocols_svnt + libs += Receiver_stub Protocols_stub Protocols_svnt idlflags += -Wb,export_macro=RECEIVER_SVNT_Export -Wb,export_include=Receiver_svnt_export.h dynamicflags = RECEIVER_SVNT_BUILD_DLL @@ -45,7 +45,7 @@ project(Protocols_Receiver_exec) : ciao_component { after += Protocols_Receiver_svnt sharedname = Protocols_Receiver_exec requires += dummy - libs += Protocols_Receiver_stub Protocols_Receiver_svnt Protocols_stub Protocols_svnt + libs += Receiver_stub Receiver_svnt Protocols_stub Protocols_svnt idlflags += -Wb,export_macro=RECEIVER_EXEC_Export -Wb,export_include=Receiver_exec_export.h dynamicflags = RECEIVER_EXEC_BUILD_DLL diff --git a/TAO/CIAO/performance-tests/Protocols/Sender/Sender.mpc b/TAO/CIAO/performance-tests/Protocols/Sender/Sender.mpc index b517cc2d754..8b792984de2 100644 --- a/TAO/CIAO/performance-tests/Protocols/Sender/Sender.mpc +++ b/TAO/CIAO/performance-tests/Protocols/Sender/Sender.mpc @@ -21,7 +21,7 @@ project(Protocols_Sender_stub): ciao_client { project(Protocols_Sender_svnt) : ciao_servant { after += Protocols_svnt Protocols_Sender_stub sharedname = Protocols_Sender_svnt - libs += Protocols_Sender_stub Protocols_stub Protocols_svnt + libs += Sender_stub Protocols_stub Protocols_svnt idlflags += -Wb,export_macro=SENDER_SVNT_Export -Wb,export_include=Sender_svnt_export.h dynamicflags = SENDER_SVNT_BUILD_DLL diff --git a/TAO/CIAO/tests/CIDL/CodeGen/CodeGen.mpc b/TAO/CIAO/tests/CIDL/CodeGen/CodeGen.mpc index b84b270cb58..12453328707 100644 --- a/TAO/CIAO/tests/CIDL/CodeGen/CodeGen.mpc +++ b/TAO/CIAO/tests/CIDL/CodeGen/CodeGen.mpc @@ -1,8 +1,8 @@ // $Id$ -project(CIDL_Basic_stub): ciao_client { +project(Basic_stub): ciao_client { - sharedname = CIDL_Basic_stub + sharedname = Basic_stub idlflags += -Wb,stub_export_macro=BASIC_STUB_Export -Wb,stub_export_include=Basic_stub_export.h -Wb,skel_export_macro=BASIC_SVNT_Export -Wb,skel_export_include=Basic_svnt_export.h dynamicflags = BASIC_STUB_BUILD_DLL @@ -20,10 +20,10 @@ project(CIDL_Basic_stub): ciao_client { } } -project(CIDL_Basic_svnt) : ciao_servant { - after += CIDL_Basic_stub - sharedname = CIDL_Basic_svnt - libs += CIDL_Basic_stub +project(Basic_svnt) : ciao_server { + after += Basic_stub + sharedname = Basic_svnt + libs += Basic_stub idlflags += -Wb,stub_export_macro=BASIC_STUB_Export -Wb,stub_export_include=Basic_stub_export.h -Wb,skel_export_macro=BASIC_SVNT_Export -Wb,skel_export_include=Basic_svnt_export.h dynamicflags = BASIC_SVNT_BUILD_DLL @@ -43,7 +43,7 @@ project(CIDL_Basic_svnt) : ciao_servant { } project(CodeGen_stub): ciao_client { - after += CIDL_Basic_stub + after += Basic_stub sharedname = CodeGen_stub idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export -Wb,stub_export_include=CodeGen_stub_export.h -Wb,skel_export_macro=CODEGEN_SVNT_Export -Wb,skel_export_include=CodeGen_svnt_export.h dynamicflags = CODEGEN_STUB_BUILD_DLL @@ -63,11 +63,10 @@ project(CodeGen_stub): ciao_client { } project(CodeGen_svnt) : ciao_servant { - after += CIDL_Basic_svnt CodeGen_stub - requires += cidl + after += Basic_svnt CodeGen_stub sharedname = CodeGen_svnt - libs += CodeGen_stub CIDL_Basic_stub CIDL_Basic_svnt - idlflags += -Wb,export_macro=CODEGEN_SVNT_Export -Wb,export_include=CodeGen_svnt_export.h + libs += CodeGen_stub Basic_stub Basic_svnt + idlflags += -Wb,export_macro=CODEGEN_SVNT_Export -Wb,export_include=CODEGEN_svnt_export.h dynamicflags = CODEGEN_SVNT_BUILD_DLL cidlflags -= -- cidlflags += --gen-exec-impl --exec-export-include CodeGen_exec_export.h -- @@ -98,7 +97,7 @@ project(CodeGen_svnt) : ciao_servant { project(CodeGen_exec) : ciao_component { after += CodeGen_svnt sharedname = CodeGen_exec - libs += CodeGen_stub CodeGen_svnt CIDL_Basic_stub CIDL_Basic_svnt + libs += CodeGen_stub CodeGen_svnt Basic_stub Basic_svnt dynamicflags = CODEGEN_EXEC_BUILD_DLL IDL_Files { diff --git a/TAO/CIAO/tests/IDL3/Events/Abstract/Abstract.idl b/TAO/CIAO/tests/IDL3/Events/Abstract/Abstract.idl index 15eb50971b3..cbd81d4d8b6 100644 --- a/TAO/CIAO/tests/IDL3/Events/Abstract/Abstract.idl +++ b/TAO/CIAO/tests/IDL3/Events/Abstract/Abstract.idl @@ -27,7 +27,7 @@ module AbstractEvents }; // test event multiple inheretance - + /* eventtype concrete_foo { }; @@ -35,4 +35,6 @@ module AbstractEvents eventtype concrete_foobar : concrete_foo, foo_event { }; + */ + }; diff --git a/TAO/CIAO/tests/IDL3/Homes/Basic/Basic.mpc b/TAO/CIAO/tests/IDL3/Homes/Basic/Basic.mpc index 282bcf5ba40..10f6bb1a984 100644 --- a/TAO/CIAO/tests/IDL3/Homes/Basic/Basic.mpc +++ b/TAO/CIAO/tests/IDL3/Homes/Basic/Basic.mpc @@ -1,9 +1,9 @@ // $Id$ // This file is generated with "generate_component_mpc.pl -n Basic" -project(IDL3_Basic_stub): ciao_client { +project(Basic_stub): ciao_client { - sharedname = Homes_Basic_stub + sharedname = Basic_stub idlflags += -Wb,stub_export_macro=BASIC_STUB_Export -Wb,stub_export_include=Basic_stub_export.h -Wb,skel_export_macro=BASIC_SVNT_Export -Wb,skel_export_include=Basic_svnt_export.h dynamicflags = BASIC_STUB_BUILD_DLL diff --git a/TAO/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl b/TAO/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl index 7af66e50e8c..52600efbda6 100644 --- a/TAO/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl +++ b/TAO/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl @@ -18,11 +18,9 @@ module EquivReceptacles uses multiple foo_interface foo_recep; }; - /** interface bar { Foo::foo_recepConnections get_seq (); Foo::foo_recepConnection get_struct (); }; - */ }; diff --git a/TAO/CIAO/tests/RTCCM/DiffServ/Receiver/Receiver.mpc b/TAO/CIAO/tests/RTCCM/DiffServ/Receiver/Receiver.mpc index 6397c59a41e..a86285e2534 100644 --- a/TAO/CIAO/tests/RTCCM/DiffServ/Receiver/Receiver.mpc +++ b/TAO/CIAO/tests/RTCCM/DiffServ/Receiver/Receiver.mpc @@ -19,8 +19,8 @@ project(DiffServ_Receiver_stub): ciao_client { project(DiffServ_Receiver_svnt) : ciao_servant { after += DiffServ_svnt DiffServ_Receiver_stub - sharedname = DiffServ_Receiver_svnt - libs += DiffServ_Receiver_stub DiffServ_stub DiffServ_svnt + sharedname = DoffServ_Receiver_svnt + libs += Receiver_stub DiffServ_stub DiffServ_svnt idlflags += -Wb,export_macro=RECEIVER_SVNT_Export -Wb,export_include=Receiver_svnt_export.h dynamicflags = RECEIVER_SVNT_BUILD_DLL @@ -43,8 +43,8 @@ project(DiffServ_Receiver_svnt) : ciao_servant { project(DiffServ_Receiver_exec) : ciao_component { after += DiffServ_Receiver_svnt - sharedname = DiffServ_Receiver_exec - libs += DiffServ_Receiver_stub DiffServ_Receiver_svnt DiffServ_stub DiffServ_svnt + sharedname = DoffServ_Receiver_exec + libs += Receiver_stub Receiver_svnt DiffServ_stub DiffServ_svnt idlflags += -Wb,export_macro=RECEIVER_EXEC_Export -Wb,export_include=Receiver_exec_export.h dynamicflags = RECEIVER_EXEC_BUILD_DLL diff --git a/TAO/CIAO/tests/RTCCM/DiffServ/Sender/Sender_exec.cpp b/TAO/CIAO/tests/RTCCM/DiffServ/Sender/Sender_exec.cpp index c63a0d32d2d..b34e2f696b0 100644 --- a/TAO/CIAO/tests/RTCCM/DiffServ/Sender/Sender_exec.cpp +++ b/TAO/CIAO/tests/RTCCM/DiffServ/Sender/Sender_exec.cpp @@ -14,100 +14,74 @@ SenderImpl::SenderExec_i::SenderExec_i (void) int argc = 0; char **argv = 0; - ACE_DECLARE_NEW_CORBA_ENV; - - ACE_TRY - { - this->orb_ = - CORBA::ORB_init (argc, - argv, - "" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - CORBA::Object_var object = - this->orb_->resolve_initial_references ("RTORB" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - RTCORBA::RTORB_var rt_orb = - RTCORBA::RTORB::_narrow (object.in () - ACE_ENV_ARG_PARAMETER); - - ACE_TRY_CHECK; - - RTCORBA::TCPProtocolProperties_var normal_tcp_protocol_properties = - rt_orb->create_tcp_protocol_properties (ACE_DEFAULT_MAX_SOCKET_BUFSIZ, - ACE_DEFAULT_MAX_SOCKET_BUFSIZ, - 1, - 0, - 1, - 0); - - RTCORBA::TCPProtocolProperties_var diffserv_tcp_protocol_properties = - rt_orb->create_tcp_protocol_properties (ACE_DEFAULT_MAX_SOCKET_BUFSIZ, - ACE_DEFAULT_MAX_SOCKET_BUFSIZ, - 1, - 0, - 1, - 1); - - RTCORBA::ProtocolList protocols; - protocols.length (1); - protocols[0].protocol_type = 0; - protocols[0].transport_protocol_properties = - RTCORBA::ProtocolProperties::_duplicate (normal_tcp_protocol_properties.in ()); - protocols[0].orb_protocol_properties = - RTCORBA::ProtocolProperties::_nil (); - - this->normal_policy_list_.length (1); - this->normal_policy_list_[0] = - rt_orb->create_client_protocol_policy (protocols); - - protocols[0].transport_protocol_properties = - RTCORBA::ProtocolProperties::_duplicate (diffserv_tcp_protocol_properties.in ()); - - this->diffserv_policy_list_.length (1); - this->diffserv_policy_list_[0] = - rt_orb->create_client_protocol_policy (protocols); - - object = - this->orb_->resolve_initial_references ("ORBPolicyManager" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->policy_manager_ = - CORBA::PolicyManager::_narrow (object.in ()); - - object = - this->orb_->resolve_initial_references ("PolicyCurrent" - ACE_ENV_ARG_PARAMETER); - ACE_TRY_CHECK; - - this->policy_current_ = - CORBA::PolicyCurrent::_narrow (object.in ()); - - object = - this->orb_->resolve_initial_references ("NetworkPriorityMappingManager" - ACE_ENV_ARG_PARAMETER); - - ACE_TRY_CHECK; - - RTCORBA::NetworkPriorityMappingManager_var mapping_manager = - RTCORBA::NetworkPriorityMappingManager::_narrow (object.in ()); - - this->custom_network_priority_mapping_ = - new Custom_Network_Priority_Mapping; - - mapping_manager->mapping (this->custom_network_priority_mapping_); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "(%P|%t) Caught exception in SenderExec_i \n"); - } - ACE_ENDTRY; - ACE_CHECK; + this->orb_ = + CORBA::ORB_init (argc, + argv, + ""); + + CORBA::Object_var object = + this->orb_->resolve_initial_references ("RTORB"); + + RTCORBA::RTORB_var rt_orb = + RTCORBA::RTORB::_narrow (object.in ()); + + RTCORBA::TCPProtocolProperties_var normal_tcp_protocol_properties = + rt_orb->create_tcp_protocol_properties (ACE_DEFAULT_MAX_SOCKET_BUFSIZ, + ACE_DEFAULT_MAX_SOCKET_BUFSIZ, + 1, + 0, + 1, + 0); + + RTCORBA::TCPProtocolProperties_var diffserv_tcp_protocol_properties = + rt_orb->create_tcp_protocol_properties (ACE_DEFAULT_MAX_SOCKET_BUFSIZ, + ACE_DEFAULT_MAX_SOCKET_BUFSIZ, + 1, + 0, + 1, + 1); + + RTCORBA::ProtocolList protocols; + protocols.length (1); + protocols[0].protocol_type = 0; + protocols[0].transport_protocol_properties = + RTCORBA::ProtocolProperties::_duplicate (normal_tcp_protocol_properties.in ()); + protocols[0].orb_protocol_properties = + RTCORBA::ProtocolProperties::_nil (); + + this->normal_policy_list_.length (1); + this->normal_policy_list_[0] = + rt_orb->create_client_protocol_policy (protocols); + + protocols[0].transport_protocol_properties = + RTCORBA::ProtocolProperties::_duplicate (diffserv_tcp_protocol_properties.in ()); + + this->diffserv_policy_list_.length (1); + this->diffserv_policy_list_[0] = + rt_orb->create_client_protocol_policy (protocols); + + object = + this->orb_->resolve_initial_references ("ORBPolicyManager"); + + this->policy_manager_ = + CORBA::PolicyManager::_narrow (object.in ()); + + object = + this->orb_->resolve_initial_references ("PolicyCurrent"); + + this->policy_current_ = + CORBA::PolicyCurrent::_narrow (object.in ()); + + object = + this->orb_->resolve_initial_references ("NetworkPriorityMappingManager"); + + RTCORBA::NetworkPriorityMappingManager_var mapping_manager = + RTCORBA::NetworkPriorityMappingManager::_narrow (object.in ()); + + this->custom_network_priority_mapping_ = + new Custom_Network_Priority_Mapping; + + mapping_manager->mapping (this->custom_network_priority_mapping_); } void diff --git a/TAO/CIAO/tools/Daemon/README b/TAO/CIAO/tools/Daemon/README index 2c7404e6a2e..2d2a435d779 100644 --- a/TAO/CIAO/tools/Daemon/README +++ b/TAO/CIAO/tools/Daemon/README @@ -5,10 +5,10 @@ CIAO_Daemon: This directory contains CIAO's per-host daemon process implementation - CIAO_Daemon. It includes implementations for two major CCM -interfaces, namely, ComponentInstallation and ServerActivation. +interfaces, namely, ComponentImplementation and ServerActivation. ComponentInstallation interfaces must be available per-host so all ComponentServer running on the same host can query it to acquire -component implementations they need. Likewise, ServerActivator +component impolementations they need. Likewise, ServerActivator interacts with CCM's Assembly framework and is responsible to start up new ComponentServer processes on this host. diff --git a/TAO/CIAO/tools/XML_Helpers/Cascadable_DocHandler.h b/TAO/CIAO/tools/XML_Helpers/Cascadable_DocHandler.h index 25dd7736706..6bb7b0f1428 100644 --- a/TAO/CIAO/tools/XML_Helpers/Cascadable_DocHandler.h +++ b/TAO/CIAO/tools/XML_Helpers/Cascadable_DocHandler.h @@ -15,7 +15,6 @@ #include /**/ "ace/pre.h" #include "ACEXML/common/DefaultHandler.h" #include "ACEXML/common/XMLReader.h" -#include "XML_Helpers_Export.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once @@ -66,7 +65,7 @@ namespace CIAO * @sa ACEXML_DefaultHandler * @sa DocHandler_Context */ - class CIAO_XML_HELPERS_Export Cascadable_DocHandler : public ACEXML_DefaultHandler + class Cascadable_DocHandler : public ACEXML_DefaultHandler { public: /** @@ -203,7 +202,7 @@ namespace CIAO * * @brief This DocHandler ignore and skip over a specific tag. */ - class CIAO_XML_HELPERS_Export Skip_DocHandler : public Cascadable_DocHandler + class Skip_DocHandler : public Cascadable_DocHandler { public: /// Constructor. diff --git a/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc b/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc index edfc0116fe2..2fbba07841b 100644 --- a/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc +++ b/TAO/CIAO/tools/XML_Helpers/XMLHelpers.mpc @@ -7,8 +7,6 @@ project(XML_Helpers): taolib_with_idl, rtcorba, portableserver, acexml, ciao_cli -Wb,export_macro=CIAO_XML_HELPERS_Export dynamicflags += CIAO_XML_HELPERS_BUILD_DLL - libs += TAO_Security - IDL_Files { RTConfiguration.idl } @@ -24,8 +22,8 @@ project(XML_Helpers): taolib_with_idl, rtcorba, portableserver, acexml, ciao_cli } } -project(Helper_Test): rtcorba, portableserver, acexml, ciao_client , taoserver{ - libs += CIAO_XML_Helpers +project(Helper_Test): rtcorba, taoserver, acexml{ + libs += CIAO_XML_Helpers CIAO_Client TAO_IFR_Client after += XML_Helpers IDL_Files { |