/*---------------------------------------------------------------------------* Project: NintendoWare File: os_Utility.cpp Copyright (C)2009-2010 Nintendo Co., Ltd./HAL Laboratory, Inc. 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. $Revision: 13145 $ *---------------------------------------------------------------------------*/ #include "precompiled.h" #include #include #if 1 // NW_ADAPTIVE_HEADER マクロが使用可能な場合の処理。 #include #include NW_ADAPTIVE_HEADER_LOCAL(./platform/os_Utility, NW_PLATFORM_NAME.cpp) #else // 使用が不可であれば、#if文の羅列で代替する。 #if defined( NW_PLATFORM_RVL ) #include "./platform/os_UtilityRVL.cpp" #elif defined( NW_PLATFORM_TWL ) #include "./platform/os_UtilityTWL.cpp" #elif defined( NW_PLATFORM_CTR ) #include "./platform/os_UtilityCTR.cpp" #elif defined( NW_PLATFORM_CTRWIN ) #include "./platform/os_UtilityCTRWIN.cpp" #elif defined( NW_PLATFORM_WIN32 ) #include "./platform/os_UtilityWIN32.cpp" #else #error "Unknown platform" #endif #endif namespace nw { namespace os { namespace internal { /*!--------------------------------------------------------------------------* Name: Printf @brief 書式付き文字列を出力します。 @param[in] fmt 出力文字列フォーマット @return None. *---------------------------------------------------------------------------*/ void Printf(const char *fmt, ...) { std::va_list vlist; va_start(vlist, fmt); VPrintf(fmt, vlist); va_end(vlist); } /*!--------------------------------------------------------------------------* Name: Warning @brief ワーニングを出力します。 @param[in] fileName Warning の発生したソースファイル名 @param[in] line Warning の発生した行番号 @param[in] fmt 出力文字列フォーマット @return None. *---------------------------------------------------------------------------*/ void Warning( const char* fileName, int line, const char* fmt, ...) { va_list vlist; va_start(vlist, fmt); Printf("%s:%d Warning:", fileName, line); VPrintf(fmt, vlist); Printf("\n"); va_end(vlist); } /*!--------------------------------------------------------------------------* Name: Panic @brief メッセージを出力して停止します。 @param[in] fileName Panic の発生したソースファイル名 @param[in] line Panic の発生した行番号 @param[in] fmt 出力文字列フォーマット @return None. *---------------------------------------------------------------------------*/ void Panic( const char* fileName, int line, const char* fmt, ...) { std::va_list vlist; va_start(vlist, fmt); Printf("%s:%d Panic:", fileName, line); VPrintf(fmt, vlist); Printf("\n"); va_end(vlist); Halt(); } } // namespace internal /*!--------------------------------------------------------------------------* Name: SNPrintf @brief 与えられたバッファへ書式付き文字列を出力します。 @param[out] dst 出力先バッファ @param[in] len 出力先バッファサイズ @param[in] fmt 出力文字列フォーマット @return 出力文字列の文字列長 ('\0'を除く) *---------------------------------------------------------------------------*/ int SNPrintf(char* dst, size_t len, const char* fmt, ...) { std::va_list vlist; va_start(vlist, fmt); int ret = VSNPrintf(dst, len, fmt, vlist); va_end(vlist); return ret; } } // namespace os } // namespace nw