CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
common_ISerializable.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/common/common_Definitions.h>
17 #include <nn/pia/common/common_ByteOrder.h>
18 
19 namespace nn
20 {
21 namespace pia
22 {
23 namespace common
24 {
25 
26 /*!
27 @cond PRIVATE
28  */
29 class ISerializable
30 {
31 public:
32  //n1589:バイト幅毎のシリアライズ関数
33  //n1589:common::serializeを呼ぶのを楽にするため
34  static inline void serializeU64(uint8_t* pData, uint64_t a)
35  {
36  ByteOrder::serializeU64(pData, a);
37  }
38 
39  static inline uint64_t deserializeU64(const uint8_t* pData)
40  {
41  return ByteOrder::deserializeU64(pData);
42  }
43 
44  static inline void serializeU32(uint8_t* pData, uint32_t a)
45  {
46  ByteOrder::serializeU32(pData, a);
47  }
48 
49  static inline uint32_t deserializeU32(const uint8_t* pData)
50  {
51  return ByteOrder::deserializeU32(pData);
52  }
53 
54  static inline void serializeU16(uint8_t* pData, uint16_t a)
55  {
56  ByteOrder::serializeU16(pData, a);
57  }
58 
59  static inline uint16_t deserializeU16(const uint8_t* pData)
60  {
61  return ByteOrder::deserializeU16(pData);
62  }
63 
64  //n1589:1 byteはシリアライズ関数なくても問題ないが、コーディングを楽にするため
65  static inline void serializeU8(uint8_t* pData, uint8_t a)
66  {
67  ByteOrder::serializeU8(pData, a);
68  }
69 
70  static inline uint8_t deserializeU8(const uint8_t* pData)
71  {
72  return ByteOrder::deserializeU8(pData);
73  }
74 
75  ISerializable(void)
76  {
77  }
78 
79  virtual ~ISerializable(void)
80  {
81  }
82 
83  virtual Result Serialize(uint8_t* pBuffer, uint32_t* pSerializedSize) const = 0;
84  virtual Result Deserialize(const uint8_t* pData) = 0;
85 
86  virtual uint32_t GetSerializedSize() const = 0;
87 };
88 //! @endcond
89 }
90 }
91 } // end of namespace nn::pia::common