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

Task #1418: Last check in contained too much of the changes-under-work.

parent dea31934
No related branches found
No related tags found
No related merge requests found
...@@ -279,12 +279,12 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, GCFPortInterface ...@@ -279,12 +279,12 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, GCFPortInterface
case KVT_SEND_MSG_POOL: { case KVT_SEND_MSG_POOL: {
KVTSendMsgPoolEvent logEvent(event); KVTSendMsgPoolEvent logEvent(event);
if (logEvent.keys().size() != logEvent.nrElements || if (logEvent.keys.size() != logEvent.nrElements ||
logEvent.values().size() != logEvent.nrElements || logEvent.values.size() != logEvent.nrElements ||
logEvent.times().size() != logEvent.nrElements) { logEvent.times.size() != logEvent.nrElements) {
LOG_ERROR(formatString("Received kvt pool from %s (seqnr=%d) with unequal vectorsizes (n=%d, k=%d, v=%d, t=%d)", LOG_ERROR(formatString("Received kvt pool from %s (seqnr=%d) with unequal vectorsizes (n=%d, k=%d, v=%d, t=%d)",
itsClients[&port].name.c_str(), logEvent.seqnr, logEvent.nrElements, itsClients[&port].name.c_str(), logEvent.seqnr, logEvent.nrElements,
logEvent.keys().size(), logEvent.values().size(), logEvent.times().size())); logEvent.keys.size(), logEvent.values.size(), logEvent.times.size()));
if (logEvent.seqnr > 0) { if (logEvent.seqnr > 0) {
KVTSendMsgPoolAckEvent answer; KVTSendMsgPoolAckEvent answer;
answer.seqnr = logEvent.seqnr; answer.seqnr = logEvent.seqnr;
...@@ -296,7 +296,7 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, GCFPortInterface ...@@ -296,7 +296,7 @@ GCFEvent::TResult KeyValueLogger::operational(GCFEvent& event, GCFPortInterface
bool sendOk(true); bool sendOk(true);
for (uint32 i = 0; i < logEvent.nrElements; i++) { for (uint32 i = 0; i < logEvent.nrElements; i++) {
sendOk &= itsKVTgate->addKVT(logEvent.keys()[i], logEvent.values()[i], from_ustime_t(logEvent.times()[i])); sendOk &= itsKVTgate->addKVT(logEvent.keys[i], logEvent.values[i], from_ustime_t(logEvent.times[i]));
} }
itsClients[&port].msgCnt += logEvent.nrElements; itsClients[&port].msgCnt += logEvent.nrElements;
if (logEvent.seqnr > 0) { if (logEvent.seqnr > 0) {
......
[+ AutoGen5 template ph cc +] [+ AutoGen5 template ph cc +]
[+ # manual at: http://www.gnu.org/software/autogen/manual/html_node/Function-Index.html#Function-Index +]
// //
[+ (dne "// ") +][+ (out-push-add "/dev/null") +] [+ (dne "// ") +][+ (out-push-add "/dev/null") +]
[+ DEFINE prefix_cap +][+ IF (exist? "prefix") +][+ (get "prefix") +][+ ENDIF +][+ ENDDEF +] [+ DEFINE prefix_cap +][+ IF (exist? "prefix") +][+ (get "prefix") +][+ ENDIF +][+ ENDDEF +]
...@@ -10,6 +11,7 @@ ...@@ -10,6 +11,7 @@
[+ DEFINE event_class_name +][+ prefix_cap +][+ cap_signal +]Event[+ ENDDEF +] [+ DEFINE event_class_name +][+ prefix_cap +][+ cap_signal +]Event[+ ENDDEF +]
[+ DEFINE event_class_decl +][+ event_class_name +] : public MACIO::GCFEvent[+ ENDDEF +] [+ DEFINE event_class_decl +][+ event_class_name +] : public MACIO::GCFEvent[+ ENDDEF +]
[+ DEFINE protocol_name +][+ (string-upcase (base-name)) +][+ ENDDEF +] [+ DEFINE protocol_name +][+ (string-upcase (base-name)) +][+ ENDDEF +]
[+ DEFINE project +][+ IF (exist? "project") +][+ (get "project") +][+ ELSE +]LOFAR[+ ENDIF +][+ ENDDEF +]
[+ DEFINE event_class_member_type +][+ IF (*== (get "type") "]") +][+ (substring (get "type") 0 (string-index (get "type") #\[)) +][+ ELSE +][+ (get "type") +][+ ENDIF +][+ ENDDEF +] [+ DEFINE event_class_member_type +][+ IF (*== (get "type") "]") +][+ (substring (get "type") 0 (string-index (get "type") #\[)) +][+ ELSE +][+ (get "type") +][+ ENDIF +][+ ENDDEF +]
[+ DEFINE event_class_member +][+ event_class_member_type +][+ IF (*== (get "type") "[]") +]*[+ ENDIF +] [+ (get "name") +][+ IF (and (*== (get "type") "]") (not (*== (get "type") "[]"))) +][+ (substring (get "type") (string-index (get "type") #\[) (string-length (get "type"))) +][+ ENDIF +][+ ENDDEF +] [+ DEFINE event_class_member +][+ event_class_member_type +][+ IF (*== (get "type") "[]") +]*[+ ENDIF +] [+ (get "name") +][+ IF (and (*== (get "type") "]") (not (*== (get "type") "[]"))) +][+ (substring (get "type") (string-index (get "type") #\[) (string-length (get "type"))) +][+ ENDIF +][+ ENDDEF +]
...@@ -17,7 +19,7 @@ ...@@ -17,7 +19,7 @@
// //
// [+ (base-name) +].[+ (suffix) +]: [+ description +] // [+ (base-name) +].[+ (suffix) +]: [+ description +]
// //
// Copyright (C) 2003-2009 // Copyright (C) 2003-2012
// ASTRON (Netherlands Foundation for Research in Astronomy) // ASTRON (Netherlands Foundation for Research in Astronomy)
// P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl // P.O.Box 2, 7990 AA Dwingeloo, The Netherlands, seg@astron.nl
// //
...@@ -37,9 +39,14 @@ ...@@ -37,9 +39,14 @@
#include "[+ (base-name) +].ph" #include "[+ (base-name) +].ph"
using namespace LOFAR::MACIO; using namespace LOFAR::MACIO;
[+ IF (exist? "project") +]using namespace LOFAR;[+ ENDIF +]
using namespace std; using namespace std;
const char* LOFAR::[+ (base-name) +]::[+ protocol_name +]_signalnames[] = [+ FOR Cfunction "" +][+ (get "result")+] [+ project +]::[+ (base-name) +]::[+ (get "name") +] {
[+ (get "code") +]
}[+ ENDFOR +]
const char* [+ project +]::[+ (base-name) +]::[+ protocol_name +]_signalnames[] =
{ {
"[+ protocol_name +]: invalid signal",[+ FOR event "," +] "[+ protocol_name +]: invalid signal",[+ FOR event "," +]
"[+ signal_name +]"[+ ENDFOR +] "[+ signal_name +]"[+ ENDFOR +]
...@@ -50,9 +57,9 @@ const char* [+ protocol_name +]_errornames[] = ...@@ -50,9 +57,9 @@ const char* [+ protocol_name +]_errornames[] =
"[+ (get "msg") +]"[+ ENDFOR error +] "[+ (get "msg") +]"[+ ENDFOR error +]
}; };
const struct protocolStrings LOFAR::[+ (base-name) +]::[+ protocol-name +]_STRINGS = { const struct protocolStrings [+ project +]::[+ (base-name) +]::[+ protocol-name +]_STRINGS = {
[+ (count "event") +]+1, [+ (count "error") +], [+ (count "event") +]+1, [+ (count "error") +],
LOFAR::[+ (base-name) +]::[+ protocol_name +]_signalnames, [+ project +]::[+ (base-name) +]::[+ protocol_name +]_signalnames,
[+ protocol_name +]_errornames [+ protocol_name +]_errornames
}; };
[+ ELSE +] [+ ELSE +]
...@@ -67,13 +74,16 @@ const struct protocolStrings LOFAR::[+ (base-name) +]::[+ protocol-name +]_STRI ...@@ -67,13 +74,16 @@ const struct protocolStrings LOFAR::[+ (base-name) +]::[+ protocol-name +]_STRI
#include <string> #include <string>
#include <cstring> #include <cstring>
namespace LOFAR namespace [+ project +]
{ {
namespace [+ (base-name) +] namespace [+ (base-name) +]
{ {
[+ (get "prelude") +] [+ (get "prelude") +]
[+ FOR Cfunction "" +][+ (get "result")+] [+ (get "name") +];
[+ ENDFOR +]
// //
// Define protocol ID // Define protocol ID
// //
...@@ -161,9 +171,8 @@ void [+ event_class_name +]::pack() ...@@ -161,9 +171,8 @@ void [+ event_class_name +]::pack()
[+ ENDFOR +] [+ ENDFOR +]
uint32 __requiredSize = [+ IF (not (exist? "noheader")) +]sizePackedGCFEvent[+ ELSE +]0[+ ENDIF +][+ FOR param "" +] uint32 __requiredSize = [+ IF (not (exist? "noheader")) +]sizePackedGCFEvent[+ ELSE +]0[+ ENDIF +][+ FOR param "" +]
[+ IF (exist? "userdefined") +]+ [+ (get "name") +][+ IF (*== (get "type") "*") +]->[+ ELSE +].[+ ENDIF +]getSize() [+ IF (exist? "userdefined") +]+ [+ (get "name") +][+ IF (*== (get "type") "*") +]->[+ ELSE +].[+ ENDIF +]getSize()
[+ ELIF (not (*== (get "type") "]")) +]+ [+ IF (== (get "type") "string") +][+ (get "name") +].length() + sizeof(uint16)[+ ELSE +]sizeof([+ (get "name") +])[+ ENDIF+]
[+ ELIF (*== (get "type") "[]") +]+ sizeof([+ (get "name") +]NOE) + ([+ (get "name") +]NOE * sizeof([+ event_class_member_type +])) [+ ELIF (*== (get "type") "[]") +]+ sizeof([+ (get "name") +]NOE) + ([+ (get "name") +]NOE * sizeof([+ event_class_member_type +]))
[+ ELSE +]+ sizeof([+ (get "name") +])[+ ENDIF +][+ ENDFOR +]; [+ ELSE +]+ MSH_size([+ (get "name") +])[+ ENDIF +][+ ENDFOR +];
resizeBuf(__requiredSize); resizeBuf(__requiredSize);
uint32 __offset = 0; uint32 __offset = 0;
...@@ -173,31 +182,22 @@ void [+ event_class_name +]::pack() ...@@ -173,31 +182,22 @@ void [+ event_class_name +]::pack()
[+ FOR param "" +] [+ FOR param "" +]
[+ IF (exist? "userdefined") +] [+ IF (exist? "userdefined") +]
__offset += [+ (get "name") +][+ IF (*== (get "type") "*") +]->[+ ELSE +].[+ ENDIF +]pack(_buffer + __offset); __offset += [+ (get "name") +][+ IF (*== (get "type") "*") +]->[+ ELSE +].[+ ENDIF +]pack(_buffer + __offset);
[+ ELIF (not (*== (get "type") "]")) +]
[+ IF (== (get "type") "string") +]
__offset += packString(_buffer + __offset, [+ (get "name") +]);
[+ ELSE +]
memcpy(_buffer + __offset, &[+ (get "name") +], sizeof([+ (get "type") +]));
__offset += sizeof([+ (get "type") +]);
[+ ENDIF +]
[+ ELIF (*== (get "type") "[]") +] [+ ELIF (*== (get "type") "[]") +]
__offset += packMember(__offset, [+ (get "name") +], [+ (get "name") +]NOE, sizeof([+ event_class_member_type +])); __offset += packMember(__offset, [+ (get "name") +], [+ (get "name") +]NOE, sizeof([+ event_class_member_type +]));
[+ ELSE +] [+ ELSE +]
memcpy(_buffer + __offset, [+ (get "name") +], sizeof([+ (get "name") +])); MSH_pack(_buffer, __offset, [+ (get "name") +]);
__offset += sizeof([+ (get "name") +]);
[+ ENDIF +][+ ENDFOR +] [+ ENDIF +][+ ENDFOR +]
[+ IF (= (count "param") 0) +] [+ IF (= (count "param") 0) +]
// no params in this event to pack // no params in this event to pack
(void)__offset;
[+ ENDIF +] [+ ENDIF +]
} }
void [+ event_class_name +]::unpack() void [+ event_class_name +]::unpack()
{ {
if (length == 0) if (!length) {
return; return;
}
[+ IF (> (count "param") 0) +] [+ IF (> (count "param") 0) +]
uint32 __offset = sizePackedGCFEvent; uint32 __offset = sizePackedGCFEvent;
[+ ELSE +] [+ ELSE +]
// no params in this event to unpack // no params in this event to unpack
...@@ -208,21 +208,13 @@ void [+ event_class_name +]::unpack() ...@@ -208,21 +208,13 @@ void [+ event_class_name +]::unpack()
[+ (get "name") +] = new [+ (substring (get "type") 0 (string-index (get "type") #\*)) +](); [+ (get "name") +] = new [+ (substring (get "type") 0 (string-index (get "type") #\*)) +]();
[+ ENDIF +] [+ ENDIF +]
__offset += [+ (get "name") +][+ IF (*== (get "type") "*") +]->[+ ELSE +].[+ ENDIF +]unpack(_buffer + __offset); __offset += [+ (get "name") +][+ IF (*== (get "type") "*") +]->[+ ELSE +].[+ ENDIF +]unpack(_buffer + __offset);
[+ ELIF (not (*== (get "type") "]")) +]
[+ IF (== (get "type") "string") +]
__offset += GCFEvent::unpackString([+ (get "name") +], _buffer + __offset);
[+ ELSE +]
memcpy(&[+ (get "name") +], _buffer + __offset, sizeof([+ (get "type") +]));
__offset += sizeof([+ (get "type") +]);
[+ ENDIF +]
[+ ELIF (*== (get "type") "[]") +] [+ ELIF (*== (get "type") "[]") +]
[+ (get "name") +] = ([+ event_class_member_type +]*) unpackMember(_buffer, __offset, [+ (get "name") +]NOE, sizeof([+ event_class_member_type +])); [+ (get "name") +] = ([+ event_class_member_type +]*) unpackMember(_buffer, __offset, [+ (get "name") +]NOE, sizeof([+ event_class_member_type +]));
[+ ELSE +] [+ ELSE +]
memcpy([+ (get "name") +], (_buffer + __offset), sizeof([+ (get "name") +])); MSH_unpack(_buffer, __offset, [+ (get "name") +]);
__offset += sizeof([+ (get "name") +]);
[+ ENDIF +][+ ENDFOR +] [+ ENDIF +][+ ENDFOR +]
_buffer = 0; _buffer = 0;
length = 0; __offset = 0;
} }
[+ event_class_name +]* [+ event_class_name +]::clone() [+ event_class_name +]* [+ event_class_name +]::clone()
...@@ -236,6 +228,7 @@ void [+ event_class_name +]::unpack() ...@@ -236,6 +228,7 @@ void [+ event_class_name +]::unpack()
ostream& [+ event_class_name +]::print(ostream& os) const ostream& [+ event_class_name +]::print(ostream& os) const
{ {
using LOFAR::operator<<;
// Note: 'userdefined' classes are only printed if they are 'printable' // Note: 'userdefined' classes are only printed if they are 'printable'
// base classes are printed except when they are 'nonprintable' // base classes are printed except when they are 'nonprintable'
MACIO::GCFEvent::print(os); MACIO::GCFEvent::print(os);
...@@ -252,9 +245,9 @@ ostream& [+ event_class_name +]::print(ostream& os) const ...@@ -252,9 +245,9 @@ ostream& [+ event_class_name +]::print(ostream& os) const
[+ IF (= (suffix) "ph") +] [+ IF (= (suffix) "ph") +]
} // namespace [+ (base-name) +] } // namespace [+ (base-name) +]
} // namespace LOFAR } // namespace [+ project +]
using namespace LOFAR::[+ (base-name) +]; using namespace [+ project +]::[+ (base-name) +];
#endif #endif
[+ ENDIF +] [+ ENDIF +]
...@@ -27,8 +27,6 @@ prefix = "KVT"; // for the signal names ...@@ -27,8 +27,6 @@ prefix = "KVT"; // for the signal names
id = "(LOFAR::MACIO::F_GCF_PROTOCOL + 1)"; id = "(LOFAR::MACIO::F_GCF_PROTOCOL + 1)";
// specify extra include files // specify extra include files
include = '<MACIO/StringVector.h>';
include = '<MACIO/DoubleVector.h>';
prelude = << PRELUDE_END prelude = << PRELUDE_END
...@@ -36,7 +34,7 @@ prelude = << PRELUDE_END ...@@ -36,7 +34,7 @@ prelude = << PRELUDE_END
// REGISTER_ACK (uint obsID, string name); // REGISTER_ACK (uint obsID, string name);
// SEND_MSG (int seqnr, string key, string value, double secsEpoch1970); // SEND_MSG (int seqnr, string key, string value, double secsEpoch1970);
// SEND_MSG_ACK (int seqnr, uint result); // SEND_MSG_ACK (int seqnr, uint result);
// SEND_MSG_POOL (int seqnr, uint nrMsgs, strVector key, strVector value, dblVector time); // SEND_MSG_POOL (int seqnr, uint nrMsgs, vector<string> key, vector<string> value, vector<double> time);
// SEND_MSG_POOL_ACK(int seqnr, uint result); // SEND_MSG_POOL_ACK(int seqnr, uint result);
using LOFAR::operator<<; using LOFAR::operator<<;
......
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