summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/Server_init.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/ciao/Server_init.cpp')
-rw-r--r--TAO/CIAO/ciao/Server_init.cpp271
1 files changed, 44 insertions, 227 deletions
diff --git a/TAO/CIAO/ciao/Server_init.cpp b/TAO/CIAO/ciao/Server_init.cpp
index 27c4d035cdc..43eaabcd598 100644
--- a/TAO/CIAO/ciao/Server_init.cpp
+++ b/TAO/CIAO/ciao/Server_init.cpp
@@ -6,235 +6,52 @@
#include "Cookies.h"
#include "ace/OS_NS_stdio.h"
-namespace CIAO
-{
- int
- Server_init (CORBA::ORB_ptr o)
- {
- CIAO_REGISTER_VALUE_FACTORY (o, CIAO::Map_Key_Cookie_init,
- Components::Cookie);
- CIAO_REGISTER_VALUE_FACTORY (o, CIAO::Map_Key_Cookie_init,
- CIAO::Cookie);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::PortDescription_init,
- Components::PortDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::FacetDescription_init,
- Components::FacetDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::ConnectionDescription_init,
- Components::ConnectionDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::ReceptacleDescription_init,
- Components::ReceptacleDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::ConsumerDescription_init,
- Components::ConsumerDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::EmitterDescription_init,
- Components::EmitterDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::SubscriberDescription_init,
- Components::SubscriberDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::PublisherDescription_init,
- Components::PublisherDescription);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::ConfigValue_init,
- Components::ConfigValue);
- CIAO_REGISTER_VALUE_FACTORY (o, Components::ComponentPortDescription_init,
- Components::ComponentPortDescription);
- return 0;
- }
-
- namespace Utility
- {
- int write_IOR (const char *pathname,
- const char *ior)
- {
- FILE* ior_output_file_ =
- ACE_OS::fopen (pathname, "w");
-
- if (ior_output_file_)
- {
- ACE_OS::fprintf (ior_output_file_,
- "%s",
- ior);
- ACE_OS::fclose (ior_output_file_);
- return 0;
- }
-
- return -1;
- }
-
- // --------------------------------------------------------------
- // Implementation of NameUtility class
- // --------------------------------------------------------------
-
- void NameUtility::CreateContextPath (const CosNaming::NamingContextExt_ptr nc,
- const CosNaming::Name& name)
- {
- bool isNotFound = false;
- CORBA::ULong lengthMissing = 0;
- CORBA::ULong OriginalLength = name.length();
- CosNaming::Name tmpName;
-
- CosNaming::NamingContext_var tmpCtxVar;
- ACE_TRY
- {
- tmpCtxVar = nc->bind_new_context(name);
- ACE_DEBUG ((LM_DEBUG, "Bound Context.\n\n"));
- }
- ACE_CATCH (CosNaming::NamingContext::AlreadyBound, ex)
- {
- ACE_DEBUG ((LM_DEBUG, "Context Already Bound.\n\n"));
- }
- ACE_CATCH (CosNaming::NamingContext::NotFound, nf)
- {
- ACE_DEBUG ((LM_DEBUG, "Context not found.\n\n"));
- isNotFound = true;
- lengthMissing = nf.rest_of_name.length();
- }
- ACE_ENDTRY;
-
- if (lengthMissing == name.length())
- {
- ACE_DEBUG ((LM_ERROR, "Null name length.\n\n"));
- }
-
- if (isNotFound)
- {
- for (CORBA::ULong l = OriginalLength-lengthMissing;
- l < OriginalLength;
- l++)
- {
- tmpName.length(l+1);
- for (CORBA::ULong i=0; i <= l; i++)
- {
- tmpName[i] = name[i];
-
- CORBA::String_var newSCName = nc->to_string(tmpName);
- ACE_DEBUG ((LM_DEBUG, "What's left of the name:%s\n",
- newSCName.in ()));
- }
-
- tmpCtxVar = nc->bind_new_context(tmpName);
- ACE_DEBUG ((LM_DEBUG, "Bound New Context.\n"));
- }
- }
- }
-
- //---------------------------------------------------------------------------------------------
- void NameUtility::BindObjectPath (const CosNaming::NamingContextExt_ptr nc,
- const CosNaming::Name& name,
- const CORBA::Object_var obj)
- {
- CosNaming::Name tmpName;
- CORBA::String_var newSCName = nc->to_string(name);
- ACE_DEBUG ((LM_DEBUG, "The name is: %s\n", newSCName.in ()));
-
- ACE_TRY
- {
- nc->rebind(name, obj);
- }
-
- ACE_CATCH (CosNaming::NamingContext::NotFound, ex )
- {
- ACE_DEBUG ((LM_DEBUG, "Name not found, doing new bind.\n"));
- nc->bind(name, obj);
- }
- ACE_ENDTRY;
- }
-
- //---------------------------------------------------------------------------------------------
- CosNaming::BindingList *
- NameUtility::listBindings (const CosNaming::NamingContext_ptr nc,
- const CosNaming::Name& name,
- CORBA::ULong max_list_size)
- {
- CosNaming::BindingList_var basicListV;
- CosNaming::BindingIterator_var bIterV;
-
- CORBA::Object_var objV;
- CosNaming::NamingContext_var tmpContextV;
-
- if (name.length()==0)
- {
- tmpContextV = CosNaming::NamingContext::_duplicate(nc);
- }
- else
- {
- objV = nc->resolve(name);
- tmpContextV = CosNaming::NamingContext::_narrow(objV.in ());
- }
- if (CORBA::is_nil(tmpContextV.in ()))
- {
- ACE_DEBUG ((LM_ERROR, "listBindings: Nil context.\n"));
- return 0;
- }
-
- tmpContextV->list(max_list_size, basicListV.out(), bIterV.out());
-
- CORBA::Long max_remaining = max_list_size - basicListV->length();
- CORBA::Boolean moreBindings = !CORBA::is_nil(bIterV.in ());
-
- if (moreBindings)
- {
- while (moreBindings && (max_remaining > 0) )
- {
- CosNaming::BindingList_var tmpListV;
-
- moreBindings = bIterV->next_n(max_remaining, tmpListV.out());
-
- //Append 'tmpListV' to 'basicListV'
- CORBA::ULong basicListLen = basicListV->length();
- basicListV->length(basicListLen+tmpListV->length());
- for (CORBA::ULong i=0; i < tmpListV->length(); i++)
- {
- (*basicListV)[i+basicListLen] = (*tmpListV)[i];
- }
-
- //Re-calculate 'max_remaining'
- max_remaining = max_list_size - basicListV->length();
- }
- bIterV->destroy();
- }
-
- return basicListV._retn();
- }
+int
+CIAO::Server_init (CORBA::ORB_ptr o)
+{
+ CIAO_REGISTER_VALUE_FACTORY (o, CIAO::Map_Key_Cookie_init,
+ Components::Cookie);
+ CIAO_REGISTER_VALUE_FACTORY (o, CIAO::Map_Key_Cookie_init,
+ CIAO::Cookie);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::PortDescription_init,
+ Components::PortDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::FacetDescription_init,
+ Components::FacetDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ConnectionDescription_init,
+ Components::ConnectionDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ReceptacleDescription_init,
+ Components::ReceptacleDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ConsumerDescription_init,
+ Components::ConsumerDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::EmitterDescription_init,
+ Components::EmitterDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::SubscriberDescription_init,
+ Components::SubscriberDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::PublisherDescription_init,
+ Components::PublisherDescription);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ConfigValue_init,
+ Components::ConfigValue);
+ CIAO_REGISTER_VALUE_FACTORY (o, Components::ComponentPortDescription_init,
+ Components::ComponentPortDescription);
+ return 0;
+}
+
+int
+CIAO::Utility::write_IOR (const char *pathname,
+ const char *ior)
+{
+ FILE* ior_output_file_ =
+ ACE_OS::fopen (pathname, "w");
- //---------------------------------------------------------------------------------------------
- void
- NameUtility::recursiveUnbind (const CosNaming::NamingContext_ptr nc,
- const CosNaming::Name& name)
+ if (ior_output_file_)
{
- CORBA::Object_var objV;
- CosNaming::NamingContext_var tmpContextV;
-
- objV = nc->resolve(name);
- tmpContextV = CosNaming::NamingContext::_narrow(objV.in ());
- if (CORBA::is_nil(tmpContextV.in ()))
- {
- ACE_DEBUG ((LM_ERROR, "recursiveUnbind: Nil context reference.\n"));
- return;
- }
-
- CosNaming::BindingList_var blV;
- CosNaming::Name tmpName;
- tmpName.length(0);
-
- blV = NameUtility::listBindings(tmpContextV.in(),
- tmpName,
- 10000); // 'max_list_size'
-
- for (CORBA::ULong i=0; i<blV->length(); i++)
- {
- tmpName = (*blV)[i].binding_name;
-
- if ((*blV)[i].binding_type==CosNaming::nobject)
- {
- tmpContextV->unbind(tmpName);
- }
- else if ( (*blV)[i].binding_type==CosNaming::ncontext)
- {
- NameUtility::recursiveUnbind(tmpContextV.in(), tmpName);
- }
- }
- nc->unbind(name);
- tmpContextV->destroy();
+ ACE_OS::fprintf (ior_output_file_,
+ "%s",
+ ior);
+ ACE_OS::fclose (ior_output_file_);
+ return 0;
}
- } /* namespace Utility */
-} /* namespace CIAO */
+ return -1;
+}