FluentLogger: fluent-logger-mbed A structured logger for Fluentd (mbed)
Dependents: FluentLogger_Hello SNIC-FluentLogger-example
FluentLogger
What is this ?
You can logging to Fluentd server.
This library included subset of MassagePack library.
Supported MessagePack formats(encode only)
format name | first byte (in hex) |
---|---|
positive fixint | 0x00 - 0x7f |
fixmap | 0x80 - 0x8f |
fixarray | 0x90 - 0x9f |
fixstr | 0xa0 - 0xbf |
nil | 0xc0 |
false | 0xc2 |
true | 0xc3 |
float 32 | 0xca |
float 64 | 0xcb |
uint 8 | 0xcc |
uint 16 | 0xcd |
uint 32 | 0xce |
uint 64 | 0xcf |
int 8 | 0xd0 |
int 16 | 0xd1 |
int 32 | 0xd2 |
int 64 | 0xd3 |
str 8 | 0xd9 |
negative fixint | 0xe0 - 0xff |
これは何?
Fluentd サーバにログを送信するためのライブラリです。
サブセット版のMassagePackライブラリも同梱しています。
サーバ側ダウン時の再接続機能は限定的に実装されています。 現時点での実装は送信時に切断を検知し、次回送信時に再接続する仕様です。
uMP.h@0:b4815a079a4b, 2014-11-11 (annotated)
- Committer:
- YuuichiAkagawa
- Date:
- Tue Nov 11 02:14:44 2014 +0000
- Revision:
- 0:b4815a079a4b
- Child:
- 1:6b1268731465
Initial release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YuuichiAkagawa | 0:b4815a079a4b | 1 | /* uMP - micro MessagePack class |
YuuichiAkagawa | 0:b4815a079a4b | 2 | * Copyright (c) 2014 Yuuichi Akagawa |
YuuichiAkagawa | 0:b4815a079a4b | 3 | * |
YuuichiAkagawa | 0:b4815a079a4b | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
YuuichiAkagawa | 0:b4815a079a4b | 5 | * you may not use this file except in compliance with the License. |
YuuichiAkagawa | 0:b4815a079a4b | 6 | * You may obtain a copy of the License at |
YuuichiAkagawa | 0:b4815a079a4b | 7 | * |
YuuichiAkagawa | 0:b4815a079a4b | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
YuuichiAkagawa | 0:b4815a079a4b | 9 | * |
YuuichiAkagawa | 0:b4815a079a4b | 10 | * Unless required by applicable law or agreed to in writing, software |
YuuichiAkagawa | 0:b4815a079a4b | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
YuuichiAkagawa | 0:b4815a079a4b | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
YuuichiAkagawa | 0:b4815a079a4b | 13 | * See the License for the specific language governing permissions and |
YuuichiAkagawa | 0:b4815a079a4b | 14 | * limitations under the License. |
YuuichiAkagawa | 0:b4815a079a4b | 15 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 16 | |
YuuichiAkagawa | 0:b4815a079a4b | 17 | #ifndef MBED_UMP_H |
YuuichiAkagawa | 0:b4815a079a4b | 18 | #define MBED_UMP_H |
YuuichiAkagawa | 0:b4815a079a4b | 19 | |
YuuichiAkagawa | 0:b4815a079a4b | 20 | #include <stdint.h> |
YuuichiAkagawa | 0:b4815a079a4b | 21 | #include <string.h> |
YuuichiAkagawa | 0:b4815a079a4b | 22 | |
YuuichiAkagawa | 0:b4815a079a4b | 23 | /** Subset of MessagePack implementation. |
YuuichiAkagawa | 0:b4815a079a4b | 24 | * |
YuuichiAkagawa | 0:b4815a079a4b | 25 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 26 | class uMP { |
YuuichiAkagawa | 0:b4815a079a4b | 27 | public: |
YuuichiAkagawa | 0:b4815a079a4b | 28 | /** uMP |
YuuichiAkagawa | 0:b4815a079a4b | 29 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 30 | uMP(); |
YuuichiAkagawa | 0:b4815a079a4b | 31 | /** uMP |
YuuichiAkagawa | 0:b4815a079a4b | 32 | * |
YuuichiAkagawa | 0:b4815a079a4b | 33 | * @param size buffer size |
YuuichiAkagawa | 0:b4815a079a4b | 34 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 35 | explicit uMP(uint32_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 36 | ~uMP(); |
YuuichiAkagawa | 0:b4815a079a4b | 37 | |
YuuichiAkagawa | 0:b4815a079a4b | 38 | /** Initialize buffer pointer |
YuuichiAkagawa | 0:b4815a079a4b | 39 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 40 | void init(){ _ptr = 0; } |
YuuichiAkagawa | 0:b4815a079a4b | 41 | |
YuuichiAkagawa | 0:b4815a079a4b | 42 | /** Get message size |
YuuichiAkagawa | 0:b4815a079a4b | 43 | * |
YuuichiAkagawa | 0:b4815a079a4b | 44 | * @return message size(bytes) |
YuuichiAkagawa | 0:b4815a079a4b | 45 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 46 | inline uint32_t get_size(){ return _ptr; } |
YuuichiAkagawa | 0:b4815a079a4b | 47 | |
YuuichiAkagawa | 0:b4815a079a4b | 48 | /** Get message buffer pointer |
YuuichiAkagawa | 0:b4815a079a4b | 49 | * |
YuuichiAkagawa | 0:b4815a079a4b | 50 | * @return Pointer of message buffer |
YuuichiAkagawa | 0:b4815a079a4b | 51 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 52 | inline uint8_t *get_buffer(){ return _buf; } |
YuuichiAkagawa | 0:b4815a079a4b | 53 | |
YuuichiAkagawa | 0:b4815a079a4b | 54 | /** Start array format |
YuuichiAkagawa | 0:b4815a079a4b | 55 | * |
YuuichiAkagawa | 0:b4815a079a4b | 56 | * @param size Number of array elements |
YuuichiAkagawa | 0:b4815a079a4b | 57 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 58 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 59 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 60 | bool set_array(uint32_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 61 | |
YuuichiAkagawa | 0:b4815a079a4b | 62 | /** Start map format |
YuuichiAkagawa | 0:b4815a079a4b | 63 | * |
YuuichiAkagawa | 0:b4815a079a4b | 64 | * @param size Number of map pairs |
YuuichiAkagawa | 0:b4815a079a4b | 65 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 66 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 67 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 68 | bool set_map(uint32_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 69 | |
YuuichiAkagawa | 0:b4815a079a4b | 70 | /** Set NIL message |
YuuichiAkagawa | 0:b4815a079a4b | 71 | * |
YuuichiAkagawa | 0:b4815a079a4b | 72 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 73 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 74 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 75 | bool set_nil(); |
YuuichiAkagawa | 0:b4815a079a4b | 76 | |
YuuichiAkagawa | 0:b4815a079a4b | 77 | /** Set TRUE message (bool family) |
YuuichiAkagawa | 0:b4815a079a4b | 78 | * |
YuuichiAkagawa | 0:b4815a079a4b | 79 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 80 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 81 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 82 | bool set_true(); |
YuuichiAkagawa | 0:b4815a079a4b | 83 | |
YuuichiAkagawa | 0:b4815a079a4b | 84 | /** Set FALSE message (bool family) |
YuuichiAkagawa | 0:b4815a079a4b | 85 | * |
YuuichiAkagawa | 0:b4815a079a4b | 86 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 87 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 88 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 89 | bool set_false(); |
YuuichiAkagawa | 0:b4815a079a4b | 90 | |
YuuichiAkagawa | 0:b4815a079a4b | 91 | /** Set unsigned int message |
YuuichiAkagawa | 0:b4815a079a4b | 92 | * |
YuuichiAkagawa | 0:b4815a079a4b | 93 | * Auto route the optimal function. |
YuuichiAkagawa | 0:b4815a079a4b | 94 | * |
YuuichiAkagawa | 0:b4815a079a4b | 95 | * @param u unsigned int value(max 32bit) |
YuuichiAkagawa | 0:b4815a079a4b | 96 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 97 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 98 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 99 | bool set_uint(uint32_t u); //max 32bit |
YuuichiAkagawa | 0:b4815a079a4b | 100 | |
YuuichiAkagawa | 0:b4815a079a4b | 101 | /** Set uint8 message |
YuuichiAkagawa | 0:b4815a079a4b | 102 | * |
YuuichiAkagawa | 0:b4815a079a4b | 103 | * @param u uint8_t value |
YuuichiAkagawa | 0:b4815a079a4b | 104 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 105 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 106 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 107 | bool set_u8(uint8_t u); |
YuuichiAkagawa | 0:b4815a079a4b | 108 | |
YuuichiAkagawa | 0:b4815a079a4b | 109 | /** Set uint16 message |
YuuichiAkagawa | 0:b4815a079a4b | 110 | * |
YuuichiAkagawa | 0:b4815a079a4b | 111 | * @param u uint16_t value |
YuuichiAkagawa | 0:b4815a079a4b | 112 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 113 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 114 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 115 | bool set_u16(uint16_t u); |
YuuichiAkagawa | 0:b4815a079a4b | 116 | |
YuuichiAkagawa | 0:b4815a079a4b | 117 | /** Set uint32 message |
YuuichiAkagawa | 0:b4815a079a4b | 118 | * |
YuuichiAkagawa | 0:b4815a079a4b | 119 | * @param u uint32_t value |
YuuichiAkagawa | 0:b4815a079a4b | 120 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 121 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 122 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 123 | bool set_u32(uint32_t u); |
YuuichiAkagawa | 0:b4815a079a4b | 124 | |
YuuichiAkagawa | 0:b4815a079a4b | 125 | /** Set uint64 message |
YuuichiAkagawa | 0:b4815a079a4b | 126 | * |
YuuichiAkagawa | 0:b4815a079a4b | 127 | * @param u uint64_t value |
YuuichiAkagawa | 0:b4815a079a4b | 128 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 129 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 130 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 131 | bool set_u64(uint64_t u); |
YuuichiAkagawa | 0:b4815a079a4b | 132 | |
YuuichiAkagawa | 0:b4815a079a4b | 133 | /** Set signed int message |
YuuichiAkagawa | 0:b4815a079a4b | 134 | * |
YuuichiAkagawa | 0:b4815a079a4b | 135 | * Auto route the optimal function. |
YuuichiAkagawa | 0:b4815a079a4b | 136 | * |
YuuichiAkagawa | 0:b4815a079a4b | 137 | * @param s signed int value(max 32bit) |
YuuichiAkagawa | 0:b4815a079a4b | 138 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 139 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 140 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 141 | bool set_sint(int32_t i); //max 32bit |
YuuichiAkagawa | 0:b4815a079a4b | 142 | |
YuuichiAkagawa | 0:b4815a079a4b | 143 | /** Set int8 message |
YuuichiAkagawa | 0:b4815a079a4b | 144 | * |
YuuichiAkagawa | 0:b4815a079a4b | 145 | * @param s int8_t value |
YuuichiAkagawa | 0:b4815a079a4b | 146 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 147 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 148 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 149 | bool set_s8(int8_t i); |
YuuichiAkagawa | 0:b4815a079a4b | 150 | |
YuuichiAkagawa | 0:b4815a079a4b | 151 | /** Set int16 message |
YuuichiAkagawa | 0:b4815a079a4b | 152 | * |
YuuichiAkagawa | 0:b4815a079a4b | 153 | * @param s int16_t value |
YuuichiAkagawa | 0:b4815a079a4b | 154 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 155 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 156 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 157 | bool set_s16(int16_t i); |
YuuichiAkagawa | 0:b4815a079a4b | 158 | |
YuuichiAkagawa | 0:b4815a079a4b | 159 | /** Set int32 message |
YuuichiAkagawa | 0:b4815a079a4b | 160 | * |
YuuichiAkagawa | 0:b4815a079a4b | 161 | * @param s int32_t value |
YuuichiAkagawa | 0:b4815a079a4b | 162 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 163 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 164 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 165 | bool set_s32(int32_t i); |
YuuichiAkagawa | 0:b4815a079a4b | 166 | |
YuuichiAkagawa | 0:b4815a079a4b | 167 | /** Set int64 message |
YuuichiAkagawa | 0:b4815a079a4b | 168 | * |
YuuichiAkagawa | 0:b4815a079a4b | 169 | * @param s int64_t value |
YuuichiAkagawa | 0:b4815a079a4b | 170 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 171 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 172 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 173 | bool set_s64(int64_t i); |
YuuichiAkagawa | 0:b4815a079a4b | 174 | |
YuuichiAkagawa | 0:b4815a079a4b | 175 | /** Set float(32bit) message |
YuuichiAkagawa | 0:b4815a079a4b | 176 | * |
YuuichiAkagawa | 0:b4815a079a4b | 177 | * @param f float value |
YuuichiAkagawa | 0:b4815a079a4b | 178 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 179 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 180 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 181 | bool set_float(float f); |
YuuichiAkagawa | 0:b4815a079a4b | 182 | |
YuuichiAkagawa | 0:b4815a079a4b | 183 | /** Set double(64bit) message |
YuuichiAkagawa | 0:b4815a079a4b | 184 | * |
YuuichiAkagawa | 0:b4815a079a4b | 185 | * @param d double value |
YuuichiAkagawa | 0:b4815a079a4b | 186 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 187 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 188 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 189 | bool set_double(double d); |
YuuichiAkagawa | 0:b4815a079a4b | 190 | |
YuuichiAkagawa | 0:b4815a079a4b | 191 | /** Set string message |
YuuichiAkagawa | 0:b4815a079a4b | 192 | * |
YuuichiAkagawa | 0:b4815a079a4b | 193 | * Auto route the optimal function. |
YuuichiAkagawa | 0:b4815a079a4b | 194 | * |
YuuichiAkagawa | 0:b4815a079a4b | 195 | * @param data Pointer of message string |
YuuichiAkagawa | 0:b4815a079a4b | 196 | * @param size Size of message string (max 255 bytes) |
YuuichiAkagawa | 0:b4815a079a4b | 197 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 198 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 199 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 200 | bool set_str(const char *data, uint32_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 201 | |
YuuichiAkagawa | 0:b4815a079a4b | 202 | /** Set string message (upto 31 bytes) |
YuuichiAkagawa | 0:b4815a079a4b | 203 | * |
YuuichiAkagawa | 0:b4815a079a4b | 204 | * @param data Pointer of message string |
YuuichiAkagawa | 0:b4815a079a4b | 205 | * @param size Size of message string (max 31 bytes) |
YuuichiAkagawa | 0:b4815a079a4b | 206 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 207 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 208 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 209 | bool set_fixstr(const char *data, uint8_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 210 | |
YuuichiAkagawa | 0:b4815a079a4b | 211 | /** Set string message (upto 256 bytes) |
YuuichiAkagawa | 0:b4815a079a4b | 212 | * |
YuuichiAkagawa | 0:b4815a079a4b | 213 | * @param data Pointer of message string |
YuuichiAkagawa | 0:b4815a079a4b | 214 | * @param size Size of message string (max 255 bytes) |
YuuichiAkagawa | 0:b4815a079a4b | 215 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 216 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 217 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 218 | bool set_str8(const char *data, uint8_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 219 | |
YuuichiAkagawa | 0:b4815a079a4b | 220 | /** Set raw message |
YuuichiAkagawa | 0:b4815a079a4b | 221 | * |
YuuichiAkagawa | 0:b4815a079a4b | 222 | * Insert the pre build message into buffer. |
YuuichiAkagawa | 0:b4815a079a4b | 223 | * This function is not MessagePack standard. |
YuuichiAkagawa | 0:b4815a079a4b | 224 | * |
YuuichiAkagawa | 0:b4815a079a4b | 225 | * @param data Pointer of message string |
YuuichiAkagawa | 0:b4815a079a4b | 226 | * @param size Size of message string |
YuuichiAkagawa | 0:b4815a079a4b | 227 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 228 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 229 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 230 | bool set_raw(const char *data, uint8_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 231 | |
YuuichiAkagawa | 0:b4815a079a4b | 232 | private: |
YuuichiAkagawa | 0:b4815a079a4b | 233 | enum MpTag{ |
YuuichiAkagawa | 0:b4815a079a4b | 234 | TAG_POSITIVE_FIXNUM = 0x00, |
YuuichiAkagawa | 0:b4815a079a4b | 235 | TAG_FIXMAP = 0x80, |
YuuichiAkagawa | 0:b4815a079a4b | 236 | TAG_FIXARRAY = 0x90, |
YuuichiAkagawa | 0:b4815a079a4b | 237 | TAG_FIXSTR = 0xa0, |
YuuichiAkagawa | 0:b4815a079a4b | 238 | TAG_NIL = 0xc0, |
YuuichiAkagawa | 0:b4815a079a4b | 239 | TAG_FALSE = 0xc2, |
YuuichiAkagawa | 0:b4815a079a4b | 240 | TAG_TRUE = 0xc3, |
YuuichiAkagawa | 0:b4815a079a4b | 241 | // TAG_BIN8 = 0xc4, |
YuuichiAkagawa | 0:b4815a079a4b | 242 | // TAG_BIN16 = 0xc5, |
YuuichiAkagawa | 0:b4815a079a4b | 243 | // TAG_BIN32 = 0xc6, |
YuuichiAkagawa | 0:b4815a079a4b | 244 | // TAG_EXT8 = 0xc7, |
YuuichiAkagawa | 0:b4815a079a4b | 245 | // TAG_EXT16 = 0xc8, |
YuuichiAkagawa | 0:b4815a079a4b | 246 | // TAG_EXT32 = 0xc9, |
YuuichiAkagawa | 0:b4815a079a4b | 247 | TAG_FLOAT32 = 0xca, |
YuuichiAkagawa | 0:b4815a079a4b | 248 | TAG_FLOAT64 = 0xcb, |
YuuichiAkagawa | 0:b4815a079a4b | 249 | TAG_U8 = 0xcc, |
YuuichiAkagawa | 0:b4815a079a4b | 250 | TAG_U16 = 0xcd, |
YuuichiAkagawa | 0:b4815a079a4b | 251 | TAG_U32 = 0xce, |
YuuichiAkagawa | 0:b4815a079a4b | 252 | TAG_U64 = 0xcf, |
YuuichiAkagawa | 0:b4815a079a4b | 253 | TAG_S8 = 0xd0, |
YuuichiAkagawa | 0:b4815a079a4b | 254 | TAG_S16 = 0xd1, |
YuuichiAkagawa | 0:b4815a079a4b | 255 | TAG_S32 = 0xd2, |
YuuichiAkagawa | 0:b4815a079a4b | 256 | TAG_S64 = 0xd3, |
YuuichiAkagawa | 0:b4815a079a4b | 257 | // TAG_FIXEXT1 = 0xd4, |
YuuichiAkagawa | 0:b4815a079a4b | 258 | // TAG_FIXEXT2 = 0xd5, |
YuuichiAkagawa | 0:b4815a079a4b | 259 | // TAG_FIXEXT16 = 0xd8, |
YuuichiAkagawa | 0:b4815a079a4b | 260 | TAG_STR8 = 0xd9, |
YuuichiAkagawa | 0:b4815a079a4b | 261 | // TAG_STR16 = 0xda, |
YuuichiAkagawa | 0:b4815a079a4b | 262 | // TAG_STR32 = 0xdb, |
YuuichiAkagawa | 0:b4815a079a4b | 263 | // TAG_ARRAY16 = 0xdc, |
YuuichiAkagawa | 0:b4815a079a4b | 264 | // TAG_ARRAY32 = 0xdd, |
YuuichiAkagawa | 0:b4815a079a4b | 265 | // TAG_MAP16 = 0xde, |
YuuichiAkagawa | 0:b4815a079a4b | 266 | // TAG_MAP32 = 0xdf, |
YuuichiAkagawa | 0:b4815a079a4b | 267 | TAG_NEGATIVE_FIXNUM = 0xe0 |
YuuichiAkagawa | 0:b4815a079a4b | 268 | }; |
YuuichiAkagawa | 0:b4815a079a4b | 269 | |
YuuichiAkagawa | 0:b4815a079a4b | 270 | static const uint16_t DEFAULT_BUFFSIZE = 128; |
YuuichiAkagawa | 0:b4815a079a4b | 271 | uint8_t *_buf; |
YuuichiAkagawa | 0:b4815a079a4b | 272 | uint32_t _ptr; |
YuuichiAkagawa | 0:b4815a079a4b | 273 | uint32_t _nbuf; |
YuuichiAkagawa | 0:b4815a079a4b | 274 | |
YuuichiAkagawa | 0:b4815a079a4b | 275 | /** Insert sigle byte fomrat message |
YuuichiAkagawa | 0:b4815a079a4b | 276 | * |
YuuichiAkagawa | 0:b4815a079a4b | 277 | * @param c single byte message format data |
YuuichiAkagawa | 0:b4815a079a4b | 278 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 279 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 280 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 281 | bool set_buffer(const uint8_t c); |
YuuichiAkagawa | 0:b4815a079a4b | 282 | |
YuuichiAkagawa | 0:b4815a079a4b | 283 | /** Insert multi byte fomrat message |
YuuichiAkagawa | 0:b4815a079a4b | 284 | * |
YuuichiAkagawa | 0:b4815a079a4b | 285 | * @param c Pointer of message data |
YuuichiAkagawa | 0:b4815a079a4b | 286 | * @param sise Size of message data |
YuuichiAkagawa | 0:b4815a079a4b | 287 | * @retval true Success |
YuuichiAkagawa | 0:b4815a079a4b | 288 | * @retval false Failure |
YuuichiAkagawa | 0:b4815a079a4b | 289 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 290 | bool set_buffer(const uint8_t *c, size_t size); |
YuuichiAkagawa | 0:b4815a079a4b | 291 | |
YuuichiAkagawa | 0:b4815a079a4b | 292 | /** Endian converter - 16bit data |
YuuichiAkagawa | 0:b4815a079a4b | 293 | * |
YuuichiAkagawa | 0:b4815a079a4b | 294 | * @param t 16bit data |
YuuichiAkagawa | 0:b4815a079a4b | 295 | * @return converted 16bit data |
YuuichiAkagawa | 0:b4815a079a4b | 296 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 297 | template<typename T> T to_be16(T t); |
YuuichiAkagawa | 0:b4815a079a4b | 298 | |
YuuichiAkagawa | 0:b4815a079a4b | 299 | /** Endian converter - 32bit data |
YuuichiAkagawa | 0:b4815a079a4b | 300 | * |
YuuichiAkagawa | 0:b4815a079a4b | 301 | * @param t 32bit data |
YuuichiAkagawa | 0:b4815a079a4b | 302 | * @return converted 32bit data |
YuuichiAkagawa | 0:b4815a079a4b | 303 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 304 | template<typename T> T to_be32(T t); |
YuuichiAkagawa | 0:b4815a079a4b | 305 | |
YuuichiAkagawa | 0:b4815a079a4b | 306 | /** Endian converter - 64bit data |
YuuichiAkagawa | 0:b4815a079a4b | 307 | * |
YuuichiAkagawa | 0:b4815a079a4b | 308 | * @param t 64bit data |
YuuichiAkagawa | 0:b4815a079a4b | 309 | * @return converted 64bit data |
YuuichiAkagawa | 0:b4815a079a4b | 310 | */ |
YuuichiAkagawa | 0:b4815a079a4b | 311 | template<typename T> T to_be64(T t); |
YuuichiAkagawa | 0:b4815a079a4b | 312 | }; |
YuuichiAkagawa | 0:b4815a079a4b | 313 | |
YuuichiAkagawa | 0:b4815a079a4b | 314 | #endif |