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 #ifdef TIZEN_TEST_GCOV
27 extern "C" void __gcov_flush();
32 Connection::Connection(Socket &&socket) noexcept :
33 m_socket(std::move(socket))
37 Connection::Connection(Connection &&other) noexcept :
38 m_socket(std::move(other.m_socket))
42 Connection::~Connection()
46 Connection &Connection::operator=(Connection &&other) noexcept
51 this->m_socket = std::move(other.m_socket);
55 void Connection::send(const RawBuffer &buf) const
57 #ifdef TIZEN_TEST_GCOV
60 std::lock_guard<std::mutex> lock(this->m_mSend);
61 this->m_socket.write(buf);
64 RawBuffer Connection::receive() const
66 std::lock_guard<std::mutex> lock(this->m_mRecv);
67 return this->m_socket.read();
70 SockId Connection::getSockId() const noexcept
72 return this->m_socket.getSockId();
75 int Connection::getFd() const noexcept
77 return this->m_socket.getFd();
80 const Credential &Connection::getCredential()
85 this->m_cred = Credential::get(getFd());