CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
session_UpdateSessionSetting.h
1 /*--------------------------------------------------------------------------------*
2  Copyright (C)Nintendo All rights reserved.
3 
4  These coded instructions, statements, and computer programs contain proprietary
5  information of Nintendo and/or its licensed developers and are protected by
6  national and international copyright laws. They may not be disclosed to third
7  parties or copied or duplicated in any form, in whole or in part, without the
8  prior written consent of Nintendo.
9 
10  The content herein is highly confidential and should be handled accordingly.
11  *--------------------------------------------------------------------------------*/
12 
13 
14 #pragma once
15 
16 #include <nn/pia/session/session_Definitions.h>
17 #include <nn/pia/session/session_Types.h>
18 
19 namespace nn
20 {
21 namespace pia
22 {
23 namespace session
24 {
25 
26 /*!
27  @brief セッション設定の更新処理に関する設定を管理する基底クラスです。
28  @details アプリケーションが本クラスのインスタンスを作成することはありません。 本クラスを継承したクラスを使用する必要があります。
29 
30  @see inet::NexUpdateSessionSetting
31  @see lan::LanUpdateSessionSetting
32  @if CTR_DOC
33  @see nn::pia::local::LocalUpdateSessionSetting
34  @endif
35  @if NIN_DOC
36  @see nn::pia::local::LocalUpdateSessionSetting
37  @endif
38 
39  */
40 
42 {
43 public:
44  enum ModificationFlag
45  {
46  ModificationFlag_ApplicationData = 1
47  };
48  /*!
49  @brief デストラクタ
50  */
52  {
53  }
54 
55  /*!
56  @brief アプリケーション定義のデータを指定します。
57  @details inet::ApplicationDataBufferSizeMax を超えないサイズを指定する必要があります。
58  @param[in] pData セッションに指定するアプリケーション定義データのバッファ。
59  @param[in] size セッションに指定するアプリケーション定義データのサイズ。
60  @return アプリケーション定義データの設定に成功すれば、成功の Result が返されます。
61 
62  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタ、または指定したデータサイズが大きすぎます。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
63  */
64  virtual Result SetApplicationData(const void* pData, uint32_t size) = 0;
65 
66  /*!
67  @cond PRIVATE
68  @brief 指定したアプリケーション定義のデータを取得します。
69  @param[in] pDataBuf 指定したアプリケーション定義データのコピー用バッファ。
70  @param[in] dataBufSize コピー用バッファのサイズ。
71  @return アプリケーション定義データの取得に成功すれば、成功の Result が返されます。
72 
73  @retval nn::pia::ResultInvalidArgument バッファが NULL ポインタです。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
74  @retval nn::pia::ResultInvalidState アプリケーション定義データが設定されていません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
75  @retval nn::pia::ResultBufferShortage 設定されているアプリケーション定義データのサイズがバッファのサイズよりも大きいため、コピーできません。プログラミングエラーです。このエラーが返らないようにソースコードを修正してください。
76  */
77  virtual Result GetApplicationData(void* pDataBuf, uint32_t dataBufSize) const = 0;
78  //! @endcond
79 
80  /*!
81  @cond PRIVATE
82  @brief 指定したアプリケーション定義のデータサイズを取得します。
83  @return アプリケーション定義データサイズが返されます。
84  */
85  virtual uint32_t GetApplicationDataSize() const = 0;
86  //! @endcond
87 
88  /*!
89  @cond PRIVATE
90  @brief デバッグに有用な情報をプリント。
91  */
92  virtual void Trace(uint64_t flag) const;
93  //! @endcond
94 
95  /*!
96  @cond PRIVATE
97  */
98  virtual uint32_t GetModificationFlag() const;
99  virtual bool IsModificationFlagSet(ModificationFlag flag) const;
100  virtual bool IsSetApplicationData() const;
101  //! @endcond
102 
103  /*!
104  @brief 設定をリセットします。
105  */
106  virtual void Reset();
107 
108 protected:
109  // コンストラクタ。
111 
112  void Copy(const UpdateSessionSetting& rhs)
113  {
114  m_ModificationFlag = rhs.m_ModificationFlag;
115  }
116 
117  uint32_t m_ModificationFlag;
118 
119 private:
120  NN_PIA_DISALLOW_COPY(UpdateSessionSetting);
121 };
122 }
123 }
124 } // end of namespace session