GameRC (IRC Server)  1.0.0
C++98 기반 IRC 서버 프로젝트
로딩중...
검색중...
일치하는것 없음
Core.hpp
이 파일의 문서화 페이지로 가기
1/**
2 * @file Core.hpp
3 * @author Jeekun Park (jeekunp@naver.com)
4 * @brief 메인 함수에서 객체 생성되는 코어 클래스
5 * @version 0.1
6 * @date 2024-02-02
7 *
8 * @copyright Copyright (c) 2024
9 *
10 */
11
12#pragma once
13
14
15#include "BSD-GDF/Event/KernelEvent.hpp"
16#include "common.hpp"
17#include "grc/irc/IRC.hpp"
19
20#include <sys/time.h>
21#include <sys/stat.h>
22
23using namespace gdf;
24
25namespace grc
26{
27
28class Core
29{
30public:
31 Core(const int IN port, const std::string& IN password);
32 ~Core();
33
34 bool Init();
35 void Run();
36
37private:
39 {
40 kRead = EVFILT_READ,
41 kWrite = EVFILT_WRITE
42 };
43 enum eFD
44 {
45 STDIN = STDIN_FILENO,
46 STDOUT = STDOUT_FILENO
47 };
48
49private:
50 Core(); // = delete
51 Core(const Core& core); // = delete
52 const Core& operator=(const Core& core); // = delete
53
54 bool initLog();
55 void initConsoleWindow();
56
57 bool isTimePassed(uint64 IN ms, struct timeval& IN OUT last);
58
59 /* about event */
60 void handleMonitorInput();
62 void printStatus(DisplayConsole& monitor);
63 void handleLogBuffer();
64
65 /* about network connection */
66 void setupNewClient();
67
68private:
69 const int32 mPort;
70 const std::string mPassword;
72 KernelQueue mKernelQueue;
73 Network mNetwork;
75 std::string mLogFileName;
76 std::string mLogBuffer;
78 DisplayConsole mLogMonitor;
79 DisplayConsole mServerMonitor;
80 DisplayConsole* mActivatedWindow;
83};
84
85}
IAnimation 인터페이스를 구현하는 Earth 클래스를 정의한다.
IRC 매크로 및 IRC 클래스 정의 헤더 파일.
Definition Core.hpp:29
bool isTimePassed(uint64 IN ms, struct timeval &IN OUT last)
Definition Core.cpp:177
bool mbRunning
Definition Core.hpp:71
bool initLog()
Definition Core.cpp:122
Earth mEarthAnimation
Definition Core.hpp:81
Network mNetwork
Definition Core.hpp:73
void handleLogBuffer()
Definition Core.cpp:280
eFD
Definition Core.hpp:44
@ STDIN
Definition Core.hpp:45
@ STDOUT
Definition Core.hpp:46
void handleMonitorInput()
Definition Core.cpp:194
std::string mLogBuffer
Definition Core.hpp:76
void setupNewClient()
Definition Core.cpp:325
const int32 mPort
Definition Core.hpp:69
void printStatus(DisplayConsole &monitor)
Definition Core.cpp:252
KernelQueue mKernelQueue
Definition Core.hpp:72
Core(const Core &core)
int32 mLogFileFD
Definition Core.hpp:74
void handleMonitorCommand()
Definition Core.cpp:211
void initConsoleWindow()
Definition Core.cpp:149
uint64 mLogBufferIndex
Definition Core.hpp:77
const Core & operator=(const Core &core)
void Run()
Definition Core.cpp:67
DisplayConsole * mActivatedWindow
Definition Core.hpp:80
~Core()
Definition Core.cpp:16
bool Init()
Definition Core.cpp:23
eEventType
Definition Core.hpp:39
@ kRead
Definition Core.hpp:40
@ kWrite
Definition Core.hpp:41
DisplayConsole mLogMonitor
Definition Core.hpp:78
const std::string mPassword
Definition Core.hpp:70
std::string mLogFileName
Definition Core.hpp:75
DisplayConsole mServerMonitor
Definition Core.hpp:79
struct timeval mEarthAnimationLastUpdate
Definition Core.hpp:82
지구의 애니메이션을 출력하는 클래스이다.
Definition Earth.hpp:29
Definition Earth.cpp:12