Initial idea
This commit is contained in:
47
anscloud-common/include/anscloud/common/json_serializer.h
Normal file
47
anscloud-common/include/anscloud/common/json_serializer.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
#ifndef ANSCLOUD_COMMON_JSON_SERIALIZER_H
|
||||
#define ANSCLOUD_COMMON_JSON_SERIALIZER_H
|
||||
|
||||
#include "types.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace anscloud {
|
||||
namespace json {
|
||||
|
||||
// Serialization (struct -> JSON string)
|
||||
std::string serialize(const Heartbeat& hb);
|
||||
std::string serialize(const DeviceTelemetry& tel);
|
||||
std::string serialize(const SystemMetrics& m);
|
||||
std::string serialize(const Command& cmd);
|
||||
std::string serialize(const CommandResponse& resp);
|
||||
std::string serialize(const DeviceEvent& evt);
|
||||
std::string serialize(const DeviceStatusMessage& msg);
|
||||
std::string serialize(const CameraInfo& cam);
|
||||
std::string serialize(const std::vector<CameraInfo>& cams);
|
||||
std::string serialize(const DeviceState& state);
|
||||
std::string serialize(const std::vector<DeviceState>& states);
|
||||
std::string serialize(const CommandResult& result);
|
||||
|
||||
// Deserialization (JSON string -> struct)
|
||||
Heartbeat deserialize_heartbeat(const std::string& json);
|
||||
DeviceTelemetry deserialize_telemetry(const std::string& json);
|
||||
SystemMetrics deserialize_metrics(const std::string& json);
|
||||
Command deserialize_command(const std::string& json);
|
||||
CommandResponse deserialize_response(const std::string& json);
|
||||
DeviceEvent deserialize_event(const std::string& json);
|
||||
DeviceStatusMessage deserialize_status_message(const std::string& json);
|
||||
CameraInfo deserialize_camera(const std::string& json);
|
||||
std::vector<CameraInfo> deserialize_cameras(const std::string& json);
|
||||
DeviceState deserialize_device_state(const std::string& json);
|
||||
std::vector<DeviceState> deserialize_device_states(const std::string& json);
|
||||
CommandResult deserialize_command_result(const std::string& json);
|
||||
|
||||
// Utility
|
||||
std::string now_iso8601();
|
||||
std::string generate_uuid();
|
||||
|
||||
} // namespace json
|
||||
} // namespace anscloud
|
||||
|
||||
#endif // ANSCLOUD_COMMON_JSON_SERIALIZER_H
|
||||
Reference in New Issue
Block a user