26#include <netinet/in.h>
27#include <sys/socket.h>
34#include <system_error>
53#include "otp/otp_manager.hpp"
59using json = nlohmann::json;
235void route_request(SSL* ssl,
const json& received_json, SQLite::Database& db, std::mutex& db_mutex,
236 std::atomic<bool>& bbox_push_enabled, std::thread& push_thread, std::thread&
metadata_thread);
257void handle_client(
int client_socket, SQLite::Database& db, std::mutex& db_mutex);
nlohmann::json json
nlohmann::json 타입을 json으로 별칭 정의
Definition config_manager.cpp:17
libcurl을 사용한 카메라 통신 헤더 파일
void metadata_thread(SQLite::Database &db)
ffmpeg 메타데이터 스트림을 처리하는 루프 함수입니다.
Definition main_control.cpp:683
감지선 정보를 저장하는 구조체
Definition db_management.hpp:33
void handle_client(int client_socket, SQLite::Database &db, std::mutex &db_mutex)
개별 클라이언트와의 연결을 처리하는 메인 함수입니다.
Definition tcp_server.cpp:183
void cleanup_client_connection(SSL *ssl, int client_socket, std::atomic< bool > &bbox_push_enabled, std::thread &push_thread, std::thread &metadata_thread)
클라이언트 연결을 정리하고 관련 리소스를 해제합니다.
Definition tcp_server.cpp:160
const int PORT
TCP 서버 포트 번호
Definition tcp_server.hpp:64
SSL * setup_ssl_connection(int client_socket)
클라이언트 소켓에 SSL 연결을 설정합니다.
Definition tcp_server.cpp:30
void initialize_database_tables(SQLite::Database &db)
데이터베이스 테이블들을 초기화합니다.
Definition tcp_server.cpp:56
void handle_login_step1_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
1단계 로그인 요청(ID/PW 검증)을 처리합니다. (request_id == 8)
Definition request_handlers.cpp:392
void handle_baseline_insert_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
도로 기준선 삽입 요청을 처리합니다. (request_id == 5)
Definition request_handlers.cpp:284
void handle_line_delete_all_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
감지선, 기준선, 수직선 전체 삭제 요청을 처리합니다. (request_id == 4)
Definition request_handlers.cpp:244
void handle_bbox_start_request(SSL *ssl, std::atomic< bool > &bbox_push_enabled, std::thread &push_thread, std::thread &metadata_thread)
BBox push 시작 요청을 처리합니다. (request_id == 31)
Definition request_handlers.cpp:619
void handle_bbox_stop_request(SSL *ssl, std::atomic< bool > &bbox_push_enabled, std::thread &push_thread, std::thread &metadata_thread)
BBox push 중지 요청을 처리합니다. (request_id == 32)
Definition request_handlers.cpp:663
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)
수신된 JSON 요청을 적절한 처리 함수로 라우팅합니다.
Definition tcp_server.cpp:105
string getLines()
카메라에서 라인 크로싱 설정을 가져옵니다.
Definition curl_camera.cpp:32
void handle_detection_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
감지 데이터 조회 요청을 처리합니다. (request_id == 1)
Definition request_handlers.cpp:48
string deleteLines(int index)
카메라에서 지정한 라인을 삭제합니다.
Definition curl_camera.cpp:266
void handle_line_select_all_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
감지선 전체 조회 요청을 처리합니다. (request_id == 3)
Definition request_handlers.cpp:159
void handle_line_insert_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
감지선 좌표값 삽입 요청을 처리합니다. (request_id == 2)
Definition request_handlers.cpp:89
void handle_baseline_select_all_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
도로 기준선 전체 조회 요청을 처리합니다. (request_id == 7)
Definition request_handlers.cpp:354
void handle_login_step2_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
2단계 로그인 요청(OTP/복구코드 검증)을 처리합니다. (request_id == 22)
Definition request_handlers.cpp:458
void handle_signup_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
회원가입 요청을 처리합니다. (request_id == 9)
Definition request_handlers.cpp:526
string putLines(CrossLine)
카메라에 라인 크로싱 설정을 전송합니다.
Definition curl_camera.cpp:129
void handle_vertical_line_insert_request(SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
감지선의 수직선 방정식 삽입 요청을 처리합니다. (request_id == 6)
Definition request_handlers.cpp:322
bool receive_json_message(SSL *ssl, json &received_json)
SSL 연결에서 JSON 메시지를 수신합니다.
Definition tcp_server.cpp:71
int tcp_run()
TCP 서버를 시작하고 클라이언트 연결을 대기합니다.
Definition tcp_server.cpp:224