blob: 20c67cc695e1733036b38e2610e944ef99e5a6fa [file] [log] [blame]
Jon Medhurstaaf37a32013-06-11 12:10:56 +01001/**
Jon Medhurst15ce78d2014-04-10 09:02:02 +01002 * Copyright (C) ARM Limited 2010-2014. All rights reserved.
Jon Medhurstaaf37a32013-06-11 12:10:56 +01003 *
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
Jon Medhurste31266f2014-08-04 15:47:44 +010012#include <stddef.h>
13
Jon Medhurstaaf37a32013-06-11 12:10:56 +010014class OlySocket {
15public:
Jon Medhurst15ce78d2014-04-10 09:02:02 +010016#ifndef WIN32
Jon Medhurste31266f2014-08-04 15:47:44 +010017 static int connect(const char* path, const size_t pathSize);
Jon Medhurst15ce78d2014-04-10 09:02:02 +010018#endif
Jon Medhurste31266f2014-08-04 15:47:44 +010019
20 OlySocket(int socketID);
Jon Medhurstaaf37a32013-06-11 12:10:56 +010021 ~OlySocket();
Jon Medhurst15ce78d2014-04-10 09:02:02 +010022
Jon Medhurstaaf37a32013-06-11 12:10:56 +010023 void closeSocket();
Jon Medhurstaaf37a32013-06-11 12:10:56 +010024 void shutdownConnection();
Jon Medhurst15ce78d2014-04-10 09:02:02 +010025 void send(const char* buffer, int size);
Jon Medhurstaaf37a32013-06-11 12:10:56 +010026 int receive(char* buffer, int size);
27 int receiveNBytes(char* buffer, int size);
28 int receiveString(char* buffer, int size);
Jon Medhurst15ce78d2014-04-10 09:02:02 +010029
30 bool isValid() const { return mSocketID >= 0; }
31
Jon Medhurstaaf37a32013-06-11 12:10:56 +010032private:
Jon Medhurst15ce78d2014-04-10 09:02:02 +010033 int mSocketID;
Jon Medhurst15ce78d2014-04-10 09:02:02 +010034};
35
36class OlyServerSocket {
37public:
38 OlyServerSocket(int port);
39#ifndef WIN32
Jon Medhurste31266f2014-08-04 15:47:44 +010040 OlyServerSocket(const char* path, const size_t pathSize);
Jon Medhurst15ce78d2014-04-10 09:02:02 +010041#endif
42 ~OlyServerSocket();
43
44 int acceptConnection();
45 void closeServerSocket();
46
Jon Medhurste31266f2014-08-04 15:47:44 +010047 int getFd() { return mFDServer; }
48
Jon Medhurst15ce78d2014-04-10 09:02:02 +010049private:
50 int mFDServer;
51
Jon Medhurstaaf37a32013-06-11 12:10:56 +010052 void createServerSocket(int port);
53};
54
55#endif //__OLY_SOCKET_H__