Writer.cpp
Go to the documentation of this file.
1 #include "Writer.h"
2 
3 #include <mutex>
4 #include <string>
5 
7 
12 
16 
18 {
19  Writer::~Writer() = default;
20 
21  bool
23  const std::string& name,
24  const std::string& providerName,
25  const armem::Time& timestamp)
26  {
27  std::lock_guard g{writeMutex};
28 
29  const auto result =
31 
32  if (not result.success)
33  {
34  ARMARX_ERROR << result.errorMessage;
35 
36  // TODO(fabian.reister): message
37  return false;
38  }
39 
40  const auto providerId = armem::MemoryID(result.segmentID);
41  const auto entityID = providerId.withEntityName(name).withTimestamp(timestamp);
42 
44  update.entityID = entityID;
45 
46  auto aronCostmap = toAron(grid);
47 
48  update.instancesData = {aronCostmap};
49  update.referencedTime = timestamp;
50 
51  ARMARX_DEBUG << "Committing " << update << " at time " << timestamp;
53 
54  ARMARX_DEBUG << updateResult;
55 
56  if (not updateResult.success)
57  {
58  ARMARX_ERROR << updateResult.errorMessage;
59  }
60 
61  return updateResult.success;
62  }
63 
64  std::string
66  {
67  return "mem.nav.costmap.";
68  }
69 
70  armarx::armem::client::util::SimpleWriterBase::SimpleWriterBase::Properties
72  {
73  return SimpleWriterBase::Properties{.memoryName = memory::constants::NavigationMemoryName,
74  .coreSegmentName =
76  }
77 
78 } // namespace armarx::navigation::memory::client::costmap
armarx::armem::client::Writer::addSegment
data::AddSegmentResult addSegment(const std::string &coreSegmentName, const std::string &providerSegmentName, bool clearWhenExists=false) const
Definition: Writer.cpp:16
armarx::navigation::memory::constants::CostmapCoreSegmentName
const std::string CostmapCoreSegmentName
Definition: constants.h:36
armarx::navigation::memory::client::costmap::Writer::store
bool store(const algorithms::Costmap &grid, const std::string &name, const std::string &providerName, const armem::Time &timestamp)
Definition: Writer.cpp:22
aron_conversions.h
armarx::armem::EntityUpdateResult
Result of an EntityUpdate.
Definition: Commit.h:69
MemoryID.h
forward_declarations.h
armarx::navigation::memory::client::costmap
Definition: Reader.cpp:21
armarx::navigation::memory::constants::NavigationMemoryName
const std::string NavigationMemoryName
Definition: constants.h:29
armarx::navigation::memory::client::costmap::Writer::~Writer
~Writer() override
Costmap.h
armarx::armem::client::util::SimpleWriterBase::memoryWriter
armem::client::Writer & memoryWriter()
Definition: SimpleWriterBase.cpp:52
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::navigation::memory::client::costmap::Writer::defaultProperties
Properties defaultProperties() const override
Definition: Writer.cpp:71
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::armem::server::ltm::util::mongodb::detail::update
bool update(mongocxx::collection &coll, const nlohmann::json &query, const nlohmann::json &update)
Definition: mongodb.cpp:68
Commit.h
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
Writer.h
armarx::navigation::memory::toAron
void toAron(arondto::Circle &dto, const Circle &bo)
Definition: aron_conversions.cpp:25
constants.h
Logging.h
SimpleWriterBase.h
armarx::navigation::memory::client::costmap::Writer::propertyPrefix
std::string propertyPrefix() const override
Definition: Writer.cpp:65
armarx::navigation::algorithms::Costmap
Definition: Costmap.h:16
armarx::human::MemoryID
const armem::MemoryID MemoryID
Definition: memory_ids.cpp:28