Feature (contd.): Variable Fields - renamed variable_fields as singular; this makes it consistent with other repeated variables in protocol.proto and in any case the C++/Python generated code "sounds" better with a repeated field named in its singular form, rather than plural

This commit is contained in:
Srivats P. 2015-05-31 20:14:32 +05:30
parent 641a4f3c89
commit 6bb64a3b26
3 changed files with 43 additions and 43 deletions

View File

@ -123,13 +123,13 @@ quint32 AbstractProtocol::protocolNumber() const
*/ */
void AbstractProtocol::commonProtoDataCopyInto(OstProto::Protocol &protocol) const void AbstractProtocol::commonProtoDataCopyInto(OstProto::Protocol &protocol) const
{ {
protocol.clear_variable_fields(); protocol.clear_variable_field();
for (int i = 0; i < _data.variable_fields_size(); i++) for (int i = 0; i < _data.variable_field_size(); i++)
{ {
OstProto::VariableField *vf; OstProto::VariableField *vf;
vf = protocol.add_variable_fields(); vf = protocol.add_variable_field();
vf->CopyFrom(_data.variable_fields(i)); vf->CopyFrom(_data.variable_field(i));
} }
} }
@ -141,13 +141,13 @@ void AbstractProtocol::commonProtoDataCopyInto(OstProto::Protocol &protocol) con
*/ */
void AbstractProtocol::commonProtoDataCopyFrom(const OstProto::Protocol &protocol) void AbstractProtocol::commonProtoDataCopyFrom(const OstProto::Protocol &protocol)
{ {
_data.clear_variable_fields(); _data.clear_variable_field();
for (int i = 0; i < protocol.variable_fields_size(); i++) for (int i = 0; i < protocol.variable_field_size(); i++)
{ {
OstProto::VariableField *vf; OstProto::VariableField *vf;
vf = _data.add_variable_fields(); vf = _data.add_variable_field();
vf->CopyFrom(protocol.variable_fields(i)); vf->CopyFrom(protocol.variable_field(i));
} }
} }
@ -390,7 +390,7 @@ _exit:
*/ */
int AbstractProtocol::variableFieldCount() const int AbstractProtocol::variableFieldCount() const
{ {
return _data.variable_fields_size(); return _data.variable_field_size();
} }
/*! /*!
@ -398,7 +398,7 @@ int AbstractProtocol::variableFieldCount() const
*/ */
void AbstractProtocol::appendVariableField(const OstProto::VariableField &vf) void AbstractProtocol::appendVariableField(const OstProto::VariableField &vf)
{ {
_data.add_variable_fields()->CopyFrom(vf); _data.add_variable_field()->CopyFrom(vf);
// Update the cached value // Update the cached value
_frameVariableCount = lcm(_frameVariableCount, vf.count()); _frameVariableCount = lcm(_frameVariableCount, vf.count());
@ -411,27 +411,27 @@ void AbstractProtocol::removeVariableField(int index)
{ {
OstProto::Protocol temp; OstProto::Protocol temp;
if (index >= _data.variable_fields_size()) { if (index >= _data.variable_field_size()) {
qWarning("%s: %s variableField[%d] out of range; count: %d)", qWarning("%s: %s variableField[%d] out of range; count: %d)",
__FUNCTION__, qPrintable(shortName()), __FUNCTION__, qPrintable(shortName()),
index, _data.variable_fields_size()); index, _data.variable_field_size());
return; return;
} }
// TODO: this is inefficient - evaluate using RepeatedPtrField? // TODO: this is inefficient - evaluate using RepeatedPtrField?
for (int i = 0; i < _data.variable_fields_size(); i++) { for (int i = 0; i < _data.variable_field_size(); i++) {
if (i == index) if (i == index)
continue; continue;
temp.add_variable_fields()->CopyFrom(_data.variable_fields(i)); temp.add_variable_field()->CopyFrom(_data.variable_field(i));
} }
_data.clear_variable_fields(); _data.clear_variable_field();
_frameVariableCount = 1; _frameVariableCount = 1;
for (int i = 0; i < temp.variable_fields_size(); i++) { for (int i = 0; i < temp.variable_field_size(); i++) {
_data.add_variable_fields()->CopyFrom(temp.variable_fields(i)); _data.add_variable_field()->CopyFrom(temp.variable_field(i));
// Recalculate the cached value // Recalculate the cached value
_frameVariableCount = lcm(_frameVariableCount, _frameVariableCount = lcm(_frameVariableCount,
_data.variable_fields(i).count()); _data.variable_field(i).count());
} }
} }
@ -441,9 +441,9 @@ void AbstractProtocol::removeVariableField(int index)
*/ */
const OstProto::VariableField& AbstractProtocol::variableField(int index) const const OstProto::VariableField& AbstractProtocol::variableField(int index) const
{ {
Q_ASSERT(index < _data.variable_fields_size()); Q_ASSERT(index < _data.variable_field_size());
return _data.variable_fields(index); return _data.variable_field(index);
} }
/*! /*!
@ -452,13 +452,13 @@ const OstProto::VariableField& AbstractProtocol::variableField(int index) const
*/ */
OstProto::VariableField* AbstractProtocol::mutableVariableField(int index) OstProto::VariableField* AbstractProtocol::mutableVariableField(int index)
{ {
if ((index < 0) || (index >= _data.variable_fields_size())) if ((index < 0) || (index >= _data.variable_field_size()))
return NULL; return NULL;
// Invalidate the cached value as the caller may potentially modify it // Invalidate the cached value as the caller may potentially modify it
_frameVariableCount = -1; _frameVariableCount = -1;
return _data.mutable_variable_fields(index); return _data.mutable_variable_field(index);
} }
/*! /*!
@ -688,9 +688,9 @@ QByteArray AbstractProtocol::protocolFrameValue(int streamIndex, bool forCksum)
} }
// Overwrite proto with the variable fields, if any // Overwrite proto with the variable fields, if any
for (int i = 0; i < _data.variable_fields_size(); i++) for (int i = 0; i < _data.variable_field_size(); i++)
{ {
OstProto::VariableField vf = _data.variable_fields(i); OstProto::VariableField vf = _data.variable_field(i);
varyProtocolFrameValue(proto, streamIndex, vf); varyProtocolFrameValue(proto, streamIndex, vf);
} }
@ -739,9 +739,9 @@ int AbstractProtocol::protocolFrameVariableCount() const
return _frameVariableCount; return _frameVariableCount;
_frameVariableCount = 1; _frameVariableCount = 1;
for (int i = 0; i < _data.variable_fields_size(); i++) for (int i = 0; i < _data.variable_field_size(); i++)
_frameVariableCount = lcm(_frameVariableCount, _frameVariableCount = lcm(_frameVariableCount,
_data.variable_fields(i).count()); _data.variable_field(i).count());
return _frameVariableCount; return _frameVariableCount;
} }

View File

@ -117,7 +117,7 @@ message VariableField {
message Protocol { message Protocol {
required ProtocolId protocol_id = 1; required ProtocolId protocol_id = 1;
repeated VariableField variable_fields = 2; repeated VariableField variable_field = 2;
extensions 100 to 199; // Reserved for Ostinato Use extensions 100 to 199; // Reserved for Ostinato Use
extensions 200 to 500; // Available for use by protocols extensions 200 to 500; // Available for use by protocols

View File

@ -137,7 +137,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kIp6FieldNumber p.protocol_id.id = ost_pb.Protocol.kIp6FieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter8 vf.type = ost_pb.VariableField.kCounter8
vf.offset = 7 vf.offset = 7
vf.mask = 0xff vf.mask = 0xff
@ -203,7 +203,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kVlanFieldNumber p.protocol_id.id = ost_pb.Protocol.kVlanFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter8 vf.type = ost_pb.VariableField.kCounter8
vf.offset = 2 vf.offset = 2
vf.mask = 0xe0 vf.mask = 0xe0
@ -270,7 +270,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kVlanFieldNumber p.protocol_id.id = ost_pb.Protocol.kVlanFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 2 vf.offset = 2
vf.mask = 0x0fff vf.mask = 0x0fff
@ -342,7 +342,7 @@ try:
p.Extensions[arp].sender_hw_addr = 0x001122334455 p.Extensions[arp].sender_hw_addr = 0x001122334455
p.Extensions[arp].sender_proto_addr = 0x01020304 p.Extensions[arp].sender_proto_addr = 0x01020304
p.Extensions[arp].target_proto_addr = 0x0a0b0c01 p.Extensions[arp].target_proto_addr = 0x0a0b0c01
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter32 vf.type = ost_pb.VariableField.kCounter32
vf.offset = 24 vf.offset = 24
vf.mask = 0x0000ff00 vf.mask = 0x0000ff00
@ -411,7 +411,7 @@ try:
p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber
p.Extensions[ip4].src_ip = 0x01020304 p.Extensions[ip4].src_ip = 0x01020304
p.Extensions[ip4].dst_ip = 0x05060708 p.Extensions[ip4].dst_ip = 0x05060708
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter8 vf.type = ost_pb.VariableField.kCounter8
vf.offset = 8 vf.offset = 8
#vf.mask = 0xFF #vf.mask = 0xFF
@ -480,7 +480,7 @@ try:
p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber
p.Extensions[ip4].src_ip = 0x01020304 p.Extensions[ip4].src_ip = 0x01020304
p.Extensions[ip4].dst_ip = 0x05060708 p.Extensions[ip4].dst_ip = 0x05060708
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 6 vf.offset = 6
vf.mask = 0x1FFF vf.mask = 0x1FFF
@ -549,7 +549,7 @@ try:
p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber
p.Extensions[ip4].src_ip = 0x01020304 p.Extensions[ip4].src_ip = 0x01020304
p.Extensions[ip4].dst_ip = 0x05060708 p.Extensions[ip4].dst_ip = 0x05060708
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter32 vf.type = ost_pb.VariableField.kCounter32
vf.offset = 16 vf.offset = 16
vf.mask = 0x00FF0000 vf.mask = 0x00FF0000
@ -630,7 +630,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kPayloadFieldNumber p.protocol_id.id = ost_pb.Protocol.kPayloadFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter32 vf.type = ost_pb.VariableField.kCounter32
vf.offset = 0 vf.offset = 0
vf.mode = ost_pb.VariableField.kIncrement vf.mode = ost_pb.VariableField.kIncrement
@ -700,7 +700,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kTcpFieldNumber p.protocol_id.id = ost_pb.Protocol.kTcpFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter32 vf.type = ost_pb.VariableField.kCounter32
vf.offset = 4 vf.offset = 4
vf.value = 1000 vf.value = 1000
@ -773,7 +773,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kIcmpFieldNumber p.protocol_id.id = ost_pb.Protocol.kIcmpFieldNumber
p.Extensions[icmp].identifier = 0xabcd p.Extensions[icmp].identifier = 0xabcd
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 6 vf.offset = 6
vf.value = 1 vf.value = 1
@ -847,14 +847,14 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kUdpFieldNumber p.protocol_id.id = ost_pb.Protocol.kUdpFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 0 vf.offset = 0
vf.value = 5000 vf.value = 5000
vf.mode = ost_pb.VariableField.kIncrement vf.mode = ost_pb.VariableField.kIncrement
vf.count = 10 vf.count = 10
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 2 vf.offset = 2
vf.value = 6000 vf.value = 6000
@ -925,7 +925,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kVlanFieldNumber p.protocol_id.id = ost_pb.Protocol.kVlanFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 2 vf.offset = 2
vf.value = 3 vf.value = 3
@ -939,7 +939,7 @@ try:
p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber
p.Extensions[ip4].src_ip = 0x01020304 p.Extensions[ip4].src_ip = 0x01020304
p.Extensions[ip4].dst_ip = 0x05060708 p.Extensions[ip4].dst_ip = 0x05060708
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter32 vf.type = ost_pb.VariableField.kCounter32
vf.offset = 12 vf.offset = 12
vf.mask = 0x0000ff00 vf.mask = 0x0000ff00
@ -950,7 +950,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kTcpFieldNumber p.protocol_id.id = ost_pb.Protocol.kTcpFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter16 vf.type = ost_pb.VariableField.kCounter16
vf.offset = 2 vf.offset = 2
vf.value = 6666 vf.value = 6666
@ -959,7 +959,7 @@ try:
p = s.protocol.add() p = s.protocol.add()
p.protocol_id.id = ost_pb.Protocol.kPayloadFieldNumber p.protocol_id.id = ost_pb.Protocol.kPayloadFieldNumber
vf = p.variable_fields.add() vf = p.variable_field.add()
vf.type = ost_pb.VariableField.kCounter8 vf.type = ost_pb.VariableField.kCounter8
vf.offset = 0 vf.offset = 0
vf.mode = ost_pb.VariableField.kIncrement vf.mode = ost_pb.VariableField.kIncrement