PIDL 파일로 컴파일하면 송신을 담당하는 코드, 즉 Proxy와 수신을 담당하는 코드인 Stub이 만들어집니다. 각각 클래스 형태입니다.
global CalcC2S 1000 { RequestAdd([in] int a, [in] int b); } global CalcS2C 2000 { ResponseAdd([in] int sum); }
이 PIDL 파일을 컴파일할 때 PIDL 컴파일러가 생성하는 클래스는 다음과 같습니다.
// 클라이언트 → 서버 보내는 측 CalcC2S::Proxy // 클라이언트 → 서버 받는 측 CalcC2S::Stub CalcC2S::StubFunctional // 서버 → 클라이언트 보내는 측 CalcS2C::Proxy // 서버 → 클라이언트 받는 측 CalcS2C::Stub CalcS2C::StubFunctional
앞서 global 구문 안에 네임스페이스를 입력했죠? 이것이 생성된 Proxy와 Stub 클래스의 네임스페이스가 됩니다. C++에서는 Stub 클래스가 두 종류 나옵니다. 편한 것을 쓰면 됩니다.