longwenbiao 发表于 2010-4-16 09:29:00

----问个ACE的实现问题

    服务端的功能函数我已经写好了,但我不知道服务端的main函数怎么写?

      服务端有三个类,因此要在main函数中实现三个servant,还有,我这里面要用到NameService,因此,main函数中要用到Cosnaming.请高手能帮我举个列子:

    就举这个*.idl中的列子吧,呵呵(把服务端和客户端的main都写出来,还有要用到NameService):
    //
module Test
{
/// A very simple interface
interface One
{
    /// Return a simple string
    string get_string ();
};
interface Two
    {
      string get_string ();
    };
    interface Three
    {
      string get_string ();
    };
};

谢谢了,也可以直接找我联系,QQ:345931986

winston 发表于 2010-4-16 10:15:30

可以按照普通console工程对待,直接用ACE_TMAIN代替原来的main()

longwenbiao 发表于 2010-4-16 10:39:10

回复 #2 winston 的帖子

呵呵,能给个具体的实现不?我老是弄不起来,反正这个列子也简单啊。哈哈

evangel 发表于 2010-4-16 11:03:22

回复 #1 longwenbiao 的帖子

CORBA::ORB_var orb = CORBA::ORB_init(argc,argv,"");
CORBA::Object_var poa_object = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(poa_object.in());
PortableServer::POAManager_var poa_manager = poa->the_POAManager();
poa_manager->activate();

//Get the Naming Context reference
CORBA::Object_var naming_context_object= orb->resolve_initial_references("NameService");
CosNaming::NamingContext_var naming_context = CosNaming::NamingContext::_narrow(naming_context_object.in());

Servant servant();               
poa->activate_object(&servant);
CORBA::Object_var objservant = servant._this();
CosNaming::Name nameservant;
nameservant.length (1);
nameservant.id = CORBA::string_dup ("servant");
// call rebind instead bind
naming_context->rebind(servant, objservant.in());

longwenbiao 发表于 2010-4-16 11:15:46

回复 #4 evangel 的帖子

呵呵,你跑题了?你可以动手试试,当你servant多了,就出问题了,一个没问题。
你可以把我这个列子实现下吗?谢谢了

longwenbiao 发表于 2010-4-16 14:45:50

回复 #2 winston 的帖子

呵呵,高手,能帮下忙不?

evangel 发表于 2010-4-16 16:25:06

从Servant的定义得知每个Servant都可以由IOR唯一确定,也就是说IOR和Servant是一对一的关系,Naming Service提供的只是助记符解析服务。

longwenbiao 发表于 2010-4-16 16:28:10

回复 #7 evangel 的帖子

那是不是CosNaming也和Servant一一对应?

evangel 发表于 2010-4-16 17:01:14

回复 #8 longwenbiao 的帖子

Naming Service相当于一个功能函数,你可以随时调用,但是你启动S端能有几个IOR?

longwenbiao 发表于 2010-4-19 16:37:53

回复 #9 evangel 的帖子

呵呵,问题已经解决,老大说的对,servant和IOR一一对应,需要几个servant,就建立几个CosNaming.:lol
页: [1]
查看完整版本: ----问个ACE的实现问题