18eff7e9456f2b5d3cd04301810d633d64b27c0a
[profile/ivi/genivi/genivi-audio-manager.git] / AudioManagerDaemon / test / sockethandler / sockethandlerTest.h
1 /*
2  * sockethandlerTest.h
3  *
4  *  Created on: Dec 19, 2011
5  *      Author: christian
6  */
7
8 #ifndef SOCKETHANDLERTEST_H_
9 #define SOCKETHANDLERTEST_H_
10
11 #include <gtest/gtest.h>
12 #include <queue>
13 #include "SocketHandler.h"
14
15 namespace am {
16
17 class SamplePlugin
18 {
19 public:
20         enum sockType_e
21         {
22                 UNIX,
23                 INET
24         };
25         SamplePlugin(SocketHandler *mySocketHandler,sockType_e socketType);
26         virtual ~SamplePlugin() {};
27         void connectSocket(const pollfd pollfd,const sh_pollHandle_t handle, void* userData);
28         void receiveData(const pollfd pollfd,const sh_pollHandle_t handle, void* userData);
29         bool dispatchData(const sh_pollHandle_t handle, void* userData);
30         bool check(const sh_pollHandle_t handle, void* userData);
31         shPollFired_T<SamplePlugin> connectFiredCB;
32         shPollFired_T<SamplePlugin> receiveFiredCB;
33         shPollDispatch_T<SamplePlugin> sampleDispatchCB;
34         shPollCheck_T<SamplePlugin> sampleCheckCB;
35 private:
36         SocketHandler *mSocketHandler;
37         sh_pollHandle_t mConnecthandle,mReceiveHandle;
38         std::queue<std::string> msgList;
39 };
40
41
42 class timerCallBack
43 {
44 public:
45         timerCallBack(SocketHandler *SocketHandler);
46         virtual ~timerCallBack();
47         void timer1Callback(sh_timerHandle_t handle,void * userData);
48         void timer2Callback(sh_timerHandle_t handle,void * userData);
49         void timer3Callback(sh_timerHandle_t handle,void * userData);
50         void timer4Callback(sh_timerHandle_t handle,void * userData);
51         shTimerCallBack_T<timerCallBack> pTimer1Callback;
52         shTimerCallBack_T<timerCallBack> pTimer2Callback;
53         shTimerCallBack_T<timerCallBack> pTimer3Callback;
54         shTimerCallBack_T<timerCallBack> pTimer4Callback;
55         SocketHandler *mSocketHandler;
56 };
57
58 class sockethandlerTest: public ::testing::Test
59 {
60 public:
61         sockethandlerTest();
62         virtual ~sockethandlerTest();
63         void SetUp();
64         void TearDown();
65 };
66
67 } /* namespace am */
68 #endif /* SOCKETHANDLERTEST_H_ */