48 lines
2.0 KiB
C++
48 lines
2.0 KiB
C++
#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
|