如何使用IDL将对象作为参数传递

时间:2016-08-02 12:13:52

标签: java corba idl

我是idl,corba的新手。我有一个我想通过其中一个方法分发的java代码,这个方法需要另一个类的对象作为参数。请问如何使用idl指定此方案。

public void receive(Receiver rec, Message msg) {
    rec.treatMessage(msg);
}

这是我尝试定义为我的idl

module talk {
  struct Message{
    string msg;
    double time;
  };
  typedef Received Receiver;
  interface Contract{
    void receive(in Receiver rec, in Message msg);
  };
};

每次我对idlj运行时,我都会收到“已接收”是未声明的类型。 请问我该如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:1)

您必须使用操作treatMessage声明Receiver类型的接口,就像您声明具有操作接收的Contract类型的接口一样。或者做

module talk {
  struct Message{
    string msg;
    double time;
  };
  interface Receiver{
    void receive(in Message msg);
  };
};