2016-08-02 5 views
1

IDL, CORBA를 처음 사용합니다. 그 중 하나를 사용하여 배포하려는 Java 코드가 있고이 메서드는 다른 클래스의 개체를 매개 변수로 필요로합니다. idl을 사용하여이 시나리오를 지정하는 방법을 알려주십시오. 이것은 내가 내 IDLIDL을 사용하여 매개 변수로 객체를 전달하는 방법

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

내가 점점 계속 내가 idlj에 대해이 작업을 실행할 때마다로 정의 뭘하려

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

"수신"선언되지 않은 유형입니다. 어떻게 해결할 수 있습니까?

감사합니다.

답변

1

receive receive 조작으로 Contract 유형의 인터페이스를 선언 한 것처럼 수신자 유형의 인터페이스를 treatMessage 조작으로 선언해야합니다. 또는 do

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

인터페이스로 선언하면 Receiver 클래스에 원격 액세스 권한을 부여한다는 의미가 아닙니까? 그렇다면이 문제가 발생하지 않기를 바랍니다. – Doyin

+0

예, Receiver를 인터페이스로 선언하면 원격으로 액세스 할 수 있습니다. –

+0

나는이 경우에 그렇게되기를 원하지 않을 것이다. – Doyin

관련 문제