1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 #ifndef CALLBACK_I_H 6 #define CALLBACK_I_H 7 8 #include <IceUtil/Mutex.h> 9 #include <IceUtil/Monitor.h> 10 #include <Callback.h> 11 #include <vector> 12 13 class CallbackReceiverI : public ::Test::CallbackReceiver, public IceUtil::Monitor<IceUtil::Mutex> 14 { 15 public: 16 17 CallbackReceiverI(); 18 19 virtual void callback(const Ice::Current&); 20 virtual void callbackEx(const Ice::Current&); 21 virtual void concurrentCallback_async(const ::Test::AMD_CallbackReceiver_concurrentCallbackPtr&, 22 Ice::Int, 23 const ::Ice::Current&); 24 25 virtual void waitCallback(const ::Ice::Current&); 26 virtual void callbackWithPayload(const Ice::ByteSeq&, const ::Ice::Current&); 27 28 void callbackOK(int = 1); 29 void waitCallbackOK(); 30 void callbackWithPayloadOK(); 31 void notifyWaitCallback(); 32 void answerConcurrentCallbacks(unsigned int); 33 34 private: 35 36 int _callback; 37 bool _waitCallback; 38 bool _callbackWithPayload; 39 bool _finishWaitCallback; 40 std::vector<std::pair< ::Test::AMD_CallbackReceiver_concurrentCallbackPtr, Ice::Int> > _callbacks; 41 }; 42 typedef IceUtil::Handle<CallbackReceiverI> CallbackReceiverIPtr; 43 44 class CallbackI : public ::Test::Callback 45 { 46 public: 47 48 CallbackI(); 49 50 virtual void initiateCallback_async(const ::Test::AMD_Callback_initiateCallbackPtr&, 51 const ::Test::CallbackReceiverPrx&, const Ice::Current&); 52 virtual void initiateCallbackEx_async(const ::Test::AMD_Callback_initiateCallbackExPtr&, 53 const ::Test::CallbackReceiverPrx&, const Ice::Current&); 54 virtual void initiateConcurrentCallback_async(const ::Test::AMD_Callback_initiateConcurrentCallbackPtr&, 55 Ice::Int, 56 const ::Test::CallbackReceiverPrx&, 57 const ::Ice::Current&); 58 virtual void initiateWaitCallback_async(const ::Test::AMD_Callback_initiateWaitCallbackPtr&, 59 const ::Test::CallbackReceiverPrx&, 60 const ::Ice::Current&); 61 virtual void initiateCallbackWithPayload_async(const ::Test::AMD_Callback_initiateCallbackWithPayloadPtr&, 62 const ::Test::CallbackReceiverPrx&, 63 const ::Ice::Current&); 64 65 virtual void shutdown(const Ice::Current&); 66 }; 67 68 #endif 69