/*---------------------------------------------------------------------------* Project: Horizon File: boss_Lib.h Copyright (C)2009 Nintendo Co., Ltd. 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: 26265 $ *---------------------------------------------------------------------------*/ #ifndef NN_BOSS_BOSS_LIB_H_ #define NN_BOSS_BOSS_LIB_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __cplusplus namespace nn { namespace boss { //-------------------------------------------------------------- /*! @brief ライブラリを初期化します。 @return 処理の結果が返ります。
@retval Description== @ref ER_ALREADY_INITIALIZED 「初期化済み」を表すエラー */ nn::Result Initialize(void); //-------------------------------------------------------------- /*! @brief ライブラリの終了処理を行います。 @return 処理の結果が返ります。
@retval Description== @ref ER_IPC_NOT_SESSION_INITIALIZED 「IPCのセッションが初期化されていない。(権限不適合の場合など)」を表すエラー */ nn::Result Finalize(void); //-------------------------------------------------------------- /*! @brief https用の独自ルート証明書をライブラリに登録します。 他ルート証明書がすでに設定されている状況でこのAPIが呼ばれた場合、エラーとなります。 @param[in] pCertData ルート証明書データ。データフォーマットは、ASN.1フォーマットです。 @param[in] certDataSize クライアント証明書データのサイズを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result RegisterPrivateRootCa(const u8* pCertData, size_t certDataSize); //-------------------------------------------------------------- /*! @brief https用の独自クライアント証明書および、プライベートキーをライブラリに登録します。 他クライアント証明書がすでに設定されている状況でこのAPIが呼ばれた場合、エラーとなります。 @param[in] pCertData クライアント証明書のデータ。データフォーマットは、ASN.1フォーマットです。 @param[in] certDataSize クライアント証明書データデータのサイズを指定します。 @param[in] pPrivateKeyData プライベート秘密鍵のデータ。データフォーマットは、ASN.1フォーマットです。 @param[in] privateKeyDataSize プライベート秘密鍵のデータデータのサイズを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result RegisterPrivateClientCert(const u8* pCertData, size_t certDataSize , const u8* pPrivateKeyData, size_t privateKeyDataSize); //-------------------------------------------------------------- /*! @brief タスクをライブラリに登録します。 @param[in] pTask タスク名を指定したタスクを指定します。 @param[in] pPolicy タスクポリシーを指定します。 @param[in] pAction タスクアクションを指定します。 (現在、@ref NsaDownloadAction を指定可) @param[in] pOption タスクオプションを指定します。(省略可能) @param[in] taskStep タスクステップのIDを指定します。 (1つのタスク実行ステップしかない場合は、省略可) @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_TASK_ID 「タスクIDのポインタがNULLまたは0文字列です。」を表すエラー @retval Description== @ref ER_INVALID_POLICY 「ポリシィ情報のポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_ACTION 「タスクアクションのポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_TASK_STEP 「タスク登録でカレントステップIDが指定されました。」を表すエラー @retval Description== @ref ER_INVALID_TASK_PRIOLITY 「タスクプライオリティの指定が範囲外です。」を表すエラー @retval Description== @ref ER_TASK_PERMISSION_OUT_OF_RANGE 「タスク許可情報が範囲外です。」を表すエラー @retval Description== @ref ER_SCHEDULING_POLICY_OUT_OF_RANGE 「スケジュールポリシィが範囲外です」を表すエラー @retval Description== @ref ER_INVALID_TASK_TARGETDURATION 「タスク継続時間が範囲外です。」を表すエラー @retval Description== @ref ER_ACTIONCODE_OUT_OF_RANGE 「タスクアクションコードが範囲外です。」を表すエラー @retval Description== @ref ER_INVALID_URL 「URL文字列のポインタがNULLまたは0文字列です。」を表すエラー @retval Description== @ref ER_APINFOTYPE_OUT_OF_RANGE 「AP情報タイプが範囲外です。」を表すエラー @retval Description== @ref ER_INVALID_FILEPATH 「ファイルパス文字列のポインタがNULLまたは0文字列です。」を表すエラー @retval Description== @ref ER_INVALID_OPTION 「タスクオプションのポインタがNULL,またはoptionコードが範囲外です。」を表すエラー @retval Description== @ref ER_CANT_DELETE_SDB_DATA 「*****」を表すエラー @retval Description== @ref ER_INVALID_MEM_ALOCATE 「不正なメモリアロケーション」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result RegisterTask(Task* pTask, TaskPolicy* pPolicy , TaskAction* pAction , TaskOption* pOption=NULL , u8 taskStep=DEFAULT_STEP_ID); //-------------------------------------------------------------- /*! @brief ライブラリに登録済のタスクを削除します。 @param[in] pTask 登録済のタスクを指定します。 @param[in] taskStep タスクステップのIDを指定します。(1つのタスク実行ステップしかない場合は、省略可) @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_TASK_ID 「タスクIDのポインタがNULLまたは0文字列です。」を表すエラー @retval Description== @ref ER_TASK_NOT_EXIST 「指定されたタスクIDが見つからない。」を表すエラー @retval Description== @ref ER_CANT_UNREGISTER_TASK 「タスク状態により、UnregisterTask 出来ない」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result UnregisterTask(Task* pTask, u8 taskStep=DEFAULT_STEP_ID); //-------------------------------------------------------------- /*! @brief ライブラリに登録済のタスクのポリシーを更新します。 @param[in] pTask 登録済のタスクを指定します。 @param[in] pPolicy 変更内容が入ったタスクポリシーを指定します。 @param[in] taskStep タスクステップのIDを指定します。(1つのタスク実行ステップしかない場合は、省略可) @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_TASK_ID 「タスクIDのポインタがNULLまたは0文字列です。 」を表すエラー @retval Description== @ref ER_INVALID_POLICY 「ポリシィ情報のポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_TASK_PRIOLITY 「タスクプライオリティの指定が範囲外です。」を表すエラー @retval Description== @ref ER_TASK_PERMISSION_OUT_OF_RANGE 「タスク許可情報が範囲外です。」を表すエラー @retval Description== @ref ER_SCHEDULING_POLICY_OUT_OF_RANGE 「スケジュールポリシィが範囲外です」を表すエラー @retval Description== @ref ER_INVALID_TASK_TARGETDURATION 「タスク継続時間が範囲外です。」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result ReconfigureTask(Task* pTask, TaskPolicy* pPolicy, u8 taskStep=DEFAULT_STEP_ID); //-------------------------------------------------------------- /*! @brief 登録済のタスクのID覧取得を取得します。 @param[out] pTaskIdList タスクID一覧を格納するオブジェクトを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_TASKID_LIST 「タスクID一覧取得用のポインタがNULLです。」を表すエラー @retval Description== @ref ER_APLI_NOT_EXIST 「指定されたアプリIDが見つからない。」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetTaskIdList(TaskIdList* pTaskIdList); //-------------------------------------------------------------- /*! @brief 登録済の指定したタスクの各ステップ一覧を取得します。 @param[in] pTaskId 登録済のタスクを指定します。 @param[out] pStepIdList タスクステップID一覧を格納するオブジェクトを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_TASK_ID 「タスクIDのポインタがNULLまたは0文字列です。」を表すエラー @retval Description== @ref ER_INVALID_STEPID_LIST 「ステップID一覧取得用のポインタがNULLです。」を表すエラー @retval Description== @ref ER_APLI_NOT_EXIST 「指定されたアプリIDが見つからない。」を表すエラー @retval Description== @ref ER_TASK_NOT_EXIST 「指定されたタスクIDが見つからない。」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetStepIdList(const char* pTaskId, StepIdList* pStepIdList); //-------------------------------------------------------------- /*! @brief NADLタスクなどでBOSSDが利用するBOSSストレージを登録します。 この登録をしないと、NSデータは、ダウンロードされません。 @param[in] storageId ストレージ(追加データ)の識別子を指定します。 @param[in] size ストレージ領域内で使用可能な最大の合計サイズを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result RegisterStorage(nn::fs::ExtSaveDataId storageId, size_t size); //-------------------------------------------------------------- /*! @brief 登録済のBOSSストレージを削除します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result UnregisterStorage(void); //-------------------------------------------------------------- /*! @brief ダウンロードされた新着NSコンテンツがあるか確認します。 @param[out] pFlag 新着NSコンテンツがあればtrueが返ります。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NEWARRIVAL_FLAG 「新着フラグのポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetNewArrivalFlag(bool* pFlag); //-------------------------------------------------------------- /*! @brief 新着NSコンテンツがあった場合にシグナルされるイベントを登録します。 @param[in] event イベントクラスを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NEWARRIVAL_FLAG 「新着フラグのポインタがNULLです。」を表すエラー */ nn::Result GetNewArrivalEvent(nn::os::Event* event); //-------------------------------------------------------------- /*! @brief OptoutFlagを設定します。 @param[in] flag OptoutFlagを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result SetOptoutFlag(bool flag); //-------------------------------------------------------------- /*! @brief OptoutFlagを取得します。 @param[out] pFlag OptoutFlagが返ります。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_OPTOUT_FLAG 「OPTOUTフラグのポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetOptoutFlag(bool* pFlag); //-------------------------------------------------------------- /*! @brief データタイプを指定して、NSコンテンツの一覧を取得します。 @param[in] dataType データタイプを指定します。 (DATA_TYPE_ALLで全データタイプを指定可) @param[out] pNsDataId コンテンツデータ一覧を格納するオブジェクトを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_IDLIST 「NSデータリスト情報のポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetNsDataIdList(u32 dataType, NsDataIdList* pNsDataId); //-------------------------------------------------------------- /*! @brief 共有NSDを除外して、NSコンテンツの一覧を取得します。つまり共有NSDが存在しても、呼び出したアプリ自身のNSDのみ一覧に含まれます。 @param[in] dataType データタイプを指定します。 (DATA_TYPE_ALLで全データタイプを指定可) @param[out] pNsDataId NSDのシリアルID一覧を格納するオブジェクトを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_IDLIST 「NSデータリスト情報のポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetOwnNsDataIdList(u32 dataType, NsDataIdList* pNsDataId); //-------------------------------------------------------------- /*! @brief NS新着コンテンツの一覧を取得します。 この操作で、すべての一覧を取得すると、新着フラグは落ちます。 @param[in] dataType データタイプを指定します。 (DATA_TYPE_ALLで全データタイプを指定可) @param[out] pNsDataId コンテンツデータ一覧を格納するオブジェクトを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_IDLIST 「NSデータリスト情報のポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetNewDataNsDataIdList(u32 dataType, NsDataIdList* pNsDataId); //-------------------------------------------------------------- /*! @brief 共有NSDを除外して、NS新着コンテンツの一覧を取得します。つまり共有NSDが存在しても、呼び出したアプリ自身のNSDのみ一覧に含まれます。 @param[in] dataType データタイプを指定します。 (DATA_TYPE_ALLで全データタイプを指定可) @param[out] pNsDataId NSDのシリアルID一覧を格納するオブジェクトを指定します。 @return 処理の結果が返ります。
@retval Description== @ref ER_INVALID_NSDATA_IDLIST 「NSデータリスト情報のポインタがNULLです。」を表すエラー @retval Description== @ref ER_INVALID_APPID_STORAGE_NOTFOUND 「APPIDに対応したストレージがない」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_NSDATA_INVALID_FORMAT 「NSD Data フォーマット異常」を表すエラー @retval Description== @ref ER_INVALID_NSDATA_GETHEAD_SIZE 「不正なNSDATAのSIZEパラメータ指定」を表すエラー @retval Description== @ref ER_FILE_ACCESS 「ファイルアクセスに失敗」を表すエラー */ nn::Result GetOwnNewDataNsDataIdList(u32 dataType, NsDataIdList* pNsDataId); } // end of namespace boss } // end of namespace nn #endif // __cplusplus #endif /* NN_BOSS_BOSS_LIB_H_ */