blob: 31070aa6e58bcd3eba31b32cc56a3f7504cfc89a [file] [log] [blame]
#include <filesystem>
#include <optional>
#include <string>
#include <vector>
#include "nlohmann/json.hpp"
#include "dbus_utility.hpp" // NOLINT
#include "async_resp.hpp" // NOLINT
#include "http_request.hpp" // NOLINT
namespace serialize {
// Serializes a serialize_prop_map into json
nlohmann::json SerializePropMap(dbus::utility::DBusPropertiesMap& in);
// Deserializes json into a DBusPropertiesMap
dbus::utility::DBusPropertiesMap DeserializePropMap(
nlohmann::json::reference j);
// Serializes a interface map into json
nlohmann::json SerializeInterfaceMap(dbus::utility::DBusInteracesMap& in);
// Deserializes json into a interfacemap
dbus::utility::DBusInteracesMap DeserializeInterfaceMap(
nlohmann::json::reference j);
// Serializes a ManagedObjectType into json
nlohmann::json SerializeObject(dbus::utility::ManagedObjectType& in);
// Deserializes json into a ManagedObjectType
dbus::utility::ManagedObjectType DeserializeObject(
nlohmann::json::reference j);
// Serializes a MapperServiceMap into json
nlohmann::json SerializeMapperServiceMap(
const dbus::utility::MapperServiceMap& in);
// Deserializes json into a MapperServiceMap
dbus::utility::MapperServiceMap DeserializeMapperServiceMap(
nlohmann::json::reference j);
// Serializes a Subtree into json
nlohmann::json SerializeSubtree(dbus::utility::MapperGetSubTreeResponse& in);
// Deserializes json into a Subtree
dbus::utility::MapperGetSubTreeResponse DeserializeSubtree(
nlohmann::json::reference j);
// Serializes a SubtreePaths into json
nlohmann::json SerializeSubtreePaths(
dbus::utility::MapperGetSubTreePathsResponse& in);
// Deserializes json into a Subtree
dbus::utility::MapperGetSubTreePathsResponse DeserializeSubtreePaths(
nlohmann::json::reference j);
// Serializes a MapperObject into json
nlohmann::json SerializeMapperObject(
dbus::utility::MapperGetObject& in);
// Deserializes json into a MapperObject
dbus::utility::MapperGetObject DeserializeMapperObject(
nlohmann::json::reference j);
// Serialize a SystemListUnit
nlohmann::json SerializeSystemdUnitStruct(
dbus::utility::SystemdUnitStruct& in);
// Serializes a SystemdListUnits into json
nlohmann::json SerializeSystemdListUnits(
dbus::utility::SystemdListUnits& in);
// Deserializes json into a SystemdUnitStruct
dbus::utility::SystemdUnitStruct DeserializeSystemdUnitStruct(
nlohmann::json::reference j);
// Deserializes json into a SystemdListUnits
dbus::utility::SystemdListUnits DeserializeSystemdListUnits(
nlohmann::json::reference j);
// serialize a DBusVariantType into json
nlohmann::json Serialize(const dbus::utility::DbusVariantType& v);
// Serializes a vector of DBusVariantType into json
template <typename t>
nlohmann::json IterateSerialize(const std::vector<t>& in);
// Deserializes json into a DBusVariantType
dbus::utility::DbusVariantType Deserialize(nlohmann::json::reference j);
// Deserializes an iterable container of DbusVariantType
inline dbus::utility::DbusVariantType DeserializeIter(
nlohmann::json::reference j, const std::string& type);
// Deserializes an tuple container of DbusVariantType
inline dbus::utility::DbusVariantType DeserializeTup(
nlohmann::json::reference j, const std::string& type);
// Reads a binary file into a string, or returns no value on error
std::optional<std::string> ReadBinaryFileToString(
const std::filesystem::path& file);
} // Namespace serialize