1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     boss_NsaDownloadAction.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: 34430 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_BOSS_BOSS_NSA_DOWNLOAD_ACTION_H_
17 #define NN_BOSS_BOSS_NSA_DOWNLOAD_ACTION_H_
18 
19 #include <nn/boss/boss_TaskAction.h>
20 
21 #ifdef __cplusplus
22 
23 namespace nn {
24 namespace boss {
25 
26 /*!
27   @brief        NADLタスクを表すクラスです。NADLタスクを登録する場合などに利用します。
28 */
29 class NsaDownloadAction : public TaskAction
30 {
31 public:
32 /*!
33   @brief        コンストラクタです。
34 */
35     explicit NsaDownloadAction(void);
36 
37 /*!
38   @brief        デストラクタです。
39 */
40     virtual ~NsaDownloadAction(void);
41 
42 /*!
43   @brief        NSAダウンロードの設定を行います。この初期化によってオブジェクトの再利用が可能になります。
44 
45                 この時点では、設定したURLが実際に使用できるか、確認されません。
46                 実際にタスクの実行時に問題があればエラーとなりますので、ご注意ください。
47                 また、接続されるアクセスポイントによっても実行結果が変わる可能性もあります。
48 
49   @param[in]    pUrl    ダウンロードしたいURLを指定します。(最大511文字以内で記述してください)
50   @return       関数の実行結果を返します。以下に挙げる Result を返します。
51   @retval       ResultSuccess       初期化に成功しました。
52   @retval       ResultInvalidUrl    URL文字列のポインタがNULLまたは0文字列です。
53   @retval       上記以外            想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。
54 */
55     nn::Result Initialize(const char* pUrl);
56 
57 /*!
58   @brief        クラス内のプロパティの値を設定します。説明部のデータ型の領域を確保した後、呼び出してください。
59 
60                 下記のプロパティを使用できます。\n
61         識別子                      説明 \n
62         ACTION_URL                  対象のURL。データの型は、char[MAX_URL_LENGTH] です。 \n
63 
64   @param[in]    type    プロパティの識別子を指定します。
65   @param[in]    pValue  値を指定します。
66   @param[in]    size    値のサイズを指定します。
67   @return       関数の実行結果を返します。以下に挙げる Result を返します。
68   @retval       ResultSuccess               設定に成功しました。
69   @retval       ResultInvalidPropertyValue  プロパティ値のポインタがNULLです。
70   @retval       ResultInvalidPropertyType   プロパティタイプがサポート外です。
71   @retval       上記以外                    想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。
72 */
73     nn::Result virtual SetProperty(PropertyType type, const void* pValue, size_t size);
74 
75 /*!
76   @brief        クラス内のプロパティの値を取得します。説明部のデータ型の領域を確保した後、呼び出してください。
77 
78                 下記のプロパティを使用できます。\n
79         識別子                      説明 \n
80         ACTION_URL                  対象のURL。データの型は、char[MAX_URL_LENGTH] です。 \n
81         ACTION_HTTP_HEADER          URLのオプションリクエストヘッダ構造体。データの型は、struct httpRequestHeader[MAX_HTTP_HEADER] です。 \n
82         ACTION_CLIENT_CERT          https通信用の内蔵クライアント証明書。データの型は、nn::http::InternalClientCertId[MAX_CLIENT_CERT] です。 \n
83         ACTION_CLIENT_CERT_NUM      内蔵クライアント証明書の設定数。データの型は、u32 です。 \n
84         ACTION_ROOT_CA              https通信用の内蔵ルート証明書。データの型は、nn::http::InternalCaCertId です。 \n
85         ACTION_ROOT_CA_NUM          内蔵ルート証明書を指定の設定数。データの型は、u32 です。 \n
86         ACTION_PRIVATE_CLIENT_CERT  プライベートクライアント証明書の有効フラグ。データの型は、u8 です。 \n
87         ACTION_PRIVATE_ROOT_CA      プライベートルート証明書の有効フラグ。データの型は、u8 です。 \n
88         ACTION_AP_INFO              HTTPクエリーへAP情報付与のためのアクセスポイント情報種別。データの型は、ApInfoType です。 \n
89 
90   @param[in]    type    プロパティの識別子を指定します。
91   @param[out]   pValue  値を指定します。
92   @param[in]    size    値のサイズを指定します。
93   @return       関数の実行結果を返します。以下に挙げる Result を返します。
94   @retval       ResultSuccess               取得に成功しました。
95   @retval       ResultInvalidPropertyValue  プロパティ値のポインタがNULLです。
96   @retval       ResultInvalidPropertyType   プロパティタイプがサポート外です。
97   @retval       上記以外                    想定外のエラー(エラー内容については、@ref boss_Result.h を参照)。
98 */
99     nn::Result virtual GetProperty(PropertyType type, void* pValue, size_t size);
100 
101 };
102 
103 } // end of namespace boss
104 } // end of namespace nn
105 
106 #endif // __cplusplus
107 
108 #endif /* NN_BOSS_BOSS_NSA_DOWNLOAD_ACTION_H_ */
109 
110