CTR Pia  4.11.3
Game Communication Engine
inet_LanSessionInfo.h
1 /*---------------------------------------------------------------------------*
2  Project: Pia
3  File: inet_LanSessionInfo.h
4 
5  Copyright Nintendo. 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 
14 
15 #pragma once
16 
17 #include <pia/inet/inet_LanSessionTypes.h>
18 #include <pia/transport/transport_StationConnectionInfo.h>
19 #include <pia/session/session_ISessionInfo.h>
20 
21 namespace nn
22 {
23 namespace pia
24 {
25 namespace inet
26 {
27 
28 /*!
29  @cond PRIVATE
30  @brief Data class for LAN matchmaking sessions.
31 */
32 class LanSessionInfo : public session::ISessionInfo
33 {
34 public:
35  LanSessionInfo();
36  virtual ~LanSessionInfo();
37 
38  virtual u32 GetGameMode() const;
39  virtual u32 GetSessionId() const;
40  virtual u32 GetCurrentParticipants() const;
41  virtual u32 GetMinParticipants() const;
42  virtual u32 GetMaxParticipants() const;
43  virtual bool IsOpened() const;
44  virtual nn::Result GetAttribute(u32* pAttribute, u8 idx) const;
45  virtual LanSessionType GetSessionType() const;
46  virtual nn::Result GetDescription(wchar_t* pBuffer, size_t size) const;
47  virtual nn::Result GetDescriptionSize(size_t* pSize) const;
48  virtual nn::Result GetApplicationDataBuf(void* pBuffer, size_t size);
49  virtual nn::Result GetApplicationDataSize(size_t* pSize);
50 
51  virtual transport::StationConnectionInfo& GetStationConnectionInfo();
52 
53  nn::Result Serialize(bit8* pBuffer, size_t* pDataSize, size_t bufferSize) const;
54  nn::Result Deserialize(const bit8* pData, size_t dataSize);
55  size_t GetSerializedSize() const;
56 
57  virtual void SetGameMode(u32 gameMode);
58  virtual void SetSessionId(u32 sessionId);
59  virtual void SetCurrentParticipants(u32 participants);
60  virtual void SetMinParticipants(u32 participants);
61  virtual void SetMaxParticipants(u32 participants);
62  virtual void SetOpen(bool isOpened);
63  virtual void SetSessionType(LanSessionType type);
64  virtual void SetAttribute(u32 attribute, u8 idx);
65  virtual void SetDescription(const void* pDesc, size_t size);
66  virtual void SetApplicationData(const void* pData, size_t size);
67  virtual void SetStationConnectionInfo(const transport::StationConnectionInfo& info);
68 
69  virtual void Trace(u64 flag);
70  virtual void Clear();
71  virtual void Copy(const LanSessionInfo& lanSessionInfo);
72 
73 private:
74  u32 m_GameMode;
75  u32 m_SessionId;
76  u32 m_CurrentParticipants;
77  u32 m_MinParticipants;
78  u32 m_MaxParticipants;
79  bool m_bIsOpened;
80 
81  u32 m_Attribute[LAN_ATTRIBUTE_MAX_SIZE];
82  LanSessionType m_SessionType;
83  wchar_t m_Description[LAN_DESCRIPTION_DATA_BUFFER_MAX_SIZE];
84  size_t m_DescriptionSize;
85  u8 m_ApplicationData[LAN_APPLICATION_DATA_BUFFER_MAX_SIZE];
86  size_t m_ApplicationDataSize;
87 
88  transport::StationConnectionInfo m_StationConnectionInfo;
89 
90  LanSessionInfo(const LanSessionInfo& r);
91  LanSessionInfo& operator=(const LanSessionInfo& r);
92 
93 };
94 
95 /*!
96  @endcond
97 */
98 
99 }
100 }
101 } // End of namespace nn::pia::inet.
Definition: assert.h:115