TAO教程系列之二. 简介——非常简单的服务端

2.简介——非常简单的服务端

既然我们已经知道如何实现一个简单的客户端,那么现在我们得实现一个服务端来测试它。我们必须提供Stock和Stock_Factory这两个接口的实现,并且创建可执行的应用程序把这两个接口的实现组合在一起。

实现Stock (股票)接口

为了简单起见,让我们用固定的价格来实现Stock对象。构造函数将接收所有的参数:

class Quoter_Stock_i : public POA_Quoter::Stock {
public:
  Quoter_Stock_i (const char *symbol,
                  const char *full_name,
                  CORBA::Double price);
private:
  std::string symbol_;
  std::string full_name_;
  CORBA::Double price_;
};

在一个服务器中,用编程语言的数据和函数来实现和表示CORBA对象和函数。这些用于实现和表示CORBA对象的编程实体称为伺服代码(servants)。对象适配器(Object Adapters )把CORBA对象的世界和编程语言的伺服代码连接在一起,还提供CORBA对象的创建服务和它们的对象引用以及将请求分发到适当的伺服代码之上。

请注意基类的名称。TAO实现了CORBA 2.2版本的规范,这个规范包含了Portable Object Adapter(因此前缀为POA)。这个新的对象适配器更正了以前版本的CORBA规范的许多问题,之前使用的的对象适配器于是被称为Basic Object Adapter。不幸的事,该规范含混不清,导致了不兼容的实现。由于遵循CORBA 2.2规范,基于POA的代码几乎是完全可移植的,不可移植的地方仅仅是生成的头文件的名称和其它细微的地方。这些问题很容易通过使用帮助类中进行包装来解决,大多数情况下,生成的文件名可以通过控制IDL编译选项的方式得以处理。

一个服务端程序可能包含了多个POA实例,但所有的服务端程序至少有一个称为RootPOA的POA。

我们必须实现的操作和属性。

class Quoter_Stock_i : public POA_Quoter::Stock {
public:
  // some details omitted
  char *symbol ();
  char *full_name ();
  CORBA::Double price ();
};
// In the .cpp file:
char *
Quoter_Stock_i::symbol ()
{
  return CORBA::string_dup (this->symbo

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值