7#include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
8#include <RobotAPI/interface/armem/server/MemoryInterface.h>
51 std::lock_guard<std::mutex> lock(
rateMutex);
52 auto now = std::chrono::steady_clock::now();
55 if (elapsedSec >= 1.0)
58 uint64_t currentQueries =
totalQueryCount.load(std::memory_order_relaxed);
83 std::lock_guard<std::mutex> lock(
rateMutex);
109 data::AddSegmentResult
addSegment(
const data::AddSegmentInput& input,
110 bool addCoreSegments =
false);
112 data::AddSegmentsResult
addSegments(
const data::AddSegmentsInput& input,
113 bool addCoreSegments =
false);
116 data::CommitResult
commit(
const data::Commit& commitIce,
Time timeArrived);
117 data::CommitResult
commit(
const data::Commit& commitIce);
119 data::CommitResult
commitLocking(
const data::Commit& commitIce,
Time timeArrived);
120 data::CommitResult
commitLocking(
const data::Commit& commitIce);
125 query::data::Result
query(
const armem::query::data::Input& input);
132 query::data::Result
queryLTM(
const armem::query::data::Input& input,
bool storeIntoWM);
157 dto::DirectlyStoreResult
directlyStore(
const dto::DirectlyStoreInput& directlStoreInput);
158 dto::StartRecordResult
startRecord(
const dto::StartRecordInput& startRecordInput);
163 prediction::data::PredictionResultSeq
164 predict(prediction::data::PredictionRequestSeq requests);
server::wm::Memory * workingMemory
armem::structure::data::GetServerStructureResult getServerStructure()
void setMemoryListener(client::MemoryListenerInterfacePrx memoryListenerTopic)
dto::StartRecordResult startRecord(const dto::StartRecordInput &startRecordInput)
const MemoryOperationStatistics & getStatistics() const
Get statistics for memory operations (commits and queries)
armem::CommitResult reloadFromLTMOnStartup()
Triggers a reload (.
armem::CommitResult reloadAllFromLTM()
Loads all core segments and their data from the LTM.
query::data::Result queryLTM(const armem::query::data::Input &input, bool storeIntoWM)
Query the LTMs of the memory server.
client::MemoryListenerInterfacePrx memoryListenerTopic
dto::StopRecordResult stopRecord()
query::data::Result query(const armem::query::data::Input &input)
armem::CommitResult reloadCoreSegmentsFromLTM(std::list< std::string > &coreSegmentname)
Only load specific core segments and their data from the LTM.
prediction::data::PredictionResultSeq predict(prediction::data::PredictionRequestSeq requests)
dto::DirectlyStoreResult directlyStore(const dto::DirectlyStoreInput &directlStoreInput)
void reportDebugMetrics()
Report all debug metrics to the debug observer.
void resetStatistics()
Reset statistics counters.
armem::CommitResult reloadPropertyDefinedCoreSegmentsFromLTM()
MemoryToIceAdapter(server::wm::Memory *workingMemory=nullptr, server::ltm::Memory *longtermMemory=nullptr)
Construct an MemoryToIceAdapter from an existing Memory.
server::ltm::Memory * longtermMemory
data::AddSegmentResult addSegment(const data::AddSegmentInput &input, bool addCoreSegments=false)
dto::RecordStatusResult getRecordStatus()
data::CommitResult commitLocking(const data::Commit &commitIce, Time timeArrived)
prediction::data::EngineSupportMap getAvailableEngines()
data::AddSegmentsResult addSegments(const data::AddSegmentsInput &input, bool addCoreSegments=false)
data::CommitResult commit(const data::Commit &commitIce, Time timeArrived)
A memory storing data on the hard drive and in mongodb (needs 'armarx memory start' to start the mong...
armarx::core::time::DateTime Time
A bundle of updates to be sent to the memory.
Statistics for memory read/write operations.
std::atomic< uint64_t > totalEntityUpdates
std::atomic< double > totalCommitBlockingTimeMs
std::chrono::steady_clock::time_point lastRateCalculation
std::atomic< uint64_t > successfulUpdates
std::atomic< double > maxCommitBlockingTimeMs
std::atomic< double > totalQueryBlockingTimeMs
std::atomic< uint64_t > totalQueryCount
std::atomic< uint64_t > totalCommitCount
std::pair< double, double > updateRates()
Calculate and update the current rates.
std::atomic< uint64_t > failedUpdates
std::atomic< double > maxQueryBlockingTimeMs