message HealthOccurrenceCount
{
required int64 HealthID=1;
required int32 OccCount=2;
optional bytes wci=3;
}
Я хотел бы добавить данные на основе HealthID
; Если HealthID
затем, вместо добавления новой записи, программа должна просто увеличить существующую запись OccCount
,
HealthOccurrenceCount objHelthOccCount;
if(objHelthOccCount.healthid() == healthID) // Is this right or do I need to iterate all the nodes?
{
occCount++;
objHelthOccCount.set_occcount(occCount);
}
else
occCount = 1;
Этот код правильный или я должен конвертировать HealthID
в строку?
Сгенерированный код:
// required int64 HealthID = 1;
inline bool has_healthid() const;
inline void clear_healthid();
static const int kHealthIDFieldNumber = 1;
inline ::google::protobuf::int64 healthid() const;
inline void set_healthid(::google::protobuf::int64 value);
Согласно доктор для каждого единственного (обязательного или необязательного) поля есть методы has_, которые возвращают true, если это поле было установлено.
Ваш код будет выглядеть примерно так:
HealthOccurrenceCount objHelthOccCount;
if(objHelthOccCount.has_healthid())
{
occCount++;
objHelthOccCount.set_occcount(occCount);
}
else
occCount = 1;