aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Server/Console/ServerCli.h
blob: f544450b59de4e5e0548cbb89c75cf609955de85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#pragma once

#include <memory>

namespace ServerRuntime
{
	class ServerCliEngine;
	class ServerCliInput;

	/**
	 * **Server CLI facade**
	 *
	 * Owns the command engine and input component, and exposes a small lifecycle API.
	 * CLI 全体の開始・停止・更新をまとめる窓口クラス
	 */
	class ServerCli
	{
	public:
		ServerCli();
		~ServerCli();

		/**
		 * **Start console input processing**
		 *
		 * Connects input to the engine and starts background reading.
		 * 入力処理を開始してエンジンに接続
		 */
		void Start();

		/**
		 * **Stop console input processing**
		 *
		 * Stops background input safely and detaches from the engine.
		 * 入力処理を安全に停止
		 */
		void Stop();

		/**
		 * **Process queued command lines**
		 *
		 * Drains commands collected by input and executes them in the main loop.
		 * 入力キューのコマンドを実行
		 */
		void Poll();

	private:
		std::unique_ptr<ServerCliEngine> m_engine;
		std::unique_ptr<ServerCliInput> m_input;
	};
}