UbiAnyCard Ver2 2.0
KICC ED785 단말기 연동 TCP 서버
로딩중...
검색중...
일치하는것 없음
TcpServer::Session 클래스 참조

#include <TcpServer.h>

TcpServer::Session에 대한 상속 다이어그램 :
Inheritance graph
TcpServer::Session에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

void markClosed ()
bool sendLine (const std::string &line)
 Session (SOCKET socket)
 ~Session ()

Private 멤버 함수

bool sendInternal (const std::string &data)

Private 속성

std::atomic< bool > m_closed
std::mutex m_sendMutex
SOCKET m_socket

생성자 & 소멸자 문서화

◆ Session()

TcpServer::Session::Session ( SOCKET socket)
explicit
9 : m_socket(socket), m_closed(false)
10{
11}
SOCKET m_socket
Definition TcpServer.h:50
std::atomic< bool > m_closed
Definition TcpServer.h:52

다음을 참조함 : m_closed, m_socket.

◆ ~Session()

TcpServer::Session::~Session ( )
14{
15 markClosed();
16}
void markClosed()
Definition TcpServer.cpp:48

다음을 참조함 : markClosed().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ markClosed()

void TcpServer::Session::markClosed ( )
49{
50 bool expected = false;
51 if (m_closed.compare_exchange_strong(expected, true))
52 {
53 ::shutdown(m_socket, SD_BOTH);
54 ::closesocket(m_socket);
55 }
56}

다음을 참조함 : m_closed, m_socket.

다음에 의해서 참조됨 : ~Session().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ sendInternal()

bool TcpServer::Session::sendInternal ( const std::string & data)
private
30{
31 std::lock_guard<std::mutex> lock(m_sendMutex);
32 if (m_closed.load())
33 return false;
34
35 const char *p = data.data();
36 int left = static_cast<int>(data.size());
37 while (left > 0)
38 {
39 int n = ::send(m_socket, p, left, 0);
40 if (n <= 0)
41 return false;
42 p += n;
43 left -= n;
44 }
45 return true;
46}
std::mutex m_sendMutex
Definition TcpServer.h:51

다음을 참조함 : m_closed, m_sendMutex, m_socket.

다음에 의해서 참조됨 : sendLine().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ sendLine()

bool TcpServer::Session::sendLine ( const std::string & line)
19{
20 if (m_closed.load())
21 return false;
22
23 std::string toSend = line;
24 if (toSend.empty() || toSend.back() != '\n')
25 toSend.push_back('\n');
26 return sendInternal(toSend);
27}
bool sendInternal(const std::string &data)
Definition TcpServer.cpp:29

다음을 참조함 : m_closed, sendInternal().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ m_closed

std::atomic<bool> TcpServer::Session::m_closed
private

다음에 의해서 참조됨 : markClosed(), sendInternal(), sendLine(), Session().

◆ m_sendMutex

std::mutex TcpServer::Session::m_sendMutex
private

다음에 의해서 참조됨 : sendInternal().

◆ m_socket

SOCKET TcpServer::Session::m_socket
private

다음에 의해서 참조됨 : markClosed(), sendInternal(), Session().


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: