mFrame
載入中...
搜尋中...
無符合項目
Appendable.h
1
8#ifndef D406F3A2_39D2_4731_8767_C73799954436
9#define D406F3A2_39D2_4731_8767_C73799954436
10
11#ifndef MFRAME_A4E761DA_2877_4935_A4B5_7F92716CDB6F
12#define MFRAME_A4E761DA_2877_4935_A4B5_7F92716CDB6F
13
14/* ***************************************************************************************
15 * Include
16 */
17
18//----------------------------------------------------------------------------------------
19
20//----------------------------------------------------------------------------------------
21#include "./../lang/Data.h"
22
23/* ***************************************************************************************
24 * Namespace
25 */
26namespace ufm::lang {
27 struct Appendable;
28 struct Readable;
29} // namespace ufm::lang
30
31/* ***************************************************************************************
32 * Class/struct/Struct/Enum
33 */
34
47 /* *************************************************************************************
48 * Method
49 */
50
56 virtual int remaining(void) const abstract;
57
64 virtual int putByte(const char data) abstract;
65
74 virtual int put(ufm::lang::Readable& readable) abstract;
75
85 virtual int put(const void* pointer, int length) abstract;
86
87 /* *************************************************************************************
88 * Default
89 */
90
99 inline int put(ufm::lang::Readable&& readable) {
100 return this->put(readable);
101 }
102
112 template <typename T>
113 inline int put(const T& t) {
114 return this->put(&t, sizeof(T));
115 }
116
132 template <typename T, size_t N>
133 inline int put(T const (&data)[N]){
134 return this->put(data, sizeof(data));
135 }
136
145 inline bool isFull(void) const {
146 return (this->remaining() == 0);
147 }
148};
149
150/* ***************************************************************************************
151 * End of file
152 */
153
154#endif /* MFRAME_A4E761DA_2877_4935_A4B5_7F92716CDB6F */
155
156
157#endif /* D406F3A2_39D2_4731_8767_C73799954436 */
Definition Appendable.h:26
資料附加介面 (Appendable)
Definition Appendable.h:46
virtual int remaining(void) const override
取得緩衝區剩餘空閒字節數。
virtual int put(const void *pointer, int length) override
從記憶體指標附加資料至緩衝區
int put(const T &t)
從任意型別附加資料
Definition Appendable.h:113
virtual int putByte(const char data) override
輸入單一字節至緩衝區
bool isFull(void) const
檢查緩衝區是否已滿
Definition Appendable.h:145
virtual int put(ufm::lang::Readable &readable) override
從 Readable 物件附加資料至緩衝區
int put(ufm::lang::Readable &&readable)
從右值 Readable 附加資料
Definition Appendable.h:99
[Interface] 定義資料讀取介面
Definition Readable.h:46