1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     http_Common.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: 26457 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_HTTP_HTTP_COMMON_H_
17 #define NN_HTTP_HTTP_COMMON_H_
18 
19 #include <nn/Result.h>
20 
21 #ifdef __cplusplus
22 
23 #include <nn/http/http_ConnectionIpc.h>
24 
25 namespace nn {
26 namespace http {
27     //----------------------------------------
28     //! @name ライブラリ全体の初期化、終了処理
29     //@{
30 
31     /*!
32       @brief HTTPライブラリの初期化を実施します。HTTPライブラリをリンクしているプロセスは、ライブラリ利用前に一度呼び出す必要があります。
33 
34                     @ref nn::http::ConnectionのAddPostData系関数(POSTデータのConnect前登録関数)を利用する場合は、POSTデータ用バッファを引数で設定する必要があります。<BR/>
35                     AddPostData系関数を使用しない場合は、引数には何も設定する必要はありません。(つまりPOSTを使用する場合でも、SendPostData系関数のみ使用する場合は、引数には何も設定する必要はありません。)<BR/>
36                     <BR/>
37                     POSTデータ用バッファは、登録されたPOSTデータの一時保管用に使用されます。<BR/>
38                     そのためサイズは、「同時期に登録するPOSTデータの合計サイズの最大値」以上にする必要があります。<BR/>
39                     (@ref nn::http::Connectionに登録したPOSTデータは、POSTデータ用バッファに一時保管され、@ref nn::http::Connection::Connect 時にPOST送信され、@ref nn::http::Connection::Finalize で解放されます。
40                     よってPOSTデータ用バッファのサイズは、同時期に存在するFinalize前の @ref nn::http::Connectionに登録されているPOSTデータの合計サイズの最大値以上が必要になります。)
41 
42       @param[in] bufferAddress POSTデータ用バッファの先頭を指すポインタ。バッファ用メモリは4096 バイト整合である必要があります。
43       @param[in] bufferSize    POSTデータ用バッファのサイズ
44       @return 処理の結果が返ります。<BR>
45       @retval Description==ER_ALREADY_INITIALIZED 「すでに初期化済み」を表すエラー。
46     */
47     Result Initialize(uptr bufferAddress = 0, size_t bufferSize = 0);
48 
49     /*!
50       @brief HTTPライブラリの終了処理を実施します。HTTPライブラリをリンクしているプロセスは、ライブラリ利用終了後に一度呼び出す必要があります。
51       @return 処理の結果が返ります。<BR>
52       @retval Description==ER_NOT_INITIALIZED 「初期化されていない」を表すエラー。
53     */
54     Result Finalize(void);
55 
56     /*!
57       :private
58       @brief HTTPライブラリで管理しているDNSキャッシュをクリアします。
59       @return 処理の結果が返ります。<BR>
60     */
61     Result ClearDnsCaches(void);
62 
63     //@}
64 
65     namespace {
66         /**
67          @brief コネクション用IPCポートの名称
68          */
69         const char PORT_NAME_CONNECTION[]        = "http:C";
70 
71     }
72 } // end of namespace http
73 } // end of namespace nn
74 
75 #endif /*__cplusplus*/
76 
77 
78 /*!
79   @addtogroup nn_http                       http
80   @{
81 */
82 
83 /*!
84   @brief 対応する C++ 関数 @ref nn::http::Initialize を参照してください。
85 */
86 NN_EXTERN_C nnResult nnhttpInitialize(uptr bufferAddress = 0, size_t bufferSize = 0);
87 
88 /*!
89   @brief 対応する C++ 関数 @ref nn::http::Finalize を参照してください。
90 */
91 NN_EXTERN_C nnResult nnhttpFinalize(void);
92 
93 /*!
94   @}
95 */
96 
97 #endif /* NN_HTTP_HTTP_COMMON_H_ */
98