NoaApiLogDownloadCallbacks
APILogのダウンロードに関連するイベントを設定します。
NoaApiLogDownloadCallbacksを継承したクラスをNoaApiLogに引き渡すことで、ダウンロードに関連するイベントをカスタマイズできます。
オーバーライド可能な要素
Methods
| メソッド名 | 説明 |
|---|---|
| OnBeforeConversion(logEntries) | ダウンロード対象のデータを文字列に変換する前に実行するメソッドです。 引数と返り値はどちらもIReadOnlyList<ApiLogEntry>です。 値を編集して返した場合はNOA DebuggerのJSON変換処理に反映します。 |
| OnBeforeDownload(info) | NoaDownloadCallbacks.OnBeforeDownload(info)を参照してください。 |
| OnAfterDownload(info, status) | NoaDownloadCallbacks.OnAfterDownload(info, status)を参照してください。 |
Properties
| プロパティ名 | 説明 |
|---|---|
| IsAllowBaseDownload | NoaDownloadCallbacks.IsAllowBaseDownloadを参照してください。 |
関連する型
INoaApiLogDownloadCallbacks
NoaApiLogDownloadCallbacks.OnBeforeConversionは、このインターフェースで定義しています。
カスタムクラスで複数のコールバックの定義を集約したい場合や、既存のカスタムクラスを継承しつつコールバック機能を追加したい場合は、NoaApiLogDownloadCallbacksクラスの代わりにこのインターフェースを利用することで実現できます。
サンプルコード
#if NOA_DEBUGGER
using NoaDebugger;
using System.Collections.Generic;
using UnityEngine;
// NOA DebuggerのAPILogダウンロード処理前後にイベントを実行する場合の例(クラス利用)
public class ExampleApiLogDownloader : NoaApiLogDownloadCallbacks
{
public override IReadOnlyList<ApiLogEntry> OnBeforeConversion(IReadOnlyList<ApiLogEntry> logEntries)
{
Debug.Log($"Logs download. Count: {logEntries.Count}");
// テスト用のログをダウンロード対象外にする例
return logEntries.Where(entry => !entry.LogString.Contains("Test")).ToList();
}
// 継承元のNoaDownloadCallbacksのメソッドも使用可能
public override NoaDownloadInfo OnBeforeDownload(NoaDownloadInfo info)
{
info.FileName = $"Sample-{info.FileName}";
return info;
}
public override void OnAfterDownload(NoaDownloadInfo info, NoaDownloadStatus status)
{
Debug.Log($"Download finished with status: {status}");
}
}
// 複数の機能で共通処理を実装したい場合の例(インターフェース利用)
public class ExampleCommonDownloader : INoaDownloadCallbacks
{
// IsAllowBaseDownloadをtrueに設定することでNOA Debuggerのダウンロード処理を許可
public bool IsAllowBaseDownload => true;
public NoaDownloadInfo OnBeforeDownload(NoaDownloadInfo info)
{
Debug.Log($"Download file name: {info.FileName}");
return info;
}
public void OnAfterDownload(NoaDownloadInfo info, NoaDownloadStatus status)
{
Debug.Log($"Download finished with status: {status}");
}
}
public class ExampleDerivedApiLogDownloader : ExampleCommonDownloader, INoaApiLogDownloadCallbacks
{
public IReadOnlyList<ApiLogEntry> OnBeforeConversion(IReadOnlyList<ApiLogEntry> logEntries)
{
Debug.Log($"Logs download. Count: {logEntries.Count}");
return logEntries;
}
}
#endif
