11754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato/* 21754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Copyright (C) 2016 The Android Open Source Project 31754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 41754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 51754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * you may not use this file except in compliance with the License. 61754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * You may obtain a copy of the License at 71754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 81754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * http://www.apache.org/licenses/LICENSE-2.0 91754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 101754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Unless required by applicable law or agreed to in writing, software 111754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 121754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * See the License for the specific language governing permissions and 141754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * limitations under the License. 151754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato */ 161754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 171754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 187669012623a18855913c84ec0690066fbfd823eaJoe Onorato#include <frameworks/base/core/proto/android/os/incident.pb.h> 191754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 201754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 211754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <map> 221754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 231754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratousing namespace android::os; 241754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratousing namespace google::protobuf; 251754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratousing namespace google::protobuf::io; 261754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratousing namespace google::protobuf::internal; 271754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratousing namespace std; 281754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 291754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratoint 301754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratomain(int, const char**) 311754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato{ 321754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato map<string,FieldDescriptor const*> sections; 331754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato int N; 341754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 351754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("// Auto generated file. Do not modify\n"); 361754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("\n"); 371754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("#include \"incident_sections.h\"\n"); 381754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("\n"); 391754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 401754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato Descriptor const* descriptor = IncidentProto::descriptor(); 411754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato N = descriptor->field_count(); 421754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato for (int i=0; i<N; i++) { 431754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato const FieldDescriptor* field = descriptor->field(i); 441754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato if (field->type() == FieldDescriptor::TYPE_MESSAGE) { 451754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato sections[field->name()] = field; 461754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato } 471754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato } 481754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 491754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("IncidentSection const INCIDENT_SECTIONS[] = {\n"); 501754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato N = sections.size(); 511754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato int i = 0; 521754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato for (map<string,FieldDescriptor const*>::const_iterator it = sections.begin(); 531754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato it != sections.end(); it++, i++) { 541754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato const FieldDescriptor* field = it->second; 551754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf(" { %d, \"%s\" }", field->number(), field->name().c_str()); 561754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato if (i != N-1) { 571754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf(",\n"); 581754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato } else { 591754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("\n"); 601754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato } 611754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato } 621754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("};\n"); 631754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 641754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato printf("const int INCIDENT_SECTION_COUNT = %d;\n", N); 651754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 661754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato return 0; 671754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato} 68