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

클라이언트 요청 처리 구현 파일 더 자세히 ...

#include "request_handlers.hpp"
#include "tcp_server.hpp"
#include "curl_camera.hpp"
#include "hash.hpp"
#include "otp/otp_manager.hpp"
#include "metadata_parser.hpp"
#include "utils.hpp"
#include <algorithm>
#include <memory>
#include <random>
request_handlers.cpp에 대한 include 의존 그래프

함수

void send_json_response (SSL *ssl, const json &response)
 JSON 객체를 직렬화하여 SSL을 통해 클라이언트로 전송합니다.
 
void handle_detection_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 감지 데이터 조회 요청을 처리합니다. (request_id == 1)
 
void handle_line_insert_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 감지선 좌표값 삽입 요청을 처리합니다. (request_id == 2)
 
void handle_line_select_all_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 감지선 전체 조회 요청을 처리합니다. (request_id == 3)
 
void handle_line_delete_all_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 감지선, 기준선, 수직선 전체 삭제 요청을 처리합니다. (request_id == 4)
 
void handle_baseline_insert_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 도로 기준선 삽입 요청을 처리합니다. (request_id == 5)
 
void handle_vertical_line_insert_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 감지선의 수직선 방정식 삽입 요청을 처리합니다. (request_id == 6)
 
void handle_baseline_select_all_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 도로 기준선 전체 조회 요청을 처리합니다. (request_id == 7)
 
void handle_login_step1_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 1단계 로그인 요청(ID/PW 검증)을 처리합니다. (request_id == 8)
 
void handle_login_step2_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 2단계 로그인 요청(OTP/복구코드 검증)을 처리합니다. (request_id == 22)
 
void handle_signup_request (SSL *ssl, const json &received_json, SQLite::Database &db, std::mutex &db_mutex)
 회원가입 요청을 처리합니다. (request_id == 9)
 
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)
 
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)
 

상세한 설명

클라이언트 요청 처리 구현 파일

이 파일은 클라이언트 요청을 처리하는 다양한 핸들러 함수들을 구현합니다. 데이터베이스 접근, JSON 응답 생성, SSL 통신 등을 포함합니다.

함수 Documentation

◆ handle_baseline_insert_request()

void handle_baseline_insert_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

도로 기준선 삽입 요청을 처리합니다. (request_id == 5)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_baseline_select_all_request()

void handle_baseline_select_all_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

도로 기준선 전체 조회 요청을 처리합니다. (request_id == 7)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_bbox_start_request()

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)

매개변수
sslOpenSSL SSL 포인터
bbox_push_enabledBBox push 활성화 플래그
push_threadBBox push 스레드 참조
metadata_thread메타데이터 파싱 스레드 참조

◆ handle_bbox_stop_request()

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)

매개변수
sslOpenSSL SSL 포인터
bbox_push_enabledBBox push 활성화 플래그
push_threadBBox push 스레드 참조
metadata_thread메타데이터 파싱 스레드 참조

◆ handle_detection_request()

void handle_detection_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

감지 데이터 조회 요청을 처리합니다. (request_id == 1)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_line_delete_all_request()

void handle_line_delete_all_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

감지선, 기준선, 수직선 전체 삭제 요청을 처리합니다. (request_id == 4)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_line_insert_request()

void handle_line_insert_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

감지선 좌표값 삽입 요청을 처리합니다. (request_id == 2)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_line_select_all_request()

void handle_line_select_all_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

감지선 전체 조회 요청을 처리합니다. (request_id == 3)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_login_step1_request()

void handle_login_step1_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

1단계 로그인 요청(ID/PW 검증)을 처리합니다. (request_id == 8)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_login_step2_request()

void handle_login_step2_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

2단계 로그인 요청(OTP/복구코드 검증)을 처리합니다. (request_id == 22)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_signup_request()

void handle_signup_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

회원가입 요청을 처리합니다. (request_id == 9)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ handle_vertical_line_insert_request()

void handle_vertical_line_insert_request ( SSL *  ssl,
const json received_json,
SQLite::Database &  db,
std::mutex &  db_mutex 
)

감지선의 수직선 방정식 삽입 요청을 처리합니다. (request_id == 6)

매개변수
sslOpenSSL SSL 포인터
received_json수신된 JSON 요청
dbSQLite 데이터베이스 참조
db_mutexDB 접근 뮤텍스

◆ send_json_response()

void send_json_response ( SSL *  ssl,
const json response 
)

JSON 객체를 직렬화하여 SSL을 통해 클라이언트로 전송합니다.

이 함수는 JSON 객체를 문자열로 변환한 후, SSL을 통해 클라이언트로 전송합니다.

매개변수
sslOpenSSL SSL 포인터
response전송할 JSON 객체