1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     boss_TaskStatus.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: 31623 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_BOSS_BOSS_TASK_STATUS_H_
17 #define NN_BOSS_BOSS_TASK_STATUS_H_
18 
19 #include <nn/boss/boss_Const.h>
20 #include <nn/boss/boss_Result.h>
21 #include <nn/boss/boss_Types.h>
22 
23 #ifdef __cplusplus
24 
25 namespace nn {
26 namespace boss {
27 
28 /*!
29   @brief        タスクステータスを表すクラスです。タスクの状態を取得する場合などに利用します。
30 */
31 class TaskStatus
32 {
33 public:
34 /*!
35   @brief        コンストラクタです。
36 */
37     explicit TaskStatus(void);
38 
39 /*!
40   @brief        デストラクタです。
41 */
42     virtual ~TaskStatus(void);
43 
44 /*!
45   @brief        クラス内のプロパティの値を取得します。説明部のデータ型の領域を確保した後、呼び出してください。
46                 ステータスを確認したいタイミングで、nn::boss::GetTaskStatus()を呼び出す必要があります。
47                 下記のプロパティを使用できます。 \n
48         識別子                     説明 \n
49         TASK_STATE_CODE            タスクの状態情報。データの型は、TaskStateCode です。 \n
50         TASK_RESULT_CODE           タスク実行結果コード。データの型は、TaskResultCode です。 \n
51         TASK_SERVICE_STATUS        タスク属性で指定したURLのサービス利用可能ステータス。データの型は、TaskServiceStatus です。 \n
52         TASK_SERVICE_TERMINATED    タスク属性で指定したURLのサービス利用可能フラグ。データの型は、bool です。 \n
53         TASK_COMM_ERROR_CODE       タスク実行時の通信エラーコード。データの型は、u32 です。 \n
54         TASK_CURRENT_PRIORITY      現在のタスク実行の優先順位。データの型は、u8 です。 \n
55         TASK_EXECUTE_COUNT         タスクの消尽回数。データの型は、u32 です。 \n
56         TASK_PENDING_TIME          タスク実行開始予定時刻からの経過時間。データの型は、u32(秒) です。 \n
57         TASK_START_TIME            2000/1/1を基点としたタスク実行開始予定時刻。データの型は、s64(ナノ秒) です。 \n
58         TASK_PROGRESS              ダウンロード済みバイト数。データの型は、u32 です。 \n
59         TASK_DATA_SIZE             ダウンロード対象のURLの総バイト数。データの型は、u32 です。 \n
60         TASK_CURRENT_STEP          実行中のタスクステップID番号。データの型は、u8 です。 \n
61         TASK_LAST_MODIFIED_TIME    HTTPレスポンスヘッダで返された最終更新日時。データの型は、char[MAX_LASTMODIFIED_LENGTH] です。 \n
62   @param[in]    type    プロパティの識別子を指定します。
63   @param[out]   pValue  値を指定します。
64   @param[in]    size    値のサイズを指定します。
65   @return       関数の実行結果を返します。以下に挙げる Result を返します。
66   @retval       ResultSuccess               取得に成功しました。
67   @retval       ResultInvalidPropertyValue  プロパティ値のポインタがNULLです。
68   @retval       ResultInvalidPropertyType   プロパティタイプがサポート外です。
69   @retval       上記以外                    想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。
70 */
71     Result GetProperty(PropertyType type, void* pValue, size_t size);
72 
73 protected:
74     friend class AccessConfig;
75     NN_PADDING4;
76     TaskStatusInfo      m_Status;
77 };
78 
79 
80 
81 
82 
83 } // end of namespace boss
84 } // end of namespace nn
85 
86 #endif // __cplusplus
87 
88 #endif /* NN_BOSS_BOSS_TASK_STATUS_H_ */
89 
90