X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fsrc%2Fanbox%2Fnetwork%2Fstream_socket_transport.cpp;fp=src%2Ftype3_AndroidCloud%2Fanbox-master%2Fsrc%2Fanbox%2Fnetwork%2Fstream_socket_transport.cpp;h=df46d323d30eada4683b74e2a89c359efe3ecbbd;hb=e26c1ec581be598521517829adba8c8dd23a768f;hp=0000000000000000000000000000000000000000;hpb=6699c1aea74eeb0eb400e6299079f0c7576f716f;p=iec.git diff --git a/src/type3_AndroidCloud/anbox-master/src/anbox/network/stream_socket_transport.cpp b/src/type3_AndroidCloud/anbox-master/src/anbox/network/stream_socket_transport.cpp new file mode 100644 index 0000000..df46d32 --- /dev/null +++ b/src/type3_AndroidCloud/anbox-master/src/anbox/network/stream_socket_transport.cpp @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2016 Simon Fels + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + */ + +#include "anbox/network/stream_socket_transport.h" +#include "anbox/common/variable_length_array.h" +#include "anbox/network/fd_socket_transmission.h" + +#include + +#include +#include +#include +#include +#include + +#include +#include + +namespace anbox { +namespace network { + +StreamSocketTransport::StreamSocketTransport(const std::string& socket_path, + const std::shared_ptr& rt) + : socket_(std::make_shared( + rt->service())), +{ + socket_.connect(boost::asio::local::stream_protocol::endpoint(socket_path)); + read_next_message(); +} + +void StreamSocketTransport::register_observer( + std::shared_ptr const& observer) { + this->observer_ = observer; +} + +void StreamSocketTransport::unregister_observer( + std::shared_ptr const& observer) { + if (this->observer_ != observer) return; + + this->observer_.reset(); +} + +void StreamSocketTransport::send_message(std::vector const& buffer) {} + +void StreamSocketTransport::read_next_message() { + auto callback = std::bind(&StreamSocketTransport::on_read_size, this, + std::placeholders::_1, std::placeholders::_2); +} + +void StreamSocketTransport::on_read_size(const boost::system::error_code& ec, + std::size_t bytes_read) {} + +} // namespace network +} // namespace anbox