ce84a52aeaab162f03e1ca383aaff651435df99e
[iec.git] / src / type3_AndroidCloud / anbox-master / android / service / local_socket_connection.h
1 /*
2  * Copyright (C) 2016 Simon Fels <morphis@gravedo.de>
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3, as published
6  * by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranties of
10  * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11  * PURPOSE.  See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  */
17
18 #ifndef ANBOX_ANDROID_LOCAL_SOCKET_CONNECTION_H_
19 #define ANBOX_ANDROID_LOCAL_SOCKET_CONNECTION_H_
20
21 #include <string>
22 #include <vector>
23
24 #include "anbox/common/fd.h"
25 #include "anbox/network/message_sender.h"
26
27 namespace anbox {
28 class LocalSocketConnection : public network::MessageSender {
29 public:
30     LocalSocketConnection(const std::string &path);
31     ~LocalSocketConnection();
32
33     ssize_t read_all(std::uint8_t *buffer, const size_t &size);
34     void send(char const* data, size_t length) override;
35     ssize_t send_raw(char const* data, size_t length) override;
36
37 private:
38     Fd fd_;
39 };
40 } // namespace anbox
41
42 #endif