61 armem::data::AddSegmentsResult
addSegments(
const armem::data::AddSegmentsInput& input,
62 const Ice::Current&)
override;
63 armem::data::CommitResult
commit(
const armem::data::Commit&
commit,
64 const Ice::Current& = Ice::emptyCurrent)
override;
67 armem::query::data::Result
query(
const armem::query::data::Input& input,
68 const Ice::Current& = Ice::emptyCurrent)
override;
78 armem::actions::GetActionsOutputSeq
79 getActions(
const armem::actions::GetActionsInputSeq& input)
override;
80 armem::actions::ExecuteActionOutputSeq
81 executeActions(
const armem::actions::ExecuteActionInputSeq& input)
override;
97 struct ClientStatistics
99 std::string connectionString;
100 std::string remoteAddress;
103 size_t commitCount = 0;
104 size_t queryCount = 0;
110 std::string extractClientIdentifier(
const Ice::Current& current)
const;
111 std::string formatClientIdentifier(
const std::string& connectionString)
const;
112 void parseConnectionInfo(
const std::string& connectionString, std::string& address,
int& port)
const;
113 int extractClientPid(
const Ice::Current& current)
const;
114 void recordCommit(
const Ice::Current& current);
115 void recordQuery(
const Ice::Current& current);
116 void logClientStatistics()
const;
118 void updateClientStatisticsLabels();
119 void updateClientStatisticsLabelsInternal();
121 mutable std::mutex clientStatsMutex;
122 mutable std::map<std::string, ClientStatistics> clientStats;
138 bool enableRemoteGui =
false;
139 bool showMemoryContent =
true;
140 bool showClientStats =
true;
141 bool publishToDebugObserver =
false;
147 std::map<std::string, int> clientIndices;
148 int nextClientIndex = 1;
149 int getClientIndex(
const std::string& clientId);
153 std::atomic_bool rebuild =
false;
160 std::map<std::string, RemoteGui::Client::Label> clientLabels;
161 std::map<std::string, RemoteGui::Client::Label> connectionLabels;
164 int statsUpdateIntervalMs = 10000;