Writer.cpp
Go to the documentation of this file.
1 #include "Writer.h"
2 
3 #include <mutex>
4 #include <string>
5 
8 
13 
14 #include <armarx/navigation/memory/aron/LaserScannerFeatures.aron.generated.h>
17 
19 {
20 
21  Writer::~Writer() = default;
22 
23  std::string
25  {
26  return "mem.nav.laser_scanner_features.";
27  }
28 
29  armarx::armem::client::util::SimpleWriterBase::SimpleWriterBase::Properties
31  {
32  return SimpleWriterBase::Properties{.memoryName = memory::constants::NavigationMemoryName,
33  .coreSegmentName =
35  }
36 
37  bool
39  const std::string& providerName,
40  const armem::Time& timestamp)
41  {
42  std::lock_guard g{writeMutex};
43 
44  // const auto result = memoryWriter.addSegment(constants::memoryName,
45  // constants::LaserScannerFeaturesCoreSegment);
46 
47  // if (not result.success)
48  // {
49  // ARMARX_ERROR << result.errorMessage;
50 
51  // // TODO(fabian.reister): message
52  // return false;
53  // }
54 
55  const auto entityID = armem::MemoryID()
57  .withCoreSegmentName(properties().coreSegmentName)
58  .withProviderSegmentName(providerName)
59  .withEntityName(features.frame)
60  .withTimestamp(timestamp);
61 
62  ARMARX_VERBOSE << "Memory id is " << entityID.str();
63 
65  update.entityID = entityID;
66 
68 
69  arondto::LaserScannerFeatures dto;
70  toAron(dto, features);
71 
73 
74  update.instancesData = {dto.toAron()};
75  update.referencedTime = timestamp;
76 
77  ARMARX_DEBUG << "Committing " << update << " at time " << timestamp;
78 
81 
82  ARMARX_DEBUG << updateResult;
83 
84  if (not updateResult.success)
85  {
86  ARMARX_ERROR << updateResult.errorMessage;
87  }
88 
89  return updateResult.success;
90  }
91 
92 } // namespace armarx::navigation::memory::client::laser_scanner_features
ARMARX_VERBOSE
#define ARMARX_VERBOSE
Definition: Logging.h:187
armarx::navigation::memory::LaserScannerFeatures
Definition: types.h:61
armarx::navigation::memory::client::laser_scanner_features::Writer::defaultProperties
Properties defaultProperties() const override
Definition: Writer.cpp:30
armarx::navigation::memory::client::laser_scanner_features::Writer::~Writer
virtual ~Writer()
armarx::armem::MemoryID::withMemoryName
MemoryID withMemoryName(const std::string &name) const
Definition: MemoryID.cpp:401
armarx::armem::EntityUpdateResult
Result of an EntityUpdate.
Definition: Commit.h:69
MemoryID.h
forward_declarations.h
trace.h
armarx::navigation::memory::constants::NavigationMemoryName
const std::string NavigationMemoryName
Definition: constants.h:29
aron_conversions.h
ARMARX_TRACE
#define ARMARX_TRACE
Definition: trace.h:77
armarx::armem::MemoryID::withProviderSegmentName
MemoryID withProviderSegmentName(const std::string &name) const
Definition: MemoryID.cpp:417
armarx::armem::client::util::SimpleWriterBase::memoryWriter
armem::client::Writer & memoryWriter()
Definition: SimpleWriterBase.cpp:52
armarx::armem::MemoryID::withCoreSegmentName
MemoryID withCoreSegmentName(const std::string &name) const
Definition: MemoryID.cpp:409
ARMARX_DEBUG
#define ARMARX_DEBUG
Definition: Logging.h:184
armarx::armem::client::util::SimpleWriterBase::Properties::memoryName
std::string memoryName
Definition: SimpleWriterBase.h:49
armarx::armem::EntityUpdate
An update of an entity for a specific point in time.
Definition: Commit.h:25
armarx::armem::client::Writer::commit
CommitResult commit(const Commit &commit) const
Writes a Commit to the memory.
Definition: Writer.cpp:59
ARMARX_ERROR
#define ARMARX_ERROR
Definition: Logging.h:196
armarx::navigation::memory::client::laser_scanner_features::Writer::propertyPrefix
std::string propertyPrefix() const override
Definition: Writer.cpp:24
armarx::armem::server::ltm::util::mongodb::detail::update
bool update(mongocxx::collection &coll, const nlohmann::json &query, const nlohmann::json &update)
Definition: mongodb.cpp:68
armarx::navigation::memory::client::laser_scanner_features
Definition: Reader.cpp:21
Commit.h
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::armem::MemoryID::withEntityName
MemoryID withEntityName(const std::string &name) const
Definition: MemoryID.cpp:425
armarx::navigation::memory::toAron
void toAron(arondto::Circle &dto, const Circle &bo)
Definition: aron_conversions.cpp:25
armarx::armem::laser_scans::constants::memoryName
const std::string memoryName
Definition: constants.h:28
Writer.h
armarx::navigation::memory::LaserScannerFeatures::frame
std::string frame
Definition: types.h:64
armarx::armem::client::util::SimpleWriterBase::properties
const Properties & properties() const
Definition: SimpleWriterBase.cpp:58
armarx::armem::MemoryID::withTimestamp
MemoryID withTimestamp(Time time) const
Definition: MemoryID.cpp:433
constants.h
Logging.h
SimpleWriterBase.h
armarx::navigation::memory::client::laser_scanner_features::Writer::store
bool store(const LaserScannerFeatures &features, const std::string &providerName, const armem::Time &timestamp)
Definition: Writer.cpp:38
armarx::navigation::memory::constants::LaserScannerFeaturesCoreSegment
const std::string LaserScannerFeaturesCoreSegment
Definition: constants.h:38
armarx::human::MemoryID
const armem::MemoryID MemoryID
Definition: memory_ids.cpp:28