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: 30213 $ 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 関数の実行結果を返します。以下に挙げる Result を返します。<BR> 45 @retval ResultSuccess 処理に成功しました。HTTPライブラリは使用可能です。 46 @retval ResultClientProcessMaxErr 同時利用可能なクライアントプロセス最大数のプロセスがすでに利用中を表すエラー。ある程度の時間を待機することで(その間に他モジュールが @ref Finalize を実行すれば)、再実行が成功する場合があります。 47 @retval ResultIpcSessionMaxErr 同時に接続可能なIPCセッション数のセッションがすでに接続中を表すエラー。ある程度の時間を待機することで(その間に他のIPCセッションが成功すれば)、再実行が成功する場合があります。 48 @retval ResultAlreadyInitializedErr 「すでに初期化済みです」を表すエラー。HTTPライブラリはすでに使用可能です。 49 @retval 上記以外 想定外のエラー(エラー内容については、@ref http_Result.h を参照)。 50 */ 51 Result Initialize(uptr bufferAddress = 0, size_t bufferSize = 0); 52 53 /*! 54 @brief HTTPライブラリの終了処理を実施します。HTTPライブラリをリンクしているプロセスは、ライブラリ利用終了後に一度呼び出す必要があります。 55 @return 関数の実行結果を返します。以下に挙げる Result を返します。<BR> 56 @retval ResultSuccess 処理に成功しました。 57 @retval ResultNotInitializedErr 「初期化されていない」を表すエラー。Finalizeの実行は不要です。 58 @retval 上記以外 想定外のエラー(エラー内容については、@ref http_Result.h を参照)。 59 */ 60 Result Finalize(void); 61 62 /*! 63 :private 64 @brief HTTPライブラリで管理しているDNSキャッシュをクリアします。 65 @return 関数の実行結果を返します。以下に挙げる Result を返します。<BR> 66 @retval ResultSuccess 処理に成功しました。 67 @retval 上記以外 想定外のエラー(エラー内容については、@ref http_Result.h を参照)。 68 */ 69 Result ClearDnsCaches(void); 70 71 //@} 72 73 namespace { 74 /** 75 @brief コネクション用IPCポートの名称 76 */ 77 const char PORT_NAME_CONNECTION[] = "http:C"; 78 79 } 80 } // end of namespace http 81 } // end of namespace nn 82 83 #endif /*__cplusplus*/ 84 85 86 /*! 87 @addtogroup nn_http http 88 @{ 89 */ 90 91 /*! 92 @brief 対応する C++ 関数 @ref nn::http::Initialize を参照してください。 93 */ 94 NN_EXTERN_C nnResult nnhttpInitialize(uptr bufferAddress = 0, size_t bufferSize = 0); 95 96 /*! 97 @brief 対応する C++ 関数 @ref nn::http::Finalize を参照してください。 98 */ 99 NN_EXTERN_C nnResult nnhttpFinalize(void); 100 101 /*! 102 @} 103 */ 104 105 #endif /* NN_HTTP_HTTP_COMMON_H_ */ 106