GameRC (IRC Server)  1.0.0
C++98 기반 IRC 서버 프로젝트
로딩중...
검색중...
일치하는것 없음
UserManager.hpp
이 파일의 문서화 페이지로 가기
1/**
2 * @file UserManager.hpp
3 * @author Taeil-Nam (nam0314@gmail.com)
4 * @brief UserManager 클래스 정의 헤더 파일.
5 * @version 0.1
6 * @date 2024-04-01
7 *
8 * @copyright Copyright (c) 2024
9 *
10 */
11
12#pragma once
13
14#include "common.hpp"
15#include "User.hpp"
16
17namespace grc
18{
19
20/**
21 * @class UserManager
22 * @brief User 객체들을 관리하는 정적 클래스.
23 *
24 */
26{
27public:
28 /**
29 * @brief User 객체가 존재하는지 확인하는 함수.
30 *
31 * @param socket 찾을 User 객체의 소켓.
32 * @return true
33 * @return false
34 */
35 static bool IsUserExist(int32 IN socket);
36 /**
37 * @brief User 객체가 존재하는지 확인하는 함수.
38 *
39 * @param nickname 찾을 User 객체의 nickname.
40 * @return true
41 * @return false
42 */
43 static bool IsUserExist(const std::string& IN nickname);
44
45 /**
46 * @brief 특정 User 객체를 반환하는 함수.
47 *
48 * 없는 유저에 대해서 함수를 호출하는 경우, Assertion 발생.
49 *
50 * @param socket 찾을 User 객체의 소켓.
51 * @return User& : User의 객체를 반환.
52 */
53 static User& GetUser(const int32 IN socket);
54 /**
55 * @brief 특정 User 객체를 반환하는 함수.
56 *
57 * 없는 유저에 대해서 함수를 호출하는 경우, Assertion 발생.
58 *
59 * @param nickname 찾을 User 객체의 nickname.
60 * @return User& : User의 객체를 반환.
61 */
62 static User& GetUser(const std::string& IN nickname);
63 /**
64 * @brief 현재 모든 User 객체의 목록을 반환하는 함수.
65 *
66 * @return const std::map<int32, User>& : 멤버 변수 sStaticUsers 반환.
67 */
68 static const std::map<int32, User>& GetUsers();
69
70 /**
71 * @brief User 객체를 추가하는 함수.
72 *
73 * @param socket 추가할 User 객체의 소켓.
74 */
75 static void AddUser(const int32 IN socket);
76 /**
77 * @brief User 객체를 삭제하는 함수.
78 *
79 * @param socket 삭제할 User 객체의 소켓.
80 */
81 static void DeleteUser(const int32 IN socket);
82private:
83 /**
84 * @brief UserManager 객체의 기본 생성자. (사용되지 않음)
85 *
86 */
87 UserManager(); // = delete
88
89private:
90 /**
91 * @brief 현재 IRC에 연결된 모든 User 객체의 목록.
92 *
93 */
94 static std::map<int32, User> sStaticUsers;
95};
96
97}
User 클래스 정의 헤더 파일.
IRC에서 생성되는 User 객체를 정의하는 클래스.
Definition User.hpp:26
User 객체들을 관리하는 정적 클래스.
Definition UserManager.hpp:26
static const std::map< int32, User > & GetUsers()
현재 모든 User 객체의 목록을 반환하는 함수.
Definition UserManager.cpp:57
static bool IsUserExist(int32 IN socket)
User 객체가 존재하는지 확인하는 함수.
Definition UserManager.cpp:9
static std::map< int32, User > sStaticUsers
현재 IRC에 연결된 모든 User 객체의 목록.
Definition UserManager.hpp:94
static User & GetUser(const int32 IN socket)
특정 User 객체를 반환하는 함수.
Definition UserManager.cpp:35
UserManager()
UserManager 객체의 기본 생성자.
static void DeleteUser(const int32 IN socket)
User 객체를 삭제하는 함수.
Definition UserManager.cpp:71
static void AddUser(const int32 IN socket)
User 객체를 추가하는 함수.
Definition UserManager.cpp:62
Definition Earth.cpp:12