summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-02-05 18:35:17 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-02-05 18:35:17 +0000
commitf9d89482586e2d36082e85dde2ac4cc2c67075ac (patch)
treed8330463d8834586656e220641a170916cc121ef
parent9fd21dd2328245f12c23a607194e839e2318fb24 (diff)
downloadATCD-f9d89482586e2d36082e85dde2ac4cc2c67075ac.tar.gz
ChangeLogTag: Thu Feb 5 18:30:34 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
-rw-r--r--flat/CIAO/CIDLC/ExecImplHeaderGenerator.cpp15
-rw-r--r--flat/CIAO/CIDLC/ExecImplSourceGenerator.cpp22
-rw-r--r--flat/CIAO/CIDLC/ServantHeaderGenerator.cpp20
-rw-r--r--flat/CIAO/CIDLC/ServantSourceGenerator.cpp39
-rw-r--r--flat/CIAO/ChangeLog36
-rw-r--r--flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp13
-rw-r--r--flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h5
-rwxr-xr-xflat/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl2
-rw-r--r--flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp37
-rwxr-xr-xflat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl11
-rw-r--r--flat/CIAO/ciao/Containers/Session/Session_Container.cpp4
-rw-r--r--flat/CIAO/ciao/Containers/Session/Session_Container.h4
12 files changed, 161 insertions, 47 deletions
diff --git a/flat/CIAO/CIDLC/ExecImplHeaderGenerator.cpp b/flat/CIAO/CIDLC/ExecImplHeaderGenerator.cpp
index 552f9c1c3fc..cf303972972 100644
--- a/flat/CIAO/CIDLC/ExecImplHeaderGenerator.cpp
+++ b/flat/CIAO/CIDLC/ExecImplHeaderGenerator.cpp
@@ -322,6 +322,21 @@ namespace
<< t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_Context_var context_;" << endl
<< "};";
+
+ string name;
+
+ // We need to escape C++ keywords before flattening the name.
+ //
+ {
+ std::ostringstream ostr;
+ ostr.pword (name_printer_index) = os.pword (name_printer_index);
+ ostr << t.scoped_name ();
+ name = regex::perl_s (ostr.str (), "/::/_/");
+ }
+
+ os << "extern \"C\" " << ctx.export_macro ()
+ << " ::Components::EnterpriseComponent_ptr" << endl
+ << "create" << name << "_Impl (void);" << endl;
}
private:
diff --git a/flat/CIAO/CIDLC/ExecImplSourceGenerator.cpp b/flat/CIAO/CIDLC/ExecImplSourceGenerator.cpp
index f82a3e0a80a..0e68c342313 100644
--- a/flat/CIAO/CIDLC/ExecImplSourceGenerator.cpp
+++ b/flat/CIAO/CIDLC/ExecImplSourceGenerator.cpp
@@ -465,8 +465,28 @@ namespace
}
virtual void
- post (Type&)
+ post (Type &t)
{
+ string name;
+ {
+ std::ostringstream ostr;
+ ostr.pword (name_printer_index) = os.pword (name_printer_index);
+ ostr << t.scoped_name ();
+ name = regex::perl_s (ostr.str (), "/::/_/");
+ }
+
+ os << "extern \"C\" " << ctx.export_macro ()
+ << " ::Components::EnterpriseComponent_ptr" << endl
+ << "create" << name << "_Impl (void)" << endl
+ << "{"
+ << "::Components::EnterpriseComponent_ptr retval =" << endl
+ << " ::Components::EnterpriseComponent::_nil ();" << endl
+ << "ACE_NEW_RETURN (" << endl
+ << "retval," << endl
+ << t.name () << "_exec_i," << endl
+ << "::Components::EnterpriseComponent::_nil ());" << endl
+ << "return retval;"
+ << "}";
}
};
diff --git a/flat/CIAO/CIDLC/ServantHeaderGenerator.cpp b/flat/CIAO/CIDLC/ServantHeaderGenerator.cpp
index fd4ddc79095..1b1f52dd522 100644
--- a/flat/CIAO/CIDLC/ServantHeaderGenerator.cpp
+++ b/flat/CIAO/CIDLC/ServantHeaderGenerator.cpp
@@ -1072,10 +1072,28 @@ namespace
}
virtual void
- post (Type&)
+ post (Type &t)
{
// Component servant class closer.
os << "};";
+
+ std::string name;
+
+ // We need to escape C++ keywords before flattening the name.
+ //
+ {
+ std::ostringstream ostr;
+ ostr.pword (name_printer_index) = os.pword (name_printer_index);
+ ostr << t.scoped_name ();
+ name = regex::perl_s (ostr.str (), "/::/_/");
+ }
+
+ os << "extern \"C\" " << ctx.export_macro ()
+ << " ::PortableServer::Servant" << endl
+ << "create" << name << "_Servant (" << endl
+ << "::Components::EnterpriseComponent_ptr p," << endl
+ << "CIAO::Container_ptr c," << endl
+ << "const char *ins_name);" << endl;
}
};
diff --git a/flat/CIAO/CIDLC/ServantSourceGenerator.cpp b/flat/CIAO/CIDLC/ServantSourceGenerator.cpp
index 96b4d1510d9..1fc6aee6ecb 100644
--- a/flat/CIAO/CIDLC/ServantSourceGenerator.cpp
+++ b/flat/CIAO/CIDLC/ServantSourceGenerator.cpp
@@ -3535,6 +3535,45 @@ namespace
os << "}";
}
+
+ virtual void
+ post (Type& t)
+ {
+ // We need to escape C++ keywords before flattening the name.
+ //
+ string name;
+ {
+ std::ostringstream ostr;
+ ostr.pword (name_printer_index) = os.pword (name_printer_index);
+ ostr << t.scoped_name ();
+ name = regex::perl_s (ostr.str (), "/::/_/");
+ }
+
+ os << "extern \"C\" " << ctx.export_macro ()
+ << " ::PortableServer::Servant"
+ << endl
+ << "create" << name << "_Servant (" << endl
+ << "::Components::EnterpriseComponent_ptr p," << endl
+ << "::CIAO::Container_ptr c," << endl
+ << "const char *ins_name)" << endl
+ << "{"
+ << t.scoped_name ().scope_name () << "::CCM_"
+ << t.name () << "_var x =" << endl
+ << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << "::_narrow (p);" << endl
+ << "if (::CORBA::is_nil (x.in ()))" << endl
+ << "{"
+ << "return 0;" << endl
+ << "}"
+ << "::PortableServer::Servant retval = 0;"
+ << "ACE_NEW_RETURN(retval, " << endl
+ << t.name () << "_Servant (x.in ()," << endl
+ << "::Components::CCMHome::_nil ()," << endl
+ << "ins_name, 0, c)," << endl
+ << "0);" << endl
+ << "return retval;" << endl
+ << "}";
+ }
};
struct HomeEmitter : Traversal::Home, EmitterBase
diff --git a/flat/CIAO/ChangeLog b/flat/CIAO/ChangeLog
index 2b3ec7d99d6..17bfe810a54 100644
--- a/flat/CIAO/ChangeLog
+++ b/flat/CIAO/ChangeLog
@@ -1,10 +1,40 @@
+Thu Feb 5 18:30:34 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ExecImplSourceGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Added component factory functions, similar to those already generated for
+ Homes.
+
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.h:
+ * DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp:
+
+ Added in generated factory functions from above.
+
+ * DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl:
+ * DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl:
+
+ Added ability to run a single plan by passing it as a command line
+ arguments.
+
+ * DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp:
+
+ Test for unhomed components.
+
+ * ciao/Containers/Session/Session_Container.h:
+ * ciao/Containers/Session/Session_Container.cpp:
+
+ Fixes for unhomed components.
+
Thu Feb 5 16:03:59 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
* DAnCE/NodeApplication/NodeApplication_Impl.cpp:
* ciao/ComponentServer/CIAO_Container_Impl.cpp:
-
- First cut implementation of unhomed component deployment. Untested as yet.
-
+
+ First cut implementation of unhomed component deployment. Untested as yet.
+
Thu Feb 5 14:40:18 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
* DAnCE/NodeApplication/NodeApplication_Impl.cpp:
diff --git a/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp b/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
index 449981e53ec..15ee5ee2dbb 100644
--- a/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
+++ b/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.cpp
@@ -94,6 +94,19 @@ namespace CIDL_SimpleNull_Impl
// Your code here.
}
+ extern "C" SIMPLENULL_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_SimpleNull_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (retval,
+ SimpleNull_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+
//==================================================================
// Home Executor Implementation Class: SimpleNullHome_exec_i
//==================================================================
diff --git a/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h b/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
index 00771543fb3..e5887e7afdc 100644
--- a/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
+++ b/flat/CIAO/DAnCE/tests/CIAO/Components/SimpleNull_exec.h
@@ -65,7 +65,10 @@ namespace CIDL_SimpleNull_Impl
private:
::Simple::CCM_SimpleNull_Context_var context_;
};
-
+
+ extern "C" SIMPLENULL_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Simple_SimpleNull_Impl (void);
+
class SIMPLENULL_EXEC_Export SimpleNullHome_exec_i
: public virtual SimpleNullHome_Exec,
public virtual ::CORBA::LocalObject
diff --git a/flat/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl b/flat/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
index b357e74d537..b738049952b 100755
--- a/flat/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
+++ b/flat/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl
@@ -92,8 +92,6 @@ sub run_node_daemons {
return 0;
}
-print "$#ARGV";
-
if ($#ARGV == -1)
{
opendir(DIR, ".");
diff --git a/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp b/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
index 5632d219c48..e31930188d2 100644
--- a/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
+++ b/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/SimpleComponentUnhomed.cdp
@@ -9,21 +9,20 @@
<!-- Implementations declarations -->
<!-- Server Dance implementation-->
- <!-- Home implementation -->
- <implementation xmi:id="SimpleNullHomeImplementation">
- <name>SimpleNullHomeImplementation</name>
+ <implementation xmi:id="SimpleNullComponentImplementation">
+ <name>SimpleNullComponentImplementation</name>
<source/>
<artifact xmi:idref="SimpleNull_ExecArtifact" />
<artifact xmi:idref="SimpleNull_SvntArtifact" />
<execParameter>
<!-- entrypoint as exec parameter (see ยง10.6.1) -->
- <name>home factory</name>
+ <name>component factory</name>
<value>
<type>
<kind>tk_string</kind>
</type>
<value>
- <string>create_Simple_SimpleNullHome_Impl</string>
+ <string>create_Simple_SimpleNull_Impl</string>
</value>
</value>
</execParameter>
@@ -34,7 +33,7 @@
<kind>tk_string</kind>
</type>
<value>
- <string>create_Simple_SimpleNullHome_Servant</string>
+ <string>create_Simple_SimpleNull_Servant</string>
</value>
</value>
</execParameter>
@@ -62,38 +61,12 @@
</execParameter>
</implementation>
- <implementation xmi:id="SimpleNullComponentImplementation">
- <name>SimpleNullComponentImplementation</name>
- <source/>
- <artifact xmi:idref="SimpleNull_ExecArtifact" />
- <artifact xmi:idref="SimpleNull_SvntArtifact" />
- </implementation>
-
- <instance xmi:id="SimpleNullHomeInstance">
- <name>SimpleNullHome</name>
- <node>Node</node>
- <!-- hostname -->
- <source/>
- <implementation xmi:idref="SimpleNullHomeImplementation" />
- </instance>
-
<instance xmi:id="SimpleNullComponentInstance">
<name>SimpleNullComponent</name>
<node>Node</node>
<!-- hostname -->
<source/>
<implementation xmi:idref="SimpleNullComponentImplementation" />
- <configProperty>
- <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>SimpleNullHome</string>
- </value>
- </value>
- </configProperty>
</instance>
<!-- Artifacts declarations -->
diff --git a/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl b/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
index 2ac8a0613bb..27b9f7987e8 100755
--- a/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
+++ b/flat/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl
@@ -69,9 +69,14 @@ sub run_node_daemons {
return 0;
}
-opendir(DIR, ".");
-@files = grep(/\.cdp$/,readdir(DIR));
-closedir(DIR);
+if ($#ARGV == -1)
+{
+ opendir(DIR, ".");
+ @files = grep(/\.cdp$/,readdir(DIR));
+ closedir(DIR);
+} else {
+ @files = @ARGV;
+}
foreach $file (@files) {
delete_ior_files ();
diff --git a/flat/CIAO/ciao/Containers/Session/Session_Container.cpp b/flat/CIAO/ciao/Containers/Session/Session_Container.cpp
index 1cfceb44083..99ff4d8fb79 100644
--- a/flat/CIAO/ciao/Containers/Session/Session_Container.cpp
+++ b/flat/CIAO/ciao/Containers/Session/Session_Container.cpp
@@ -628,8 +628,8 @@ namespace CIAO
CIAO_DEBUG ((LM_TRACE, CLINFO
"Session_Container::install_component - Loading component servant\n"));
PortableServer::Servant component_servant = screator (component_executor.in (),
- name,
- this);
+ this,
+ name);
if (component_servant == 0)
{
diff --git a/flat/CIAO/ciao/Containers/Session/Session_Container.h b/flat/CIAO/ciao/Containers/Session/Session_Container.h
index 00bd0f39ac4..93e8a6dc57e 100644
--- a/flat/CIAO/ciao/Containers/Session/Session_Container.h
+++ b/flat/CIAO/ciao/Containers/Session/Session_Container.h
@@ -44,8 +44,8 @@ namespace CIAO
const char *ins_name);
typedef ::Components::EnterpriseComponent_ptr (*ComponentFactory) (void);
typedef ::PortableServer::Servant (*ComponentServantFactory) (::Components::EnterpriseComponent_ptr,
- const char *,
- ::CIAO::Container_ptr );
+ ::CIAO::Container_ptr,
+ const char *);
typedef ACE_Hash_Map_Manager_Ex<ACE_CString,
HomeFactory,