Skip to content
Snippets Groups Projects
Commit 0ffa0825 authored by Ruud Overeem's avatar Ruud Overeem
Browse files

Bug 1014: Implemented and tested message-pools.

parent ec2f4bc6
No related branches found
No related tags found
No related merge requests found
...@@ -207,8 +207,22 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, ...@@ -207,8 +207,22 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event,
answer.result = PVSS::SA_NO_ERROR; answer.result = PVSS::SA_NO_ERROR;
int32 timeStamp = ACC::APS::indexValue(logEvent.key, "{}"); int32 timeStamp = ACC::APS::indexValue(logEvent.key, "{}");
rtrim (logEvent.key, "{}01234565789"); // cut off timestamp rtrim (logEvent.key, "{}01234565789"); // cut off timestamp
replace(logEvent.key.begin(), logEvent.key.end(), '.', '_'); // replace all but last . with underscore.
string::reverse_iterator riter = logEvent.key.rbegin();
string::reverse_iterator rend = logEvent.key.rend();
bool lastDot(true);
while (riter != rend) {
if (*riter == '.') {
if (lastDot) {
lastDot = false;
}
else {
*riter = '_';
}
}
riter++;
}
PVSSresult result = itsDPservice->setValue(logEvent.key, PVSSresult result = itsDPservice->setValue(logEvent.key,
GCFPVString(logEvent.value), GCFPVString(logEvent.value),
1.0 * timeStamp); 1.0 * timeStamp);
...@@ -234,9 +248,28 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, ...@@ -234,9 +248,28 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event,
answer.seqnr = logEvent.seqnr; answer.seqnr = logEvent.seqnr;
answer.result = PVSS::SA_NO_ERROR; answer.result = PVSS::SA_NO_ERROR;
for (uint32 i = 0; i < logEvent.msgCount; i++) { for (uint32 i = 0; i < logEvent.msgCount; i++) {
PVSSresult result; int32 timeStamp = ACC::APS::indexValue(logEvent.keys.theVector[i], "{}");
// = itsDPservice->setValue(logEvent.keys.theVector[i], rtrim (logEvent.keys.theVector[i], "{}01234565789"); // cut off timestamp
// GCFPVString(logEvent.values.theVector[i])); // replace all but last . with underscore.
string::reverse_iterator riter = logEvent.keys.theVector[i].rbegin();
string::reverse_iterator rend = logEvent.keys.theVector[i].rend();
bool lastDot(true);
while (riter != rend) {
if (*riter == '.') {
if (lastDot) {
lastDot = false;
}
else {
*riter = '_';
}
}
riter++;
}
PVSSresult result = itsDPservice->setValue(logEvent.keys.theVector[i],
GCFPVString(logEvent.values.theVector[i]),
1.0 * timeStamp);
itsClients[&port].msgCnt++;
switch (result) { switch (result) {
case PVSS::SA_NO_ERROR: case PVSS::SA_NO_ERROR:
break; break;
...@@ -248,7 +281,7 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, ...@@ -248,7 +281,7 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event,
// _registerFailure(port); // _registerFailure(port);
answer.result |= result; answer.result |= result;
} // switch } // switch
} // for } // for all msgs in the pool
port.send(answer); port.send(answer);
} }
break; break;
......
...@@ -56,6 +56,29 @@ int main (int argc, char* argv[]) ...@@ -56,6 +56,29 @@ int main (int argc, char* argv[])
sleep(2); sleep(2);
// send a bunch of messages
for (int i = 0; i < 20; i++) {
msgEvent.seqnr = i;
msgEvent.value = toString(25+i);
thePort.send(&msgEvent);
KVTSendMsgAckEvent msgAck(thePort.receive());
}
sleep(2);
// now send the same bunch as to pools
KVTSendMsgPoolEvent poolEvent;
poolEvent.seqnr = 1;
poolEvent.msgCount = 20;
for (int i = 0; i < 20; i++) {
poolEvent.keys.theVector.push_back("LOFAR.ObsSW.ObsCtrl.OnlineCtrl.OLAP.InputAppl.packageLoss{1198368555}");
poolEvent.values.theVector.push_back(toString(50+i));
}
thePort.send(&poolEvent);
KVTSendMsgPoolAckEvent poolAck(thePort.receive());
sleep (2);
return (0); return (0);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment