AM Daemon ライブラリリファレンス
Log.h
[詳解]
1 /// @file
2 /// @brief ABaaS Log 関連処理を提供するMonostateクラス Log のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_ABAAS_LOG_H
7 #define AMDAEMON_ABAAS_LOG_H
8 
9 #include "amdaemon/env.h"
10 
11 #include <cstdint>
12 
13 namespace amdaemon
14 {
15 namespace abaas
16 {
17 /// @addtogroup g_abaas
18 /// @{
19 
20  /// @brief ABaaS Log 関連処理を提供するMonostateクラス。
21  ///
22  /// Core クラスのメンバ関数 Core#execute 呼び出しによって内容が更新される。
23  ///
24  /// 共通サーバにログファイルやエラーメッセージを収集する機能を提供する。
25  /// ALL.Net認証処理が無効である場合、メンバ関数 #getRootPath 以外は利用できない。
26  ///
27  /// @par 通信タイミングについて
28  /// ゲームプレイ中の通信処理等を阻害しないよう、
29  /// ABaaS Log の通信処理は下記のすべてを満たしている間のみ行われる。
30  /// @par
31  /// - ALL.Net認証に成功済みである。
32  /// - ゲームプレイ中ではない。
33  ///
34  /// @ingroup g_common
35  class Log
36  {
37  public:
38  // 下記は暗黙の定義を用いる。
39  //Log() = default;
40  //Log(const Log&) = default;
41  //‾Log() = default;
42  //Log& operator=(const Log&) = default;
43 
44  /// @brief ABaaS Log 機能を利用可能であるか否かを取得する。
45  /// @retval true 利用可能である場合。
46  /// @retval false 機能が無効である場合。
47  ///
48  /// 条件式 (getRootPath()[0] != L'¥0') の結果を返す。
49  bool isAvailable() const;
50 
51  /// @brief ログ収集対象となるファイル群のルートディレクトリパスを取得する。
52  /// @return ルートディレクトリパス。 ABaaS Log 機能が無効である場合は空文字列。
53  ///
54  /// このディレクトリ以下に置かれているファイルがログ収集対象となる。
55  /// サブディレクトリも含むが、絶対パスが長すぎるファイルは除外される。
56  ///
57  /// ファイルのアップロード指示はサーバの管理ページより行う。
58  ///
59  /// ALL.Net認証機能が無効であってもこの関数は利用可能である。
60  const wchar_t* getRootPath() const;
61 
62  /// @brief ログ収集サーバの生存が確認できているか否かを取得する。
63  /// @retval true 生存が確認できている場合。
64  /// @retval false 生存していないか、生存が確認できない場合。
65  ///
66  /// 生存確認を一度行った後はしばらく時間を空けるようになっているため、
67  /// 実際の生存状態とは異なる値を返す場合がある。
68  bool isServerAlive() const;
69 
70  /// @brief ファイルのアップロード処理中であるか否かを取得する。
71  /// @retval true アップロード処理中である場合。
72  /// @retval false アップロード処理中ではないか、アップロード不可能な状態である場合。
73  ///
74  /// この関数が true を返す間はゲームプレイ開始しないことを推奨する。
75  /// ただしログファイルの重要性が低い場合等はその限りではない。
76  ///
77  /// この関数の戻り値は下記のように決定される。
78  ///
79  /// - ABaaS Log 機能またはALL.Net認証機能が無効である場合は false 。
80  /// - 正常にアップロード処理中である場合は true 。
81  /// - アップロード待ちのファイルが存在しない場合は false 。
82  /// - アップロード指示ファイル一覧をサーバから取得できない場合や、
83  /// アップロード中にサーバとの通信が切断された場合、一定時間は true 。
84  /// 復旧の見込みがないと判断した後は false 。
85  bool isUploading() const;
86 
87  /// @brief アップロード待ちのファイル数を取得する。
88  /// @return アップロード待ちのファイル数。取得できていない場合は -1 。
89  ///
90  /// サーバの管理ページよりアップロード指示されており、
91  /// なおかつまだアップロード済みでないファイルの数を返す。
92  ///
93  /// サーバからアップロード指示ファイル一覧を取得できていない場合は -1 を返す。
94  ///
95  /// アップロード処理完了を待つ目的であればメンバ関数 #isUploading の使用を推奨する。
96  std::int32_t getUploadingFileCount() const;
97 
98  /// @brief エラー事象メッセージを送信キューに追加する。
99  /// @param[in] message エラー事象メッセージ。
100  /// @retval true 送信キューへの追加に成功した場合。
101  /// @retval false 送信キュー上限により追加できなかったか、機能が無効である場合。
102  ///
103  /// @exception Exception
104  /// - 引数 message に nullptr を指定した場合。
105  /// - 引数 message に空文字列を指定した場合。
106  ///
107  /// サーバの管理ページでエラーリストとして参照できる文字列を送信要求する。
108  /// タイトルのポリシー次第では、エラーと無関係な文字列でも構わない。
109  /// ただし、 ABaaS Log の内部エラーもこの機能を利用してサーバに送信される。
110  ///
111  /// 送信キューの上限は 100 件である。
112  /// サーバ不通状態でこの関数を呼び出し続ける等により送信キュー上限を超えた場合、
113  /// 指定したメッセージは追加されず、
114  /// 代わりにキュー上限に達したことを示すエラーメッセージが優先的に送信される。
115  ///
116  /// 引数 message は、UTF-8文字列に変換後、最大 1024 バイトが送信対象となる。
117  /// サイズ超過分は切り捨てられる。
118  bool putErrorMessage(const wchar_t* message);
119  };
120 
121 /// @}
122 } // namespace abaas
123 } // namespace amdaemon
124 
125 #endif // AMDAEMON_ABAAS_LOG_H
bool isUploading() const
ファイルのアップロード処理中であるか否かを取得する。
ABaaS Log 関連処理を提供するMonostateクラス。
Definition: Log.h:35
std::int32_t getUploadingFileCount() const
アップロード待ちのファイル数を取得する。
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
const wchar_t * getRootPath() const
ログ収集対象となるファイル群のルートディレクトリパスを取得する。
bool putErrorMessage(const wchar_t *message)
エラー事象メッセージを送信キューに追加する。
bool isAvailable() const
ABaaS Log 機能を利用可能であるか否かを取得する。
bool isServerAlive() const
ログ収集サーバの生存が確認できているか否かを取得する。