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

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

#include <SQLiteCpp/SQLiteCpp.h>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include "hash.hpp"
db_management.hpp에 대한 include 의존 그래프
이 그래프는 이 파일을 직/간접적으로 include 하는 파일들을 보여줍니다.:

이 파일의 소스 코드 페이지로 가기

클래스

struct  Detection
 감지 이미지와 타임스탬프를 저장하는 구조체 더 자세히 ...
 
struct  CrossLine
 감지선 정보를 저장하는 구조체 더 자세히 ...
 
struct  BaseLine
 기준선 좌표 정보를 저장하는 구조체 더 자세히 ...
 
struct  VerticalLineEquation
 수직선 방정식(ax+b=0) 정보를 저장하는 구조체 더 자세히 ...
 
struct  Account
 사용자 계정 정보를 저장하는 구조체 더 자세히 ...
 
struct  RecoveryCode
 복구 코드 정보를 저장하는 구조체 더 자세히 ...
 

함수

void create_table_detections (SQLite::Database &db)
 Detections 테이블을 생성합니다.
 
bool insert_data_detections (SQLite::Database &db, Detection detection)
 Detections 테이블에 데이터를 삽입합니다.
 
std::vector< Detectionselect_data_for_timestamp_range_detections (SQLite::Database &db, std::string startTimestamp, std::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 테이블에 데이터를 삽입합니다.
 
std::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 테이블을 생성합니다.
 
std::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, std::string id, std::string passwd)
 accounts 테이블에서 id와 passwd로 계정 정보를 조회합니다.
 
bool insert_data_accounts (SQLite::Database &db, Account account)
 accounts 테이블에 계정 정보를 삽입합니다.
 
Accountget_account_by_id (SQLite::Database &db, const std::string &id)
 accounts 테이블에서 id로 계정 정보를 조회합니다.
 
void create_table_recovery_codes (SQLite::Database &db)
 recovery_codes 테이블을 생성합니다.
 
bool store_otp_secret (SQLite::Database &db, const std::string &id, const std::string &secret)
 accounts 테이블에 OTP 시크릿을 저장합니다.
 
bool store_recovery_codes (SQLite::Database &db, const std::string &id, const std::vector< std::string > &codes)
 recovery_codes 테이블에 복구 코드를 저장합니다.
 
bool verify_recovery_code (SQLite::Database &db, const std::string &id, const std::string &code)
 입력한 복구 코드가 DB에 저장된 해시와 일치하는지 검증합니다.
 
bool invalidate_recovery_code (SQLite::Database &db, const std::string &id, const std::string &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 테이블을 생성합니다.

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

이 함수는 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 std::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
매개변수
dbSQLite 데이터베이스 참조
baseLine삽입할 BaseLine 구조체
반환값
성공 시 true, 실패 시 false

◆ insert_data_detections()

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

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

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

이 함수는 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 std::string &  id,
const std::string &  code 
)

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

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

◆ select_all_data_baseLines()

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

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

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

◆ select_all_data_lines()

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

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

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

◆ select_data_accounts()

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

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

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

◆ select_data_for_timestamp_range_detections()

std::vector< Detection > select_data_for_timestamp_range_detections ( SQLite::Database &  db,
std::string  startTimestamp,
std::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 std::string &  id,
const std::string &  secret 
)

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

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

◆ store_recovery_codes()

bool store_recovery_codes ( SQLite::Database &  db,
const std::string &  id,
const std::vector< std::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
매개변수
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
code입력한 복구 코드
반환값
일치하면 true, 아니면 false
매개변수
dbSQLite 데이터베이스 참조
id사용자 ID
input입력한 복구 코드
반환값
일치하면 true, 아니면 false