codec.h
Go to the documentation of this file.
/*
* Copyright © 2012-2013 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Authored by: Thomas Voß <thomas.voss@canonical.com>
*/
#ifndef LOCATION_SERVICE_COM_LOMIRI_LOCATION_CODEC_H_
#define LOCATION_SERVICE_COM_LOMIRI_LOCATION_CODEC_H_
#include <com/lomiri/location/criteria.h>
#include <com/lomiri/location/heading.h>
#include <com/lomiri/location/position.h>
#include <com/lomiri/location/provider.h>
#include <com/lomiri/location/space_vehicle.h>
#include <com/lomiri/location/update.h>
#include <com/lomiri/location/velocity.h>
#include <com/lomiri/location/service/state.h>
#include <com/lomiri/location/units/units.h>
#include <com/lomiri/location/wgs84/altitude.h>
#include <com/lomiri/location/wgs84/latitude.h>
#include <com/lomiri/location/wgs84/longitude.h>
#include <core/dbus/codec.h>
#include <sstream>
namespace core
{
namespace dbus
{
namespace helper
{
template<>
struct TypeMapper<com::lomiri::location::service::State>
{
constexpr static ArgumentType type_value()
{
return ArgumentType::string;
}
constexpr static bool is_basic_type()
{
return true;
}
constexpr static bool requires_signature()
{
return false;
}
static std::string signature()
{
static const std::string s = TypeMapper<std::string>::signature();
return s;
}
};
}
template<>
struct Codec<com::lomiri::location::service::State>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::service::State& in)
{
std::stringstream ss; ss << in; auto s = ss.str();
writer.push_stringn(s.c_str(), s.size());
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::service::State& in)
{
auto s = reader.pop_string();
std::stringstream ss{s}; ss >> in;
}
};
namespace helper
{
template<typename T>
struct TypeMapper<com::lomiri::location::units::Quantity<T>>
{
constexpr static ArgumentType type_value()
{
return ArgumentType::floating_point;
}
constexpr static bool is_basic_type()
{
return true;
}
constexpr static bool requires_signature()
{
return false;
}
static std::string signature()
{
static const std::string s = TypeMapper<double>::signature();
return s;
}
};
}
template<typename T>
struct Codec<com::lomiri::location::Optional<T>>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::Optional<T>& in)
{
bool has_value{in};
Codec<bool>::encode_argument(writer, has_value);
if (has_value)
Codec<typename com::lomiri::location::Optional<T>::value_type>::encode_argument(writer, *in);
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::Optional<T>& in)
{
bool has_value{false};
Codec<bool>::decode_argument(reader, has_value);
if (has_value)
{
typename com::lomiri::location::Optional<T>::value_type value;
Codec<typename com::lomiri::location::Optional<T>::value_type>::decode_argument(reader, value);
in = value;
} else
{
in.reset();
}
}
};
template<typename T>
struct Codec<com::lomiri::location::units::Quantity<T>>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::units::Quantity<T>& in)
{
Codec<typename com::lomiri::location::units::Quantity<T>::value_type>::encode_argument(writer, in.value());
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::units::Quantity<T>& in)
{
typename com::lomiri::location::units::Quantity<T>::value_type value;
Codec<typename com::lomiri::location::units::Quantity<T>::value_type>::decode_argument(reader, value);
in = com::lomiri::location::units::Quantity<T>::from_value(value);
}
};
template<typename T, typename U>
struct Codec<com::lomiri::location::wgs84::Coordinate<T,U>>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::wgs84::Coordinate<T, U>& in)
{
Codec<com::lomiri::location::units::Quantity<U>>::encode_argument(writer, in.value);
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::wgs84::Coordinate<T, U>& in)
{
Codec<com::lomiri::location::units::Quantity<U>>::decode_argument(reader, in.value);
}
};
template<>
struct Codec<com::lomiri::location::Position>
{
typedef com::lomiri::location::Position::Accuracy::Horizontal HorizontalAccuracy;
typedef com::lomiri::location::Position::Accuracy::Vertical VerticalAccuracy;
static void encode_argument(Message::Writer& writer, const com::lomiri::location::Position& in)
{
Codec<com::lomiri::location::wgs84::Latitude>::encode_argument(writer, in.latitude);
Codec<com::lomiri::location::wgs84::Longitude>::encode_argument(writer, in.longitude);
Codec<com::lomiri::location::Optional<com::lomiri::location::wgs84::Altitude>>::encode_argument(writer, in.altitude);
Codec<com::lomiri::location::Optional<HorizontalAccuracy>>::encode_argument(writer, in.accuracy.horizontal);
Codec<com::lomiri::location::Optional<VerticalAccuracy>>::encode_argument(writer, in.accuracy.vertical);
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::Position& in)
{
Codec<com::lomiri::location::wgs84::Latitude>::decode_argument(reader, in.latitude);
Codec<com::lomiri::location::wgs84::Longitude>::decode_argument(reader, in.longitude);
Codec<com::lomiri::location::Optional<com::lomiri::location::wgs84::Altitude>>::decode_argument(reader, in.altitude);
Codec<com::lomiri::location::Optional<HorizontalAccuracy>>::decode_argument(reader, in.accuracy.horizontal);
Codec<com::lomiri::location::Optional<VerticalAccuracy>>::decode_argument(reader, in.accuracy.vertical);
}
};
namespace helper
{
template<>
struct TypeMapper<com::lomiri::location::SpaceVehicle::Key>
{
constexpr static ArgumentType type_value()
{
return ArgumentType::structure;
}
constexpr static bool is_basic_type()
{
return false;
}
constexpr static bool requires_signature()
{
return true;
}
static std::string signature()
{
static const std::string s =
helper::TypeMapper<std::uint32_t>::signature() +
helper::TypeMapper<std::uint32_t>::signature();
return s;
}
};
template<>
struct TypeMapper<com::lomiri::location::SpaceVehicle>
{
constexpr static ArgumentType type_value()
{
return ArgumentType::structure;
}
constexpr static bool is_basic_type()
{
return false;
}
constexpr static bool requires_signature()
{
return true;
}
inline static std::string signature()
{
std::string s =
DBUS_STRUCT_BEGIN_CHAR_AS_STRING +
helper::TypeMapper<com::lomiri::location::SpaceVehicle::Key>::signature() +
helper::TypeMapper<float>::signature() +
helper::TypeMapper<bool>::signature() +
helper::TypeMapper<bool>::signature() +
helper::TypeMapper<bool>::signature() +
helper::TypeMapper<com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle>>::signature() +
helper::TypeMapper<com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle>>::signature() +
DBUS_STRUCT_END_CHAR_AS_STRING;
return s;
}
};
}
template<>
struct Codec<com::lomiri::location::SpaceVehicle::Key>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::SpaceVehicle::Key& in)
{
writer.push_uint32(static_cast<std::uint32_t>(in.type));
writer.push_uint32(in.id);
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::SpaceVehicle::Key& in)
{
in.type = static_cast<com::lomiri::location::SpaceVehicle::Type>(reader.pop_uint32());
in.id = reader.pop_uint32();
}
};
template<>
struct Codec<com::lomiri::location::SpaceVehicle>
{
inline static void encode_argument(Message::Writer& writer, const com::lomiri::location::SpaceVehicle& in)
{
auto sub = writer.open_structure();
Codec<com::lomiri::location::SpaceVehicle::Key>::encode_argument(sub, in.key);
sub.push_floating_point(in.snr);
sub.push_boolean(in.has_almanac_data);
sub.push_boolean(in.has_ephimeris_data);
sub.push_boolean(in.used_in_fix);
Codec<com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle>>::encode_argument(sub, in.azimuth);
Codec<com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle>>::encode_argument(sub, in.elevation);
writer.close_structure(std::move(sub));
}
inline static void decode_argument(Message::Reader& reader, com::lomiri::location::SpaceVehicle& in)
{
auto sub = reader.pop_structure();
Codec<com::lomiri::location::SpaceVehicle::Key>::decode_argument(sub, in.key);
in.snr = sub.pop_floating_point();
in.has_almanac_data = sub.pop_boolean();
in.has_ephimeris_data = sub.pop_boolean();
in.used_in_fix = sub.pop_boolean();
Codec<com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle>>::decode_argument(sub, in.azimuth);
Codec<com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle>>::decode_argument(sub, in.elevation);
}
};
namespace helper
{
template<>
struct TypeMapper<std::map<com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle>>
{
constexpr static ArgumentType type_value()
{
return ArgumentType::array;
}
constexpr static bool is_basic_type()
{
return false;
}
constexpr static bool requires_signature()
{
return true;
}
static std::string signature()
{
static const std::string s = DBUS_TYPE_ARRAY_AS_STRING + TypeMapper<com::lomiri::location::SpaceVehicle>::signature();
return s;
}
};
}
template<>
struct Codec<std::map<com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle>>
{
inline static void encode_argument(Message::Writer& writer, const std::map<com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle>& arg)
{
types::Signature signature(helper::TypeMapper<com::lomiri::location::SpaceVehicle>::signature());
auto sub = writer.open_array(signature);
for(const auto& element : arg)
{
Codec<com::lomiri::location::SpaceVehicle>::encode_argument(sub, element.second);
}
writer.close_array(std::move(sub));
}
inline static void decode_argument(Message::Reader& reader, std::map<com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle>& out)
{
auto sub = reader.pop_array();
while (sub.type() != ArgumentType::invalid)
{
com::lomiri::location::SpaceVehicle sv;
Codec<com::lomiri::location::SpaceVehicle>::decode_argument(sub, sv);
out.insert(std::make_pair(sv.key, sv));
}
}
};
template<>
struct Codec<com::lomiri::location::Criteria>
{
typedef com::lomiri::location::units::Quantity<com::lomiri::location::units::Length> HorizontalAccuracy;
typedef com::lomiri::location::units::Quantity<com::lomiri::location::units::Length> VerticalAccuracy;
typedef com::lomiri::location::units::Quantity<com::lomiri::location::units::Velocity> VelocityAccuracy;
typedef com::lomiri::location::units::Quantity<com::lomiri::location::units::PlaneAngle> HeadingAccuracy;
static void encode_argument(Message::Writer& writer, const com::lomiri::location::Criteria& in)
{
Codec<bool>::encode_argument(writer, in.requires.position);
Codec<bool>::encode_argument(writer, in.requires.altitude);
Codec<bool>::encode_argument(writer, in.requires.heading);
Codec<bool>::encode_argument(writer, in.requires.velocity);
Codec<HorizontalAccuracy>::encode_argument(writer, in.accuracy.horizontal);
Codec<com::lomiri::location::Optional<VerticalAccuracy>>::encode_argument(writer, in.accuracy.vertical);
Codec<com::lomiri::location::Optional<VelocityAccuracy>>::encode_argument(writer, in.accuracy.velocity);
Codec<com::lomiri::location::Optional<HeadingAccuracy>>::encode_argument(writer, in.accuracy.heading);
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::Criteria& in)
{
Codec<bool>::decode_argument(reader, in.requires.position);
Codec<bool>::decode_argument(reader, in.requires.altitude);
Codec<bool>::decode_argument(reader, in.requires.heading);
Codec<bool>::decode_argument(reader, in.requires.velocity);
Codec<HorizontalAccuracy>::decode_argument(reader, in.accuracy.horizontal);
Codec<com::lomiri::location::Optional<VerticalAccuracy>>::decode_argument(reader, in.accuracy.vertical);
Codec<com::lomiri::location::Optional<VelocityAccuracy>>::decode_argument(reader, in.accuracy.velocity);
Codec<com::lomiri::location::Optional<HeadingAccuracy>>::decode_argument(reader, in.accuracy.heading);
}
};
template<>
struct Codec<com::lomiri::location::Provider::Features>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::Provider::Features& in)
{
writer.push_int32(static_cast<std::int32_t>(in));
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::Provider::Features& in)
{
in = static_cast<com::lomiri::location::Provider::Features>(reader.pop_int32());
}
};
template<>
struct Codec<com::lomiri::location::Provider::Requirements>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::Provider::Requirements& in)
{
writer.push_int32(static_cast<std::int32_t>(in));
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::Provider::Requirements& in)
{
in = static_cast<com::lomiri::location::Provider::Requirements>(reader.pop_int32());
}
};
template<>
struct Codec<com::lomiri::location::WifiAndCellIdReportingState>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::WifiAndCellIdReportingState& in)
{
writer.push_int32(static_cast<std::int32_t>(in));
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::WifiAndCellIdReportingState& in)
{
in = static_cast<com::lomiri::location::WifiAndCellIdReportingState>(reader.pop_int32());
}
};
namespace helper
{
template<typename T>
struct TypeMapper<com::lomiri::location::Update<T>>
{
constexpr static ArgumentType type_value()
{
return ArgumentType::structure;
}
constexpr static bool is_basic_type()
{
return false;
}
constexpr static bool requires_signature()
{
return true;
}
static std::string signature()
{
static const std::string s =
helper::TypeMapper<T>::signature() +
helper::TypeMapper<uint64_t>::signature();
return s;
}
};
}
template<typename T>
struct Codec<com::lomiri::location::Update<T>>
{
static void encode_argument(Message::Writer& writer, const com::lomiri::location::Update<T>& in)
{
Codec<T>::encode_argument(writer, in.value);
Codec<int64_t>::encode_argument(writer, in.when.time_since_epoch().count());
}
static void decode_argument(Message::Reader& reader, com::lomiri::location::Update<T>& in)
{
Codec<T>::decode_argument(reader, in.value);
in.when = com::lomiri::location::Clock::Timestamp(com::lomiri::location::Clock::Duration(reader.pop_int64()));
}
};
}
}
#endif // LOCATION_SERVICE_COM_LOMIRI_LOCATION_CODEC_H_
altitude.h
com::lomiri::location::Provider::Features
Features
Enumerates the known features that can be supported by providers.
Definition provider.h:54
com::lomiri::location::Provider::Requirements
Requirements
Enumerates the requirements of a provider implementation.
Definition provider.h:65
com::lomiri::location::wgs84::Coordinate
Definition coordinate.h:43
com::lomiri::location::wgs84::Coordinate::value
Quantity value
Definition coordinate.h:64
criteria.h
heading.h
latitude.h
longitude.h
com::lomiri::location::service::State
State
State enumerates the known states of the service.
Definition state.h:27
com::lomiri::location::units::Quantity
boost::units::quantity< Unit, double > Quantity
Definition units.h:60
com::lomiri::location::Optional
boost::optional< T > Optional
Definition optional.h:31
com::lomiri::location::WifiAndCellIdReportingState
WifiAndCellIdReportingState
Definition wifi_and_cell_reporting_state.h:30
com
Definition accuracy.h:24
core::dbus::helper
Definition codec.h:43
core::dbus
Definition codec.h:41
core
Definition codec.h:39
position.h
provider.h
space_vehicle.h
state.h
com::lomiri::location::Clock::Timestamp
std::chrono::high_resolution_clock::time_point Timestamp
Timestamp type of the location service clock.
Definition clock.h:45
com::lomiri::location::Clock::Duration
std::chrono::high_resolution_clock::duration Duration
Duration type of the location service clock.
Definition clock.h:40
com::lomiri::location::Criteria::Accuracy::horizontal
units::Quantity< units::Length > horizontal
The client requires measurements of at least this horizontal accuracy.
Definition criteria.h:53
com::lomiri::location::Criteria::Accuracy::heading
Optional< units::Quantity< units::PlaneAngle > > heading
The client requires measurements of at least this heading accuracy.
Definition criteria.h:56
com::lomiri::location::Criteria::Accuracy::vertical
Optional< units::Quantity< units::Length > > vertical
The client requires measurements of at least this vertical accuracy.
Definition criteria.h:54
com::lomiri::location::Criteria::Accuracy::velocity
Optional< units::Quantity< units::Velocity > > velocity
The client requires measurements of at least this velocity accuracy.
Definition criteria.h:55
com::lomiri::location::Criteria::Requires::heading
bool heading
The client needs heading measurements.
Definition criteria.h:48
com::lomiri::location::Criteria::Requires::altitude
bool altitude
The client needs altitude measurements.
Definition criteria.h:46
com::lomiri::location::Criteria::Requires::velocity
bool velocity
The client needs velocity measurments.
Definition criteria.h:47
com::lomiri::location::Criteria::Requires::position
bool position
The client needs position measurements.
Definition criteria.h:45
com::lomiri::location::Criteria
Summarizes criteria of a client session with respect to functionality and accuracy for position,...
Definition criteria.h:35
com::lomiri::location::Criteria::accuracy
struct com::lomiri::location::Criteria::Accuracy accuracy
com::lomiri::location::Criteria::requires
struct com::lomiri::location::Criteria::Requires requires
com::lomiri::location::Position::Accuracy::Vertical
units::Quantity< units::Length > Vertical
Definition position.h:44
com::lomiri::location::Position::Accuracy::vertical
Optional< Vertical > vertical
Definition position.h:47
com::lomiri::location::Position::Accuracy::Horizontal
units::Quantity< units::Length > Horizontal
Definition position.h:43
com::lomiri::location::Position::Accuracy::horizontal
Optional< Horizontal > horizontal
Definition position.h:46
com::lomiri::location::Position
The Position struct models a position in the wgs84 coordinate system.
Definition position.h:40
com::lomiri::location::Position::altitude
Optional< wgs84::Altitude > altitude
Definition position.h:61
com::lomiri::location::Position::longitude
wgs84::Longitude longitude
Definition position.h:60
com::lomiri::location::Position::accuracy
Accuracy accuracy
Definition position.h:62
com::lomiri::location::Position::latitude
wgs84::Latitude latitude
Definition position.h:59
com::lomiri::location::SpaceVehicle::Key
Uniquely identifies a space vehicle, given its type and its id.
Definition space_vehicle.h:53
com::lomiri::location::SpaceVehicle::Key::id
Id id
Unique id of the space vehicle.
Definition space_vehicle.h:55
com::lomiri::location::SpaceVehicle::Key::type
Type type
The positioning system this vehicle belongs to.
Definition space_vehicle.h:54
com::lomiri::location::SpaceVehicle
A space-vehicle as visible to providers.
Definition space_vehicle.h:34
com::lomiri::location::SpaceVehicle::Type
Type
Enumerates all known space-vehicle types.
Definition space_vehicle.h:40
com::lomiri::location::SpaceVehicle::key
Key key
Unique key identifying an instance.
Definition space_vehicle.h:86
com::lomiri::location::SpaceVehicle::azimuth
units::Quantity< units::PlaneAngle > azimuth
Azimuth of SV.
Definition space_vehicle.h:91
com::lomiri::location::SpaceVehicle::has_almanac_data
bool has_almanac_data
Almanac data available for this vehicle.
Definition space_vehicle.h:88
com::lomiri::location::SpaceVehicle::elevation
units::Quantity< units::PlaneAngle > elevation
Elevation of SV.
Definition space_vehicle.h:92
com::lomiri::location::SpaceVehicle::used_in_fix
bool used_in_fix
This vehicle has been used to obtain a fix.
Definition space_vehicle.h:90
com::lomiri::location::SpaceVehicle::has_ephimeris_data
bool has_ephimeris_data
Ephimeris data is available for this vehicle.
Definition space_vehicle.h:89
com::lomiri::location::SpaceVehicle::snr
float snr
Signal to noise ratio;.
Definition space_vehicle.h:87
com::lomiri::location::Update
Templated class that wraps a value and timestamp.
Definition update.h:37
com::lomiri::location::Update::value
T value
Definition update.h:70
com::lomiri::location::Update::when
Clock::Timestamp when
Definition update.h:73
core::dbus::Codec< com::lomiri::location::Criteria >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::Criteria &in)
Definition codec.h:364
core::dbus::Codec< com::lomiri::location::Criteria >::HeadingAccuracy
com::lomiri::location::units::Quantity< com::lomiri::location::units::PlaneAngle > HeadingAccuracy
Definition codec.h:362
core::dbus::Codec< com::lomiri::location::Criteria >::VelocityAccuracy
com::lomiri::location::units::Quantity< com::lomiri::location::units::Velocity > VelocityAccuracy
Definition codec.h:361
core::dbus::Codec< com::lomiri::location::Criteria >::HorizontalAccuracy
com::lomiri::location::units::Quantity< com::lomiri::location::units::Length > HorizontalAccuracy
Definition codec.h:359
core::dbus::Codec< com::lomiri::location::Criteria >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::Criteria &in)
Definition codec.h:377
core::dbus::Codec< com::lomiri::location::Criteria >::VerticalAccuracy
com::lomiri::location::units::Quantity< com::lomiri::location::units::Length > VerticalAccuracy
Definition codec.h:360
core::dbus::Codec< com::lomiri::location::Optional< T > >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::Optional< T > &in)
Definition codec.h:114
core::dbus::Codec< com::lomiri::location::Optional< T > >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::Optional< T > &in)
Definition codec.h:122
core::dbus::Codec< com::lomiri::location::Position >::VerticalAccuracy
com::lomiri::location::Position::Accuracy::Vertical VerticalAccuracy
Definition codec.h:172
core::dbus::Codec< com::lomiri::location::Position >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::Position &in)
Definition codec.h:174
core::dbus::Codec< com::lomiri::location::Position >::HorizontalAccuracy
com::lomiri::location::Position::Accuracy::Horizontal HorizontalAccuracy
Definition codec.h:171
core::dbus::Codec< com::lomiri::location::Position >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::Position &in)
Definition codec.h:184
core::dbus::Codec< com::lomiri::location::Provider::Features >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::Provider::Features &in)
Definition codec.h:399
core::dbus::Codec< com::lomiri::location::Provider::Features >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::Provider::Features &in)
Definition codec.h:394
core::dbus::Codec< com::lomiri::location::Provider::Requirements >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::Provider::Requirements &in)
Definition codec.h:413
core::dbus::Codec< com::lomiri::location::Provider::Requirements >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::Provider::Requirements &in)
Definition codec.h:408
core::dbus::Codec< com::lomiri::location::SpaceVehicle >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::SpaceVehicle &in)
Definition codec.h:274
core::dbus::Codec< com::lomiri::location::SpaceVehicle >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::SpaceVehicle &in)
Definition codec.h:289
core::dbus::Codec< com::lomiri::location::SpaceVehicle::Key >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::SpaceVehicle::Key &in)
Definition codec.h:264
core::dbus::Codec< com::lomiri::location::SpaceVehicle::Key >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::SpaceVehicle::Key &in)
Definition codec.h:258
core::dbus::Codec< com::lomiri::location::Update< T > >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::Update< T > &in)
Definition codec.h:470
core::dbus::Codec< com::lomiri::location::Update< T > >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::Update< T > &in)
Definition codec.h:464
core::dbus::Codec< com::lomiri::location::WifiAndCellIdReportingState >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::WifiAndCellIdReportingState &in)
Definition codec.h:422
core::dbus::Codec< com::lomiri::location::WifiAndCellIdReportingState >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::WifiAndCellIdReportingState &in)
Definition codec.h:427
core::dbus::Codec< com::lomiri::location::service::State >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::service::State &in)
Definition codec.h:72
core::dbus::Codec< com::lomiri::location::service::State >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::service::State &in)
Definition codec.h:78
core::dbus::Codec< com::lomiri::location::units::Quantity< T > >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::units::Quantity< T > &in)
Definition codec.h:146
core::dbus::Codec< com::lomiri::location::units::Quantity< T > >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::units::Quantity< T > &in)
Definition codec.h:141
core::dbus::Codec< com::lomiri::location::wgs84::Coordinate< T, U > >::encode_argument
static void encode_argument(Message::Writer &writer, const com::lomiri::location::wgs84::Coordinate< T, U > &in)
Definition codec.h:157
core::dbus::Codec< com::lomiri::location::wgs84::Coordinate< T, U > >::decode_argument
static void decode_argument(Message::Reader &reader, com::lomiri::location::wgs84::Coordinate< T, U > &in)
Definition codec.h:162
core::dbus::Codec< std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > >::encode_argument
static void encode_argument(Message::Writer &writer, const std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > &arg)
Definition codec.h:331
core::dbus::Codec< std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > >::decode_argument
static void decode_argument(Message::Reader &reader, std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > &out)
Definition codec.h:344
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle >::is_basic_type
static constexpr bool is_basic_type()
Definition codec.h:229
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle >::type_value
static constexpr ArgumentType type_value()
Definition codec.h:225
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle >::signature
static std::string signature()
Definition codec.h:238
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle >::requires_signature
static constexpr bool requires_signature()
Definition codec.h:233
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle::Key >::type_value
static constexpr ArgumentType type_value()
Definition codec.h:201
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle::Key >::is_basic_type
static constexpr bool is_basic_type()
Definition codec.h:205
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle::Key >::signature
static std::string signature()
Definition codec.h:214
core::dbus::helper::TypeMapper< com::lomiri::location::SpaceVehicle::Key >::requires_signature
static constexpr bool requires_signature()
Definition codec.h:209
core::dbus::helper::TypeMapper< com::lomiri::location::Update< T > >::type_value
static constexpr ArgumentType type_value()
Definition codec.h:438
core::dbus::helper::TypeMapper< com::lomiri::location::Update< T > >::signature
static std::string signature()
Definition codec.h:451
core::dbus::helper::TypeMapper< com::lomiri::location::Update< T > >::is_basic_type
static constexpr bool is_basic_type()
Definition codec.h:442
core::dbus::helper::TypeMapper< com::lomiri::location::Update< T > >::requires_signature
static constexpr bool requires_signature()
Definition codec.h:446
core::dbus::helper::TypeMapper< com::lomiri::location::service::State >::signature
static std::string signature()
Definition codec.h:61
core::dbus::helper::TypeMapper< com::lomiri::location::service::State >::is_basic_type
static constexpr bool is_basic_type()
Definition codec.h:52
core::dbus::helper::TypeMapper< com::lomiri::location::service::State >::type_value
static constexpr ArgumentType type_value()
Definition codec.h:47
core::dbus::helper::TypeMapper< com::lomiri::location::service::State >::requires_signature
static constexpr bool requires_signature()
Definition codec.h:56
core::dbus::helper::TypeMapper< com::lomiri::location::units::Quantity< T > >::is_basic_type
static constexpr bool is_basic_type()
Definition codec.h:94
core::dbus::helper::TypeMapper< com::lomiri::location::units::Quantity< T > >::type_value
static constexpr ArgumentType type_value()
Definition codec.h:89
core::dbus::helper::TypeMapper< com::lomiri::location::units::Quantity< T > >::signature
static std::string signature()
Definition codec.h:103
core::dbus::helper::TypeMapper< com::lomiri::location::units::Quantity< T > >::requires_signature
static constexpr bool requires_signature()
Definition codec.h:98
core::dbus::helper::TypeMapper< std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > >::type_value
static constexpr ArgumentType type_value()
Definition codec.h:308
core::dbus::helper::TypeMapper< std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > >::is_basic_type
static constexpr bool is_basic_type()
Definition codec.h:312
core::dbus::helper::TypeMapper< std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > >::requires_signature
static constexpr bool requires_signature()
Definition codec.h:316
core::dbus::helper::TypeMapper< std::map< com::lomiri::location::SpaceVehicle::Key, com::lomiri::location::SpaceVehicle > >::signature
static std::string signature()
Definition codec.h:321
units.h
update.h
velocity.h