Merge branch 'v3.10/topic/misc' into linux-linaro-lsk
[firefly-linux-kernel-4.4.55.git] / tools / gator / daemon / OlySocket.h
1 /**
2  * Copyright (C) ARM Limited 2010-2014. All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 #ifndef __OLY_SOCKET_H__
10 #define __OLY_SOCKET_H__
11
12 class OlySocket {
13 public:
14   OlySocket(int port, const char* hostname);
15   OlySocket(int socketID);
16 #ifndef WIN32
17   OlySocket(const char* path);
18 #endif
19   ~OlySocket();
20
21   void closeSocket();
22   void shutdownConnection();
23   void send(const char* buffer, int size);
24   int receive(char* buffer, int size);
25   int receiveNBytes(char* buffer, int size);
26   int receiveString(char* buffer, int size);
27
28   bool isValid() const { return mSocketID >= 0; }
29
30 private:
31   int mSocketID;
32
33   void createClientSocket(const char* hostname, int port);
34 };
35
36 class OlyServerSocket {
37 public:
38   OlyServerSocket(int port);
39 #ifndef WIN32
40   OlyServerSocket(const char* path);
41 #endif
42   ~OlyServerSocket();
43
44   int acceptConnection();
45   void closeServerSocket();
46
47 private:
48   int mFDServer;
49
50   void createServerSocket(int port);
51 };
52
53 #endif //__OLY_SOCKET_H__