18.RMI 메서드의 인자의 속성

Edit

4. Remote Method Invocation (원격 메서드 호출)의 메서드 인자에는 속성 정의가 들어갑니다. 각 파라메터마다 한개 이상을 쓰실 수 있습니다.

in

입력 형식의 인자임을 의미합니다. 현재 버전은 in만을 지원하며 out을 지원하지 않습니다. 반드시 쓰셔야 합니다.

byval

인자가 by value로 전달됨을 의미합니다. 이것이 사용되면 C++ proxy 및 stub에서 인자 형식에 & 부호가 생략됩니다. int나 float 등 인자 형식에 크기가 작은 형식에 적합합니다.

mutable

인자가 const type이 아님을 의미합니다. 이것이 사용되면 C++ proxy 및 stub에서 인자 형식에 const 키워드가 생략됩니다. RMI stub에서 받은 인자의 값을 변경하고자 할 때 적합합니다.

메서드 인자의 속성은 아래와 같이 정의할 수 있습니다. 예를 들어, 다음과 같이 RMI 메서드를 선언하면

Foo([in,byval] int a, [in,mutable] String b, [in] float c);

다음과 같은 C++ code가 생성됩니다.

Foo(HostID, RmiContext&, int a, String& b, const float& c);

대부분의 경우 RMI 메서드의 인자의 속성은 [in]만을 사용합니다.