Server
 
로딩중...
검색중...
일치하는것 없음
tcp_server.cpp 파일 참조

TCP 서버 구현 파일 더 자세히 ...

#include "tcp_server.hpp"
#include "request_handlers.hpp"
#include "utils.hpp"
#include "config_manager.hpp"
#include <unordered_map>
#include <memory>
#include <random>
#include "metadata_parser.hpp"
#include <thread>
tcp_server.cpp에 대한 include 의존 그래프

함수

SSL * setup_ssl_connection (int client_socket)
 클라이언트 소켓에 대해 SSL 연결을 설정합니다.
 
void initialize_database_tables (SQLite::Database &db)
 데이터베이스의 모든 테이블을 초기화(생성)합니다.
 
bool receive_json_message (SSL *ssl, json &received_json)
 SSL을 통해 JSON 메시지를 수신합니다.
 
void route_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex, std::atomic< bool > &bbox_push_enabled, std::thread &push_thread, std::thread &metadata_thread)
 request_id에 따라 적절한 요청 처리 함수를 호출합니다.
 
void cleanup_client_connection (SSL *ssl, int client_socket, std::atomic< bool > &bbox_push_enabled, std::thread &push_thread, std::thread &metadata_thread)
 클라이언트 연결 종료 시 스레드 및 리소스를 정리합니다.
 
void handle_client (int client_socket, SQLite::Database &db, std::mutex &db_mutex)
 클라이언트 연결을 처리하는 메인 함수 (스레드 진입점)
 
int tcp_run ()
 TCP 서버 메인 함수. 서버를 초기화하고 클라이언트 연결을 처리합니다.
 

상세한 설명

TCP 서버 구현 파일

이 파일은 TCP 서버의 주요 기능을 구현하며, 클라이언트 연결 처리, SSL 설정, 데이터베이스 초기화 및 요청 라우팅을 포함합니다.

함수 Documentation

◆ cleanup_client_connection()

void cleanup_client_connection ( SSL *  ssl,
int  client_socket,
std::atomic< bool > &  bbox_push_enabled,
std::thread &  push_thread,
std::thread &  metadata_thread 
)

클라이언트 연결 종료 시 스레드 및 리소스를 정리합니다.

클라이언트 연결을 정리하고 관련 리소스를 해제합니다.

매개변수
sslOpenSSL SSL 포인터
client_socket클라이언트 소켓 디스크립터
bbox_push_enabledBBox push 활성화 플래그
push_threadBBox push 스레드 참조
metadata_thread메타데이터 파싱 스레드 참조

◆ handle_client()

void handle_client ( int  client_socket,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

클라이언트 연결을 처리하는 메인 함수 (스레드 진입점)

개별 클라이언트와의 연결을 처리하는 메인 함수입니다.

매개변수
client_socket클라이언트 소켓 디스크립터
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ initialize_database_tables()

void initialize_database_tables ( SQLite::Database &  db)

데이터베이스의 모든 테이블을 초기화(생성)합니다.

데이터베이스 테이블들을 초기화합니다.

매개변수
dbSQLite 데이터베이스 참조

◆ receive_json_message()

bool receive_json_message ( SSL *  ssl,
json received_json 
)

SSL을 통해 JSON 메시지를 수신합니다.

SSL 연결에서 JSON 메시지를 수신합니다.

매개변수
sslOpenSSL SSL 포인터
received_json파싱된 JSON 객체 (출력)
반환값
성공 시 true, 실패 시 false

◆ route_request()

void route_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex,
std::atomic< bool > &  bbox_push_enabled,
std::thread &  push_thread,
std::thread &  metadata_thread 
)

request_id에 따라 적절한 요청 처리 함수를 호출합니다.

수신된 JSON 요청을 적절한 처리 함수로 라우팅합니다.

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스
bbox_push_enabledBBox push 활성화 플래그
push_threadBBox push 스레드 참조
metadata_thread메타데이터 파싱 스레드 참조

◆ setup_ssl_connection()

SSL * setup_ssl_connection ( int  client_socket)

클라이언트 소켓에 대해 SSL 연결을 설정합니다.

클라이언트 소켓에 SSL 연결을 설정합니다.

매개변수
client_socket클라이언트 소켓 디스크립터
반환값
SSL 포인터, 실패 시 nullptr

◆ tcp_run()

int tcp_run ( )

TCP 서버 메인 함수. 서버를 초기화하고 클라이언트 연결을 처리합니다.

TCP 서버를 시작하고 클라이언트 연결을 대기합니다.

반환값
정상 종료 시 0, 실패 시 음수