1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: boss_Task.h 4 5 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Rev: 34507 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_BOSS_BOSS_TASK_H_ 17 #define NN_BOSS_BOSS_TASK_H_ 18 19 #include <nn/fnd/fnd_TimeSpan.h> 20 #include <nn/boss/boss_Const.h> 21 #include <nn/boss/boss_Result.h> 22 #include <nn/boss/boss_Types.h> 23 #include <nn/boss/boss_TaskAction.h> 24 #include <nn/boss/boss_TaskPolicy.h> 25 #include <nn/boss/boss_TaskStatus.h> 26 #include <nn/boss/boss_TaskError.h> 27 #include <nn/boss/boss_TaskOption.h> 28 29 30 #ifdef __cplusplus 31 32 namespace nn { 33 namespace boss { 34 35 /*! 36 @brief タスクを表すクラスです。タスクの登録や登録解除、タスクの操作の際などに利用します。 37 */ 38 class Task 39 { 40 public: 41 /*! 42 @brief コンストラクタです。 43 */ 44 explicit Task(void); 45 46 /*! 47 @brief デストラクタです。 48 */ 49 virtual ~Task(void); 50 51 /*! 52 @brief タスク登録済のタスクIDを指定して初期化します。この初期化によってオブジェクトの再利用が可能になります。 53 54 @param[in] pTaskId タスクIDを指定します。 TaskId[TASK_ID_LENGTH] 55 @return 関数の実行結果を返します。以下に挙げる Result を返します。 56 @retval ResultSuccess 初期化に成功しました。 57 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 58 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 59 */ 60 nn::Result Initialize(const char* pTaskId); 61 62 /*! 63 @brief タスク登録後、実行間隔を更新します。タスクの実行開始指示後でも変更が可能です。 64 65 有効な実行間隔は、1~3時間です。 66 67 @param[in] interval 実行間隔を指定します。単位は時間です。 68 @return 関数の実行結果を返します。以下に挙げる Result を返します。 69 @retval ResultSuccess 実行間隔の更新に成功しました。 70 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 71 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 72 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 73 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 74 */ UpdateInterval(u32 interval)75 inline nn::Result UpdateInterval(u32 interval){return UpdateIntervalWithSec(interval*60*60);} 76 77 /*! 78 @brief タスク登録後、実行間隔を更新します。単位は秒です。タスクの実行開始指示後でも変更が可能です。 79 80 @param[in] intervalSec 実行間隔を指定します。単位は秒です。 81 @return 関数の実行結果を返します。以下に挙げる Result を返します。 82 @retval ResultSuccess 実行間隔の更新に成功しました。 83 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 84 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 85 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 86 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 87 */ 88 nn::Result UpdateIntervalWithSec(u32 intervalSec); 89 90 /*! 91 @brief タスク登録後、消尽回数を更新します。タスクの実行開始指示後でも変更が可能です。 92 93 @param[in] count 実行回数を指定します。 94 @return 関数の実行結果を返します。以下に挙げる Result を返します。 95 @retval ResultSuccess 消尽回数の更新に成功しました。 96 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 97 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 98 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 99 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 100 */ 101 nn::Result UpdateCount(u32 count); 102 103 /*! 104 @brief 実行間隔を取得します。単位は時間です。タスクの実行開始指示後でも変更が可能です。 105 106 @retval 実行間隔が返ります。<BR> 107 */ GetInterval(void)108 inline u32 GetInterval(void) 109 { 110 const u32 intervalSec = GetIntervalSec(); 111 if(intervalSec > 0) 112 { 113 return (intervalSec / (60*60)); 114 } 115 else 116 { 117 return 0; 118 } 119 } 120 121 /*! 122 @brief 実行間隔を取得します。単位は秒です。 123 124 @retval 実行間隔が返ります。<BR> 125 */ 126 u32 GetIntervalSec(void); 127 128 /*! 129 @brief 消尽回数を取得します。 130 131 @return 消尽回数が返ります。<BR> 132 @retval U32_CANNOT_GET_DATA データが取得できません。 133 */ 134 u32 GetCount(void); 135 136 /*! 137 @brief タスクのサービスステータス取得します。 138 139 サービスステータスは、サーバからサービス終了の通知を検出した場合、そのステータスを確認できます。 140 但し、タスク登録後、一度もサーバへアクセスしていない状態では、@ref SERVICE_UNKNOWN となりますので、ご注意ください。 141 142 @return タスクのサービスステータスが返ります。<BR> 143 */ 144 TaskServiceStatus GetServiceStatus(void); 145 146 /*! 147 @brief タスクの開始指示します。 148 149 インフラ接続可能な状態になると、スケジューリングされたタスクがバックグラウンドで自動実行されます。 150 タスクの実行が終了すると、実行結果がエラーかどうかに関わらず、タスクの属性で指定した消尽回数が1差し引かれます。 151 その結果、消尽回数がゼロでない限り、タスクの属性で指定しました実行間隔時間後に、再度タスクが実行されます。 152 なお、消尽回数がゼロになったタスクは、内部データベースの容量の上限に達した場合、自動的に削除されることがありますので、ご注意ください。 153 以下の場合は、タスク開始指示を行ってもタスク実行のスケジューリングされませんので、ご注意ください。 154 ・消尽回数がゼロのタスク<BR> 155 ・タスクの実行優先順位が@ref PRIORITY_STOPPED のタスク<BR> 156 ・ペアレンタルコントロールが有効で、タスク属性でペアレンタルコントロールの解除がされていない場合<BR> 157 ・EULA同意がされていない状態で、タスク属性でEULA同意の解除がされていない場合<BR> 158 ・ゾーンAPからダウンロードされたポリシーリストで、タスク実行が停止された場合<BR> 159 ・ダウンロードサービスを行うサーバからサービス停止の提示されていた場合<BR> 160 ・管理者が全タスクを一時的に停止中の場合<BR> 161 良くあるケースの確認方法として、消尽回数の確認は、@ref GetCount 関数によって可能です。 162 ペアレンタルコントロールおよび、EULA同意については、Configツールなどで設定が可能です。 163 管理者が全タスクを一時的に停止した場合、実行中のタスクについては、@ref GetState 関数によって @ref TASK_PAUSED が返されますので識別が可能です。 164 <BR> 165 タスク完了待機の方法は、下記のような方法があります。 166 ・@ref WaitFinish 関数による実行完了を待つ方法 167 ・最大の時間待ち時間を指定して @ref WaitFinish 関数による実行完了を待つ方法 168 ・@ref GetState 関数による実行完了タスク状態のポーリングも使用可能 169 ・@ref RegisterNewArrivalEvent 関数で登録した Event による新着イベント待ちを方法 170 なお、完了を検知後、@ref GetState でタスクの状態、@ref GetResult でタスクの実行結果コード、 171 @ref GetHttpStatusCode でhttp通信の結果コードが確認できます。 172 なお、その他詳細情報は、@ref GetStateDetail で取得可能です。 173 <BR> 174 175 @return 関数の実行結果を返します。以下に挙げる Result を返します。 176 @retval ResultSuccess タスクの開始指示に成功しました。 177 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 178 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 179 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 180 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 181 */ 182 nn::Result Start(void); 183 184 /*! 185 @brief タスクの即時開始指示します。あらかじめ、インフラ接続可能な状態にした後に呼び出す必要があります。 186 187 スケジュールされた時間に先駆けタスク実行が可能になりますので、バックグラウンドで動作するタスクを必要応じて即実行する用途に向いています。 188 この即時開始指示を行いますと、実行中の他のタスクがあった場合でも、そのタスクを中断して最優先で対象のタスクを実行することができます。 189 @ref Start との違いは、すでに実行時刻がきている状態である点、通信が中断した場合は、リジューム状態には至らず、タスク実行結果がエラーとなります。 190 また、注意点として、対象のタスクのみ1回だけ実行したい場合は、消尽回数を「1」に設定をしてください。 191 「1」以上設定しますと通常のタスクと同じように消尽回数がゼロになるまでバックグラウンドでタスクが自動実行されます。 192 インフラ接続可能にするためには、nn::ac::Connect()を参照ください。 193 194 @return 関数の実行結果を返します。以下に挙げる Result を返します。 195 @retval ResultSuccess タスクの即時開始指示に成功しました。 196 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 197 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 198 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 199 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 200 */ 201 nn::Result StartImmediate(void); 202 203 /*! 204 @brief タスクの実行中止指示します。 205 206 一度中止指示を行ったタスクは、@ref Start で再度開始指示ができます。 207 中止状態のタスクは、@ref GetState 関数を呼び出すとタスクの状態として @ref TASK_STOPPED が返ります。 208 対象のタスクが実行中であった場合は、タスクの実行は中止され、タスクの実行結果として @ref TASK_CANCELED が返ります。 209 210 @return 関数の実行結果を返します。以下に挙げる Result を返します。 211 @retval ResultSuccess タスクの実行中止指示に成功しました。 212 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 213 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 214 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 215 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 216 */ 217 nn::Result Cancel(void); 218 219 /*! 220 @brief 指定時間内にタスクの完了待ちを行います。タイムアウト機能がついた、@ref WaitFinish です。 221 222 URLの更新日時が以前と同じ日時の場合、ダウンロードはされずタスクの完了にはなりませんので、ご注意ください。 223 224 @param[in] timeout タイムアウト時間を指定します。 225 @return 関数の実行結果を返します。以下に挙げる Result を返します。 226 @retval ResultSuccess @ref TASK_DONE または、@ref TASK_ERROR でタスクが完了しました。 227 @retval ResultWaitFinishTaskNotDone タスクの開始指示されていないか(@ref TASK_REGISTERED 状態)、タスク実行が停止中(@ref TASK_STOPPED 状態)です。再度タスクの開始指示を行ってからタスクの完了待ちをしてください。 228 @retval ResultWaitFinishTimeout WaitFinish関数でタイムアウトになりました。再度完了待ちを行うなどの対応を行ってください。 229 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 230 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 231 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 232 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 233 */ 234 nn::Result WaitFinish(const nn::fnd::TimeSpan& timeout); 235 236 /*! 237 @brief タスクの完了待ち指示します。 238 239 URLの更新日時が以前と同じ日時の場合、ダウンロードはされずタスクの完了にはなりませんので、ご注意ください。 240 241 @return 関数の実行結果を返します。以下に挙げる Result を返します。 242 @retval ResultSuccess @ref TASK_DONE または、@ref TASK_ERROR でタスクが完了しました。 243 @retval ResultWaitFinishTaskNotDone タスクの開始指示されていないか(@ref TASK_REGISTERED 状態)、タスク実行が停止中(@ref TASK_STOPPED 状態)です。再度タスクの開始指示を行ってからタスクの完了待ちをしてください。 244 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 245 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 246 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 247 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 248 */ 249 nn::Result WaitFinish(void); 250 251 /*! 252 @brief タスク状態の取得します。 253 254 通常、タスクの状態は、下記の①から⑤までを遷移します。 255 ①TASK_REGISTERED(登録済み)<BR> 256 ②TASK_WAITING_TIMER(Start()後、時間待ち)<BR> 257 ③TASK_WAITING(実行待ち)<BR> 258 ④TASK_RUNNINGまたは、TASK_RETRY(実行中)<BR> 259 ⑤TASK_DONEまたは、TASK_ERROR(実行終了状態)<BR> 260 特殊な状態として、TASK_PAUSED(一時停止中)、TASK_STOPPED(Cancel()による停止中)があります。 261 また、短時間で状態が変わる場合もあり、すべての状態を捕捉できない場合があることにご注意ください。 262 263 @param[in] acknowledge タスク実行が終わると、実行結果を確認できるように実行終了状態を保持します。 264 このフラグをtrueにして呼び出しますと、実行終了状態を保持を解除します。 265 仮に消尽回数がゼロでないタスクの場合は、前回のタスク実行完了直後に再スケジューリングされますので、 266 次回の返り値は、@ref TASK_WAITING_TIMER に切り替わることになります。 (省略可能) 267 @param[out] pCount 消尽回数が返ります。 (省略可能) 268 @param[out] pStepID タスクステップIDが返ります。(省略可能) 269 @return タスクの状態を示すコードが返ります。<BR> 270 */ 271 TaskStateCode GetState(bool acknowledge=false, u32* pCount=NULL, u8* pStepID=NULL); 272 273 /*! 274 @brief 通信エラーコードを取得します。 275 276 下記は、よくあるhttp通信におけるレスポンスコードの例です。<BR> 277 200 正常なhttp通信結果です。<BR> 278 206 正常なhttp通信結果ですが、まだ継続データがある状態です。<BR> 279 401 Basic認証結果が正しくありません。Basic認証には対応していませんので、使用しないでください。<BR> 280 404 URLコンテンツが見つかりません。URLが正しいか、コンテンツが削除されていないか確認ください。<BR> 281 403 アクセスが認められていないURLが指定されました。URLが正しいか確認ください。<BR> 282 500 サーバ側の問題でエラーが発生しました。サーバの運用者に連絡ください。<BR> 283 284 @param[out] pCount 消尽回数が返ります。 (省略可能) 285 @param[out] pStepID タスクステップIDが返ります。(省略可能) 286 @return 通信エラーコードが返ります。<BR> 287 @retval U32_CANNOT_GET_DATA データが取得できません。 288 */ 289 u32 GetHttpStatusCode(u32* pCount=NULL, u8* pStepID=NULL); 290 291 /*! 292 @brief @ref nn::boss::GetHttpStatusCode の旧名です。 293 互換性のために残しているものですので、新規利用は避けてください。 294 */ 295 u32 GetCommErrorCode(u32* pCount=NULL, u8* pStepID=NULL) NN_ATTRIBUTE_DEPRECATED; 296 297 /*! 298 @brief タスク結果コードを取得します。 299 300 タスク結果コードについては、@ref TaskResultCode を参照してください。 301 <BR> 302 よくあるタスク実行中のエラーについて <BR> 303 ①インフラ通信が切断された場合 <BR> 304 @ref HTTP_ERROR_RECV <BR> 305 @ref HTTP_ERROR_CONNECT <BR> 306 ②サーバへの接続が失敗した場合(URLが示すサーバが見つからない場合) <BR> 307 @ref HTTP_ERROR_DNS <BR> 308 @ref HTTP_ERROR_CONNECT <BR> 309 ③サーバへの接続が失敗した場合(HTTPSのネゴシエーションに失敗した場合) <BR> 310 @ref SSL_ERROR_FAILED <BR> 311 @ref SSL_ERROR_VERIFY_COMMON_NAME <BR> 312 @ref SSL_ERROR_VERIFY_ROOT_CA <BR> 313 @ref SSL_ERROR_VERIFY_CHAIN <BR> 314 @ref SSL_ERROR_VERIFY_DATE <BR> 315 ④NSAダウンロードが失敗した場合( NSAストレージ領域が不足した場合)<BR> 316 @ref NSA_ERROR_STORAGE_INSUFFICIENCY <BR> 317 ⑤NSAダウンロードが失敗した場合( NSAフォーマット以外か、通信エラーで内容が壊れたファイルをダウンロードした場合)<BR> 318 @ref NSA_ERROR_INVALID_FORMAT <BR> 319 @ref NSA_ERROR_VERIFY_HASH <BR> 320 @ref NSA_ERROR_VERIFY_SIGNATURE <BR> 321 @ref NSA_NSD_ERROR_VERIFY_HASH <BR> 322 @ref NSA_NSD_ERROR_VERIFY_SIGNATURE <BR> 323 @ref NSA_NSD_ERROR_INVALID_FORMAT <BR> 324 <BR> 325 326 @param[out] pCount 消尽回数が返ります。 (省略可能) 327 @param[out] pStepID タスクステップIDが返ります。(省略可能) 328 @return タスク結果コードが返ります。<BR> 329 */ 330 TaskResultCode GetResult(u32* pCount=NULL, u8* pStepID=NULL); 331 332 /*! 333 @brief タスク状態を取得します。 334 335 あらかじめ、@ref TaskStatus のインスタンスを用意ください。また、このインスタンスは、128B程度のメモリを必要としますのでご注意ください。 336 それぞれの属性値の取得については、@ref TaskStatus のGetProperty()を参照ください。 337 338 @param[out] pStatus タスクステータスが返ります。 339 @param[in] acknowledge タスク実行が終わると、実行結果を確認できるように、@ref TaskStatus 内のタスクの実行終了状態を 340 示すコード @ref TaskStateCode を保持します。このフラグをtrueにして呼び出しますと、 341 この実行終了状態の保持を解除します。 342 仮に消尽回数がゼロでないタスクの場合は、前回のタスク実行完了直後に再スケジューリングされますので、 343 次回からタスクの状態は、@ref TASK_WAITING_TIMER に切り替わることになります。 (省略可能) 344 @param[out] pStepID タスクステップIDが返ります。 345 @param[in] taskStep タスクステップIDを指定します。 (省略時はカレントステップ) 346 @return 関数の実行結果を返します。以下に挙げる Result を返します。 347 @retval ResultSuccess タスク状態を取得に成功しました。 348 @retval ResultInvalidTaskStatus タスクステータスのポインタがNULLです。 349 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 350 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 351 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 352 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 353 */ 354 nn::Result GetStateDetail(TaskStatus* pStatus, bool acknowledge=false, u8* pStepID=NULL, u8 taskStep=CURRENT_STEP_ID); 355 356 /*! 357 @brief @ref nn::boss::GetStateDetail の旧名です。 358 互換性のために残しているものですので、新規利用は避けてください。 359 */ 360 nn::Result GetStatus(TaskStatus* pStatus, u8* pStepID=NULL, u8 taskStep=CURRENT_STEP_ID) NN_ATTRIBUTE_DEPRECATED; 361 362 /*! 363 @brief タスクエラー状態を取得します。 364 365 あらかじめ、@ref TaskError のインスタンスを用意ください。また、このインスタンスは、136B程度のメモリを必要としますのでご注意ください。 366 367 @param[out] pTaskError タスクエラー状態が返ります。 368 @param[out] pStepID タスクステップIDが返ります。 369 @param[in] taskStep タスクステップIDを指定します。 (省略時はカレントステップ) 370 @return 関数の実行結果を返します。以下に挙げる Result を返します。 371 @retval ResultSuccess 取得に成功しました。 372 @retval ResultInvalidTaskError タスクエラー情報のポインタがNULLです。 373 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 374 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 375 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 376 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 377 */ 378 nn::Result GetError(TaskError* pTaskError, u8* pStepID=NULL, u8 taskStep=CURRENT_STEP_ID); 379 380 /*! 381 @brief 登録済のタスク情報を取得します。 382 383 あらかじめ、@ref TaskPolicy のインスタンス、@ref TaskAction のインスタンス、 384 @ref TaskOptionのインスタンスを用意ください。 385 それぞれの属性値の取得については、各クラスのGetProperty()を参照ください。 386 387 @param[out] pPolicy タスクポリシーを指定します。 388 @param[out] pAction タスクアクションを指定します。 389 @param[out] pOption タスクオプションを指定します。 390 @param[in] taskStep タスクステップID指定 (省略時はカレントステップ) 391 @return 関数の実行結果を返します。以下に挙げる Result を返します。 392 @retval ResultSuccess 取得に成功しました。 393 @retval ResultInvalidTaskId タスクIDのポインタがNULLまたは0文字列です。 394 @retval ResultInvalidPolicy ポリシィ情報のポインタがNULLです。 395 @retval ResultInvalidAction タスクアクションのポインタがNULLです。 396 @retval ResultInvalidOption タスクオプションのポインタがNULL,またはoptionコードが範囲外です。 397 @retval ResultTaskNotExist 指定されたタスクIDが見つかりません。登録済であるか確認ください。 398 @retval ResultIpcNotSessionInitialized セッションが初期化されていません。@ref Initialize の呼び出し前に本関数が呼び出されると、このResultが返ります。BOSSライブラリを利用する際には、必ず初めに@ref Initialize を呼び出してください。 399 @retval 上記以外 想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。 400 */ 401 nn::Result GetInfo(TaskPolicy* pPolicy, TaskAction* pAction, TaskOption* pOption, u8 taskStep=CURRENT_STEP_ID); 402 403 /*! 404 @brief タスクIDを取得します。 405 406 @return タスクIDの文字列が返ります。<BR> 407 */ 408 char* GetTaskId(void); 409 410 protected: 411 friend class AccessConfig; 412 TaskConfig m_Task; 413 private: 414 bool CheckTaskId(void); 415 416 }; 417 418 } // end of namespace boss 419 } // end of namespace nn 420 421 #endif // __cplusplus 422 423 #endif /* NN_BOSS_BOSS_TASK_H_ */ 424