Index: demo/hello/orbix63/server.cpp =================================================================== --- demo/hello/orbix63/server.cpp (revision 102564) +++ demo/hello/orbix63/server.cpp (working copy) @@ -26,10 +26,10 @@ class HelloImpl : virtual public POA_demoidl::hello::IHello { private: scs::core::ComponentContext* componentContext; + public: HelloImpl(scs::core::ComponentContext* componentContext) { this->componentContext = componentContext; } - public: static void* instantiate(scs::core::ComponentContext* componentContext) { return (void*) new HelloImpl(componentContext); } @@ -95,6 +95,9 @@ componentId.patch_version = '0'; componentId.platform_spec = "nenhuma"; +/* Contexto do componente compartilhado entre todas as facetas */ + componentContext = new scs::core::ComponentContext(componentBuilder, &componentId); + /* Descrição das facetas. */ std::list extFacets; scs::core::ExtendedFacetDescription helloDesc; @@ -103,8 +106,13 @@ helloDesc.instantiator = HelloImpl::instantiate; helloDesc.destructor = HelloImpl::destruct; extFacets.push_back(helloDesc); - componentContext = componentBuilder->newComponent(extFacets, componentId); +/* Instanciacao das facetas manualmente (evita um problema na Solaris 10 SPARC) */ + std::list facetInstances; + facetInstances.push_back((PortableServer::ServantBase*) new HelloImpl(componentContext)); + + componentContext = componentBuilder->newComponent(extFacets, componentId, &facetInstances, componentContext); + openbus::services::PropertyListHelper* propertyListHelper = \ new openbus::services::PropertyListHelper();