The relevant part of the declaration for TShapeListDispatcher appears below.
class TShapeListDispatcher: public MRemoteDispatcher, public MRemoteDispatcherNotifier {
public:
TShapeListDispatcher();
virtual ~TShapeListDispatcher();
void FwdAddRemoteInterest(TStream& args, TStream& results);
void FwdRemoveRemoteInterest(TStream& args, TStream& results);
void HandleAdoptShape(TStream& args, TStream& results);
void HandleOrphanShape(TStream& args, TStream& results);
/ ...
};
TShapeListDispatcher::TShapeListDispatcher()
: MRemoteDispatcher(), MRemoteDispatcherNotifier()
{
static RequestEntry notifierRequests[] = {
{MRemoteCallerNotifier::kAddRemoteInterest,
(RemoteFnPtr)&TShapeListDispatcher::FwdAddRemoteInterest},
{MRemoteCallerNotifier::kRemoveRemoteInterest,
(RemoteFnPtr)&TShapeListDispatcher::FwdRemoveRemoteInterest},
{MRemoteCaller::kUnknownRequest}
};
RegisterRequests(TStandardText("MRemoteDispatcherNotifier"),
MRemoteCallerNotifier::kLastRequest, notifierRequests);
static RequestEntry shapeListRequests[] = {
{TShapeListCaller::kAdoptShape,
(RemoteFnPtr)&TShapeListDispatcher::HandleAdoptShape},
{TShapeListCaller::kOrphanShape,
(RemoteFnPtr)&TShapeListDispatcher::HandleOrphanShape},
{MRemoteCaller::kUnknownRequest}
};
RegisterRequests(TStandardText("TShapeListDispatcher"),
TShapeListDispatcher::kLastRequest, shapeListRequests);
}
TShapeListDispatcher::FwdAddRemoteInterest(TStream& args, TStream& results)
{
AddRemoteInterest(args, results);
ReturnSuccess(results);
}
TShapeListDispatcher::FwdRemoveRemoteInterest(TStream& args, TStream& results)
{
RemoveRemoteInterest(args, results);
ReturnSuccess(results);
}