OROCHI
 
Loading...
Searching...
No Matches
GxStreamWriter.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13GX_CORE_NAMESPACE_BEGIN()
14
15//===========================================================================
17//===========================================================================
19{
20 //-----------------------------------------------------------
22 //-----------------------------------------------------------
24public:
26 enum class RESULT
27 {
28 SUCCESS = 0,
29
30 ERROR_CANCELED = -1,
31 ERROR_ADDRESS = -2,
32 ERROR_SIZE = -3,
33 ERROR_WRITE_FAILED = -4
34 };
35
36 // new, delete指定
37 GX_OPERATOR_NEW_DELETE(GxAllocatorList::ALLOCATOR_TYPE::TEMPORARY)
38
39
40 //-----------------------------------------------------------
42 //-----------------------------------------------------------
44
45protected:
47 GxStreamWriter(void) : _result(RESULT::SUCCESS){}
48public:
51 : _pStream(&stream)
52 , _result(RESULT::SUCCESS)
53 , _endian(endian)
54 {}
55
57 virtual ~GxStreamWriter(void)
58 {
59 flush();
60 }
61
62private:
63 // コピーコンストラクタ (コピー禁止)
65 // 代入演算子 (コピー禁止)
66 GX_FORCE_INLINE const GxStreamWriter& operator=(const GxStreamWriter&);
67
69 //-----------------------------------------------------------
71 //-----------------------------------------------------------
73public:
75 b32 writeS8(s8 src);
77 b32 writeU8(u8 src);
79 b32 writeS16(s16 src);
81 b32 writeU16(u16 src);
83 b32 writeS32(s32 src);
85 b32 writeU32(u32 src);
87 b32 writeS64(s64 src);
89 b32 writeU64(u64 src);
91 b32 writeS128(s128 src);
93 b32 writeU128(u128 src);
95 b32 writeB32(b32 src);
97 b32 writeF32(f32 src);
99 b32 writeF64(f64 src);
101 b32 writeBlock(const void* pSrc, u32 size);
103 b32 writePlane(const void* pSrc, u32 size);
105 void flush(void);
106
107protected:
109 virtual b32 write(const void* pSrc, u32 size);
110
112 //-----------------------------------------------------------
114 //-----------------------------------------------------------
116public:
118 constexpr GxStream* getStream(void) const { return _pStream; }
120 GX_FORCE_INLINE u32 getCurrentPosition(void) const { return _pStream->getPosition(); }
122 constexpr RESULT getResult(void) const { return _result; }
124 constexpr void setEndian(GX_ENDIAN endian) { _endian = endian; }
126 constexpr GX_ENDIAN getEndian(void) const { return _endian; }
127
129 //-----------------------------------------------------------
131 //-----------------------------------------------------------
133protected:
137
139};
140
141GX_CORE_NAMESPACE_END()
GX_ENDIAN
エンディアン定義
Definition GxDefine.h:220
@ NATIVE
ネイティブエンディアン
ストリーム基礎クラス
Definition GxStream.h:20
ストリーム書き込みクラス
Definition GxStreamWriter.h:19
constexpr void setEndian(GX_ENDIAN endian)
エンディアン指定
Definition GxStreamWriter.h:124
GX_FORCE_INLINE u32 getCurrentPosition(void) const
現在ストリーム位置取得
Definition GxStreamWriter.h:120
constexpr GxStream * getStream(void) const
ストリーム取得
Definition GxStreamWriter.h:118
constexpr RESULT getResult(void) const
詳細結果取得
Definition GxStreamWriter.h:122
constexpr GX_ENDIAN getEndian(void) const
エンディアン取得
Definition GxStreamWriter.h:126
GxStream * _pStream
書き込みストリーム
Definition GxStreamWriter.h:134
GxStreamWriter(GxStream &stream, GX_ENDIAN endian=GX_ENDIAN::NATIVE)
コンストラクタ
Definition GxStreamWriter.h:50
RESULT
処理結果定義
Definition GxStreamWriter.h:27
virtual ~GxStreamWriter(void)
デストラクタ
Definition GxStreamWriter.h:57
GxStreamWriter(void)
ディフォルトコンストラクタ (使用禁止)
Definition GxStreamWriter.h:47
RESULT _result
処理結果
Definition GxStreamWriter.h:135
GX_ENDIAN _endian
ストリーム内エンディアン定義
Definition GxStreamWriter.h:136
32bitブーリアン
Definition GxDefine.h:173