16 , encoder(std::move(encoding))
25 stream.write(reinterpret_cast<const char*>(ptr), size*nmemb);
30 void LcfWriter::Write<int8_t>(int8_t val) {
35 void LcfWriter::Write<uint8_t>(uint8_t val) {
40 void LcfWriter::Write<int16_t>(int16_t val) {
46 void LcfWriter::Write<uint32_t>(uint32_t val) {
52 uint32_t value = (uint32_t) val;
53 for (
int i = 28; i >= 0; i -= 7)
54 if (value >= (1U << i) || i == 0)
55 Write<uint8_t>((uint8_t)(((value >> i) & 0x7F) | (i > 0 ? 0x80 : 0)));
59 void LcfWriter::Write<int32_t>(int32_t val) {
64 void LcfWriter::Write<bool>(
bool val) {
65 uint8_t x = val ? 1 : 0;
70 void LcfWriter::Write<double>(
double val) {
76 void LcfWriter::Write<bool>(
const std::vector<bool>& buffer) {
77 std::vector<bool>::const_iterator it;
78 for (it = buffer.begin(); it != buffer.end(); it++) {
79 uint8_t val = *it ? 1 : 0;
85 void LcfWriter::Write<uint8_t>(
const std::vector<uint8_t>& buffer) {
86 Write(&buffer.front(), 1, buffer.size());
90 void LcfWriter::Write<int16_t>(
const std::vector<int16_t>& buffer) {
91 std::vector<int16_t>::const_iterator it;
92 for (it = buffer.begin(); it != buffer.end(); it++)
97 void LcfWriter::Write<int32_t>(
const std::vector<int32_t>& buffer) {
98 std::vector<int32_t>::const_iterator it;
99 for (it = buffer.begin(); it != buffer.end(); it++) {
108 void LcfWriter::Write<uint32_t>(
const std::vector<uint32_t>& buffer) {
109 std::vector<uint32_t>::const_iterator it;
110 for (it = buffer.begin(); it != buffer.end(); it++)
115 std::string str =
Decode(_str);
117 Write(&*str.begin(), 1, str.size());
122 return (uint32_t)
stream.tellp();
135 #ifdef WORDS_BIGENDIAN 145 ((ui<<8) & 0x00FF0000) |
146 ((ui>>8) & 0x0000FF00) |
152 uint32_t *p = reinterpret_cast<uint32_t *>(&d);
std::string Decode(const std::string &str_to_encode)
void Write(const void *ptr, size_t size, size_t nmemb)
static void SwapByteOrder(int16_t &us)
void Decode(std::string &str)
LcfWriter(std::ostream &filestream, std::string encoding="")