0
message HealthOccurrenceCount 
{ 
    required int64 HealthID=1; 
    required int32 OccCount=2; 
    optional bytes wci=3; 
} 

Я хотел бы добавить данные на основе HealthID; Если HealthID уже введен, то вместо добавления новой записи программа должна вместо этого увеличивать существующую запись OccCount.Проверка и добавление данных в protobuff с использованием C++

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); 
+2

возможно дубликат [проверки PROTOBUFF Int64 aganist ранее введенных данных с ++] (http://stackoverflow.com/questions/32184021/protobuff-int64-check-aganist- ранее введенные данные,-с) – petersv

ответ

0
HealthOccurrenceCount objHelthOccCount; 
if(objHelthOccCount.has_healthid()) 
{ 
    occCount++; 
    objHelthOccCount.set_occcount(occCount); 
} 
else  
    occCount = 1; 
Смежные вопросы