107 lines
3.8 KiB
C++
107 lines
3.8 KiB
C++
/** @file
|
|
* @author Edouard DUPIN
|
|
* @copyright 2016, Edouard DUPIN, all right reserved
|
|
* @license APACHE v2.0 (see license file)
|
|
*/
|
|
#include <etk/types.h>
|
|
#include <jus/Buffer.h>
|
|
#include <jus/debug.h>
|
|
#include <jus/ParamType.h>
|
|
|
|
|
|
|
|
|
|
namespace jus {
|
|
// ----------------------------------------------------------------------------------------------------
|
|
|
|
template<> ejson::Value convertBinaryToJson<bool>(const uint8_t* _data, uint32_t _size) {
|
|
const bool* value = reinterpret_cast<const bool*>(_data);
|
|
return ejson::Boolean(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<std::vector<bool>>(const uint8_t* _data, uint32_t _size) {
|
|
const bool* value = reinterpret_cast<const bool*>(_data);
|
|
ejson::Array out;
|
|
for (size_t iii=0; iii<_size; ++iii) {
|
|
out.add(ejson::Boolean(value[iii]));
|
|
}
|
|
return out;
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<float>(const uint8_t* _data, uint32_t _size) {
|
|
const float* value = reinterpret_cast<const float*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<double>(const uint8_t* _data, uint32_t _size) {
|
|
const double* value = reinterpret_cast<const double*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<int64_t>(const uint8_t* _data, uint32_t _size) {
|
|
const int64_t* value = reinterpret_cast<const int64_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<int32_t>(const uint8_t* _data, uint32_t _size) {
|
|
const int32_t* value = reinterpret_cast<const int32_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<int16_t>(const uint8_t* _data, uint32_t _size) {
|
|
const int16_t* value = reinterpret_cast<const int16_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<int8_t>(const uint8_t* _data, uint32_t _size) {
|
|
const int8_t* value = reinterpret_cast<const int8_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<uint64_t>(const uint8_t* _data, uint32_t _size) {
|
|
const uint64_t* value = reinterpret_cast<const uint64_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<uint32_t>(const uint8_t* _data, uint32_t _size) {
|
|
const uint32_t* value = reinterpret_cast<const uint32_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<uint16_t>(const uint8_t* _data, uint32_t _size) {
|
|
const uint16_t* value = reinterpret_cast<const uint16_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<uint8_t>(const uint8_t* _data, uint32_t _size) {
|
|
const uint8_t* value = reinterpret_cast<const uint8_t*>(_data);
|
|
return ejson::Number(*value);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<std::string>(const uint8_t* _data, uint32_t _size) {
|
|
std::string val;
|
|
val.resize(_size, '\0');
|
|
memcpy(&val[0], _data, _size);
|
|
return ejson::String(val);
|
|
}
|
|
template<> ejson::Value convertBinaryToJson<std::vector<std::string>>(const uint8_t* _data, uint32_t _size) {
|
|
/*
|
|
Little hard ... TODO : ...
|
|
const bool* value = reinterpret_cast<const bool*>(_data);
|
|
ejson::Array out;
|
|
for (size_t iii=0; iii<_size; ++iii) {
|
|
out.add(ejson::Boolean(value[iii]));
|
|
}
|
|
return out;
|
|
*/
|
|
ejson::Array out;
|
|
return out;
|
|
}
|
|
/*
|
|
template<> ejson::Value convertBinaryToJson<jus::File>(const uint8_t* _data, uint32_t _size) {
|
|
ejson::Object out;
|
|
out.add("type", ejson::String("file"));
|
|
out.add("mine-type", ejson::String(_value.getMineType()));
|
|
out.add("size", ejson::Number(_value.getData().size()));
|
|
if (_value.getData().size() != 0) {
|
|
_asyncAction.push_back(SenderJusFile(_value, _paramId));
|
|
}
|
|
return out;
|
|
}
|
|
*/
|
|
|
|
// ----------------------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
|
|
|