2016-08-02 25 views
1

idl、corbaの新機能です。私は、そのメソッドの1つを使って配布したいJavaコードを持っています。このメソッドは、別のクラスのオブジェクトをパラメータとして必要とします。 idlを使用してこのシナリオを指定する方法を教えてください。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

オペレーションreceiveを使用してContract型のインターフェイスを宣言したのと同じように、ReceiverタイプのインターフェイスをtreatMessageオペレーションで宣言する必要があります。またはdo

+0

これは、インターフェイスとして宣言するとReceiverクラスにリモートアクセスを許可するという意味ではありませんか?はいの場合、私はこれが起こることを望まないでしょう。 – Doyin

+0

はい、Receiverをインターフェースとして宣言した瞬間、あなたはそれをリモートからアクセスすることができます。 –

+0

私はこの場合に起こることを望んでいません。 – Doyin