FluentLogger: fluent-logger-mbed A structured logger for Fluentd (mbed)

Dependents:   FluentLogger_Hello SNIC-FluentLogger-example

FluentLogger

Fluentd Logo

What is this ?

You can logging to Fluentd server.
This library included subset of MassagePack library.

Supported MessagePack formats(encode only)

format namefirst byte (in hex)
positive fixint0x00 - 0x7f
fixmap0x80 - 0x8f
fixarray0x90 - 0x9f
fixstr0xa0 - 0xbf
nil0xc0
false0xc2
true0xc3
float 320xca
float 640xcb
uint 80xcc
uint 160xcd
uint 320xce
uint 640xcf
int 80xd0
int 160xd1
int 320xd2
int 640xd3
str 80xd9
negative fixint0xe0 - 0xff

これは何?

Fluentd サーバにログを送信するためのライブラリです。
サブセット版のMassagePackライブラリも同梱しています。

サーバ側ダウン時の再接続機能は限定的に実装されています。 現時点での実装は送信時に切断を検知し、次回送信時に再接続する仕様です。

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?

UserRevisionLine numberNew 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