2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License
17 * @file connection.cpp
18 * @author Kyungwook Tak (k.tak@samsung.com)
22 #include "common/connection.h"
26 extern "C" void __gcov_flush();
30 Connection::Connection(Socket &&socket) noexcept :
31 m_socket(std::move(socket))
35 Connection::Connection(Connection &&other) noexcept :
36 m_socket(std::move(other.m_socket))
40 Connection::~Connection()
44 Connection &Connection::operator=(Connection &&other) noexcept
49 this->m_socket = std::move(other.m_socket);
53 void Connection::send(const RawBuffer &buf) const
56 std::lock_guard<std::mutex> lock(this->m_mSend);
57 this->m_socket.write(buf);
60 RawBuffer Connection::receive() const
62 std::lock_guard<std::mutex> lock(this->m_mRecv);
63 return this->m_socket.read();
66 SockId Connection::getSockId() const noexcept
68 return this->m_socket.getSockId();
71 int Connection::getFd() const noexcept
73 return this->m_socket.getFd();
76 const Credential &Connection::getCredential()
81 this->m_cred = Credential::get(getFd());