ctr_Repair/trunk/ConsoleDataMigration/sources/common/SdLogger.h
N2614 575a05c713 SDカード未挿入時のログ出力をバッファリングしておいて、挿入後の書き込み関数実行時に書き込むように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@497 385bec56-5757-e545-9c3a-d8741f4650f1
2011-11-11 04:38:57 +00:00

73 lines
1.8 KiB
C++

/*---------------------------------------------------------------------------*
Project: Horizon
File: SdLogger.h
Copyright 2009 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Rev$
*---------------------------------------------------------------------------*/
#ifndef SDLOGGER_H_
#define SDLOGGER_H_
#include <nn.h>
#include <vector>
#include <string>
namespace common
{
namespace Logger
{
class SdLogger
{
public:
SdLogger();
~SdLogger() {};
// SDログに文字列を出力する
void Print(const char* fmt, ::std::va_list arg);
// SDログを削除する
void Clear();
// 内部状態を初期化する。SDカード挿抜時に呼ばれることを期待
void Inactivate();
private:
void Activate();
nn::Result PrintCore(const char* str, size_t size);
nn::fs::FileOutputStream sd;
std::vector<std::string> m_Buffer;
bool m_TryActivate;
bool m_Permitted;
NN_PADDING2;
};
// SDカード挿抜用のスレッドを初期化する
void InitializeEjectThread();
// SDカードが抜けた時に呼ばれるコールバック
void SetEjectHandler(void (*func)());
// SDカードが挿入された時に呼ばれるコールバック
void SetInsertHandler(void (*func)());
// 内部で保持しているインスタンスへのポインタを返す
SdLogger* GetSdInstance();
} // namespace Logger
} // namespace ConsoleBackup
#endif /* SDLOGGER_H_ */