30 #include <unordered_map> 49 class TensorMap :
public std::unordered_map<std::string, core::Tensor> {
53 :
std::unordered_map<
std::string, core::Tensor>(),
54 primary_key_(primary_key) {}
63 template <
class InputIt>
64 TensorMap(
const std::string& primary_key, InputIt first, InputIt last)
65 :
std::unordered_map<
std::string, core::Tensor>(first, last),
66 primary_key_(primary_key) {
67 AssertPrimaryKeyInMapOrEmpty();
71 const std::unordered_map<std::string, core::Tensor>& tensor_map)
72 :
TensorMap(primary_key, tensor_map.begin(), tensor_map.end()) {}
75 std::initializer_list<value_type> init)
76 :
std::unordered_map<
std::string, core::Tensor>(init),
77 primary_key_(primary_key) {
78 AssertPrimaryKeyInMapOrEmpty();
83 :
std::unordered_map<
std::string, core::Tensor>(other),
84 primary_key_(other.primary_key_) {
85 AssertPrimaryKeyInMapOrEmpty();
90 :
std::unordered_map<
std::string, core::Tensor>(other),
91 primary_key_(other.primary_key_) {
92 AssertPrimaryKeyInMapOrEmpty();
101 if (key == primary_key_) {
107 return this->erase(key);
130 void AssertPrimaryKeyInMapOrEmpty()
const;
133 int64_t GetPrimarySize()
const {
return at(primary_key_).GetLength(); }
137 return at(primary_key_).GetDevice();
141 std::string primary_key_;
#define LogWarning(...)
Definition: Console.h:95
Definition: Optional.h:912
TensorMap(const std::string &primary_key, std::initializer_list< value_type > init)
Definition: TensorMap.h:74
TensorMap()
Definition: TensorMap.h:59
TensorMap(const std::string &primary_key, InputIt first, InputIt last)
Definition: TensorMap.h:64
TensorMap(const std::string &primary_key)
Create empty TensorMap and set primary key.
Definition: TensorMap.h:52
#define LogError(...)
Definition: Console.h:79
TensorMap & operator=(const TensorMap &)=default
bool Contains(const std::string &key) const
Definition: TensorMap.h:125
int count
Definition: FilePCD.cpp:61
Definition: PinholeCameraIntrinsic.cpp:35
TensorMap(const std::string &primary_key, const std::unordered_map< std::string, core::Tensor > &tensor_map)
Definition: TensorMap.h:70
TensorMap(const TensorMap &other)
Copy constructor performs a "shallow" copy of the Tensors.
Definition: TensorMap.h:82
std::string GetPrimaryKey() const
Returns the primary key of the TensorMap.
Definition: TensorMap.h:115
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle image_handle timestamp_usec white_balance image_handle k4a_device_configuration_t config device_handle char size_t serial_number_size bool int32_t int32_t int32_t int32_t k4a_color_control_mode_t default_mode value const const k4a_calibration_t calibration char size_t
Definition: K4aPlugin.cpp:724
void AssertSizeSynchronized() const
Assert IsSizeSynchronized().
Definition: TensorMap.cpp:58
bool IsSizeSynchronized() const
Returns true if all tensors in the map have the same size.
Definition: TensorMap.cpp:41
std::size_t Erase(const std::string key)
Erase elements for the TensorMap by key value, if the key exists. If the key does not exists...
Definition: TensorMap.h:100
TensorMap(TensorMap &&other)
Move constructor performs a "shallow" copy of the Tensors.
Definition: TensorMap.h:89
Definition: TensorMap.h:49