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

데이터베이스 관리 구현 파일 더 자세히 ...

#include "db_management.hpp"
db_management.cpp에 대한 include 의존 그래프

함수

void create_table_detections (SQLite::Database &db)
 Detections 테이블을 생성합니다.
 
bool insert_data_detections (SQLite::Database &db, Detection detection)
 Detections 테이블에 데이터를 삽입합니다.
 
vector< Detectionselect_data_for_timestamp_range_detections (SQLite::Database &db, string startTimestamp, string endTimestamp)
 주어진 시간 범위 내의 Detection 데이터를 조회합니다.
 
void delete_all_data_detections (SQLite::Database &db)
 Detections 테이블의 모든 데이터를 삭제합니다.
 
void create_table_lines (SQLite::Database &db)
 Lines 테이블을 생성합니다.
 
bool insert_data_lines (SQLite::Database &db, CrossLine crossLine)
 Lines 테이블에 데이터를 삽입합니다.
 
vector< CrossLineselect_all_data_lines (SQLite::Database &db)
 Lines 테이블의 모든 데이터를 조회합니다.
 
bool delete_data_lines (SQLite::Database &db, int indexNum)
 Lines 테이블에서 특정 인덱스의 데이터를 삭제합니다.
 
bool delete_all_data_lines (SQLite::Database &db)
 Lines 테이블의 모든 데이터를 삭제합니다.
 
void create_table_baseLines (SQLite::Database &db)
 baseLines 테이블을 생성합니다.
 
vector< BaseLineselect_all_data_baseLines (SQLite::Database &db)
 baseLines 테이블의 모든 데이터를 조회합니다.
 
bool insert_data_baseLines (SQLite::Database &db, BaseLine baseLine)
 baseLines 테이블에 데이터를 삽입합니다.
 
bool update_data_baseLines (SQLite::Database &db, BaseLine baseLine)
 baseLines 테이블의 데이터를 수정합니다.
 
bool delete_all_data_baseLines (SQLite::Database &db)
 baseLines 테이블의 모든 데이터를 삭제합니다.
 
void create_table_verticalLineEquations (SQLite::Database &db)
 verticalLineEquations 테이블을 생성합니다.
 
VerticalLineEquation select_data_verticalLineEquations (SQLite::Database &db, int index)
 verticalLineEquations 테이블에서 특정 인덱스의 데이터를 조회합니다.
 
bool insert_data_verticalLineEquations (SQLite::Database &db, VerticalLineEquation verticalLineEquation)
 verticalLineEquations 테이블에 데이터를 삽입합니다.
 
bool delete_all_data_verticalLineEquations (SQLite::Database &db)
 verticalLineEquations 테이블의 모든 데이터를 삭제합니다.
 
void create_table_accounts (SQLite::Database &db)
 accounts 테이블을 생성합니다.
 
Accountselect_data_accounts (SQLite::Database &db, string id, string passwd)
 accounts 테이블에서 id와 passwd로 계정 정보를 조회합니다.
 
bool insert_data_accounts (SQLite::Database &db, Account account)
 accounts 테이블에 계정 정보를 삽입합니다.
 
Accountget_account_by_id (SQLite::Database &db, const string &id)
 accounts 테이블에서 id로 계정 정보를 조회합니다.
 
void create_table_recovery_codes (SQLite::Database &db)
 recovery_codes 테이블을 생성합니다.
 
bool store_otp_secret (SQLite::Database &db, const string &id, const string &secret)
 accounts 테이블에 OTP 시크릿을 저장합니다.
 
bool store_recovery_codes (SQLite::Database &db, const string &id, const vector< string > &codes)
 recovery_codes 테이블에 복구 코드를 저장합니다.
 
bool verify_recovery_code (SQLite::Database &db, const std::string &id, const std::string &input)
 입력한 복구 코드가 DB에 저장된 해시와 일치하는지 검증합니다.
 
bool invalidate_recovery_code (SQLite::Database &db, const string &id, const string &input_code)
 입력한 복구 코드가 일치하면 해당 코드를 used=1로 무효화합니다.
 
std::vector< std::string > get_hashed_recovery_codes (SQLite::Database &db, const std::string &id)
 recovery_codes 테이블에서 사용되지 않은 해시 복구 코드 목록을 조회합니다.
 

상세한 설명

데이터베이스 관리 구현 파일

이 파일은 SQLite 데이터베이스와 상호작용하는 함수들을 구현합니다. 테이블 생성, 데이터 삽입, 조회, 삭제 등의 기능을 제공합니다.

함수 Documentation

◆ create_table_accounts()

void create_table_accounts ( SQLite::Database &  db)

accounts 테이블을 생성합니다.

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

◆ create_table_baseLines()

void create_table_baseLines ( SQLite::Database &  db)

baseLines 테이블을 생성합니다.

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

◆ create_table_detections()

void create_table_detections ( SQLite::Database &  db)

Detections 테이블을 생성합니다.

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

◆ create_table_lines()

void create_table_lines ( SQLite::Database &  db)

Lines 테이블을 생성합니다.

이 함수는 Lines 테이블을 생성하며, 테이블이 이미 존재하면 아무 작업도 수행하지 않습니다.

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

◆ create_table_recovery_codes()

void create_table_recovery_codes ( SQLite::Database &  db)

recovery_codes 테이블을 생성합니다.

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

◆ create_table_verticalLineEquations()

void create_table_verticalLineEquations ( SQLite::Database &  db)

verticalLineEquations 테이블을 생성합니다.

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

◆ delete_all_data_baseLines()

bool delete_all_data_baseLines ( SQLite::Database &  db)

baseLines 테이블의 모든 데이터를 삭제합니다.

매개변수
dbSQLite 데이터베이스 참조
반환값
성공 시 true, 실패 시 false

◆ delete_all_data_detections()

void delete_all_data_detections ( SQLite::Database &  db)

Detections 테이블의 모든 데이터를 삭제합니다.

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

◆ delete_all_data_lines()

bool delete_all_data_lines ( SQLite::Database &  db)

Lines 테이블의 모든 데이터를 삭제합니다.

매개변수
dbSQLite 데이터베이스 참조
반환값
성공 시 true, 실패 시 false

◆ delete_all_data_verticalLineEquations()

bool delete_all_data_verticalLineEquations ( SQLite::Database &  db)

verticalLineEquations 테이블의 모든 데이터를 삭제합니다.

매개변수
dbSQLite 데이터베이스 참조
반환값
성공 시 true, 실패 시 false

◆ delete_data_lines()

bool delete_data_lines ( SQLite::Database &  db,
int  indexNum 
)

Lines 테이블에서 특정 인덱스의 데이터를 삭제합니다.

매개변수
dbSQLite 데이터베이스 참조
indexNum삭제할 인덱스 번호
반환값
성공 시 true, 실패 시 false

◆ get_account_by_id()

Account * get_account_by_id ( SQLite::Database &  db,
const string &  id 
)

accounts 테이블에서 id로 계정 정보를 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
반환값
Account 포인터 (없으면 nullptr)

◆ get_hashed_recovery_codes()

std::vector< std::string > get_hashed_recovery_codes ( SQLite::Database &  db,
const std::string &  id 
)

recovery_codes 테이블에서 사용되지 않은 해시 복구 코드 목록을 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
반환값
해시된 복구 코드 문자열 벡터

◆ insert_data_accounts()

bool insert_data_accounts ( SQLite::Database &  db,
Account  account 
)

accounts 테이블에 계정 정보를 삽입합니다.

매개변수
dbSQLite 데이터베이스 참조
account삽입할 Account 구조체
반환값
성공 시 true, 실패 시 false

◆ insert_data_baseLines()

bool insert_data_baseLines ( SQLite::Database &  db,
BaseLine  baseLine 
)

baseLines 테이블에 데이터를 삽입합니다.

매개변수
dbSQLite 데이터베이스 참조
baseLine삽입할 BaseLine 구조체
반환값
성공 시 true, 실패 시 false

◆ insert_data_detections()

bool insert_data_detections ( SQLite::Database &  db,
Detection  detection 
)

Detections 테이블에 데이터를 삽입합니다.

이 함수는 Detections 테이블에 새로운 데이터를 추가합니다. SQL 인젝션 방지를 위해 Prepared Statement를 사용합니다.

매개변수
dbSQLite 데이터베이스 참조
detection삽입할 Detection 구조체
반환값
성공 시 true, 실패 시 false

◆ insert_data_lines()

bool insert_data_lines ( SQLite::Database &  db,
CrossLine  crossLine 
)

Lines 테이블에 데이터를 삽입합니다.

매개변수
dbSQLite 데이터베이스 참조
crossLine삽입할 CrossLine 구조체
반환값
성공 시 true, 실패 시 false

◆ insert_data_verticalLineEquations()

bool insert_data_verticalLineEquations ( SQLite::Database &  db,
VerticalLineEquation  verticalLineEquation 
)

verticalLineEquations 테이블에 데이터를 삽입합니다.

매개변수
dbSQLite 데이터베이스 참조
verticalLineEquation삽입할 VerticalLineEquation 구조체
반환값
성공 시 true, 실패 시 false

◆ invalidate_recovery_code()

bool invalidate_recovery_code ( SQLite::Database &  db,
const string &  id,
const string &  input_code 
)

입력한 복구 코드가 일치하면 해당 코드를 used=1로 무효화합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
input_code입력한 복구 코드
반환값
성공 시 true, 실패 시 false

◆ select_all_data_baseLines()

vector< BaseLine > select_all_data_baseLines ( SQLite::Database &  db)

baseLines 테이블의 모든 데이터를 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
반환값
BaseLine 벡터

◆ select_all_data_lines()

vector< CrossLine > select_all_data_lines ( SQLite::Database &  db)

Lines 테이블의 모든 데이터를 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
반환값
CrossLine 벡터

◆ select_data_accounts()

Account * select_data_accounts ( SQLite::Database &  db,
string  id,
string  passwd 
)

accounts 테이블에서 id와 passwd로 계정 정보를 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
passwd사용자 비밀번호
반환값
Account 포인터 (없으면 nullptr)

◆ select_data_for_timestamp_range_detections()

vector< Detection > select_data_for_timestamp_range_detections ( SQLite::Database &  db,
string  startTimestamp,
string  endTimestamp 
)

주어진 시간 범위 내의 Detection 데이터를 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
startTimestamp시작 타임스탬프
endTimestamp종료 타임스탬프
반환값
Detection 벡터

◆ select_data_verticalLineEquations()

VerticalLineEquation select_data_verticalLineEquations ( SQLite::Database &  db,
int  index 
)

verticalLineEquations 테이블에서 특정 인덱스의 데이터를 조회합니다.

매개변수
dbSQLite 데이터베이스 참조
index조회할 인덱스
반환값
VerticalLineEquation 구조체

◆ store_otp_secret()

bool store_otp_secret ( SQLite::Database &  db,
const string &  id,
const string &  secret 
)

accounts 테이블에 OTP 시크릿을 저장합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
secret저장할 OTP 시크릿
반환값
성공 시 true, 실패 시 false

◆ store_recovery_codes()

bool store_recovery_codes ( SQLite::Database &  db,
const string &  id,
const vector< string > &  codes 
)

recovery_codes 테이블에 복구 코드를 저장합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
codes저장할 복구 코드 벡터
반환값
성공 시 true, 실패 시 false

◆ update_data_baseLines()

bool update_data_baseLines ( SQLite::Database &  db,
BaseLine  baseLine 
)

baseLines 테이블의 데이터를 수정합니다.

매개변수
dbSQLite 데이터베이스 참조
baseLine수정할 BaseLine 구조체
반환값
성공 시 true, 실패 시 false

◆ verify_recovery_code()

bool verify_recovery_code ( SQLite::Database &  db,
const std::string &  id,
const std::string &  input 
)

입력한 복구 코드가 DB에 저장된 해시와 일치하는지 검증합니다.

매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
input입력한 복구 코드
반환값
일치하면 true, 아니면 false