OR-Tools  9.2
search_stats.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/constraint_solver/search_stats.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 
18 PROTOBUF_PRAGMA_INIT_SEG
19 namespace operations_research {
21  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
22  : strategy_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
23  , duration_seconds_(0){}
26  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
28  union {
30  };
31 };
34  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
35  : local_search_operator_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
36  , num_neighbors_(int64_t{0})
37  , num_filtered_neighbors_(int64_t{0})
38  , num_accepted_neighbors_(int64_t{0})
39  , duration_seconds_(0){}
42  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
44  union {
46  };
47 };
50  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
51  : local_search_filter_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
52  , num_calls_(int64_t{0})
53  , num_rejects_(int64_t{0})
54  , duration_seconds_(0){}
57  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
59  union {
61  };
62 };
65  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
66  : local_search_operator_statistics_()
67  , local_search_filter_statistics_()
68  , first_solution_statistics_()
69  , total_num_neighbors_(int64_t{0})
70  , total_num_filtered_neighbors_(int64_t{0})
71  , total_num_accepted_neighbors_(int64_t{0}){}
74  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
76  union {
78  };
79 };
82  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
83  : num_branches_(int64_t{0})
84  , num_failures_(int64_t{0})
85  , num_solutions_(int64_t{0})
86  , bytes_used_(int64_t{0})
87  , duration_seconds_(0){}
90  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
92  union {
94  };
95 };
98  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
99  : local_search_statistics_(nullptr)
100  , constraint_solver_statistics_(nullptr){}
103  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
105  union {
107  };
108 };
109 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SearchStatisticsDefaultTypeInternal _SearchStatistics_default_instance_;
110 } // namespace operations_research
112 static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto = nullptr;
113 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto = nullptr;
114 
116  ~0u, // no _has_bits_
117  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_FirstSolutionStatistics, _internal_metadata_),
118  ~0u, // no _extensions_
119  ~0u, // no _oneof_case_
120  ~0u, // no _weak_field_map_
121  ~0u, // no _inlined_string_donated_
122  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_FirstSolutionStatistics, strategy_),
123  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_FirstSolutionStatistics, duration_seconds_),
124  ~0u, // no _has_bits_
125  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics, _internal_metadata_),
126  ~0u, // no _extensions_
127  ~0u, // no _oneof_case_
128  ~0u, // no _weak_field_map_
129  ~0u, // no _inlined_string_donated_
130  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics, local_search_operator_),
131  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics, num_neighbors_),
132  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics, num_filtered_neighbors_),
133  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics, num_accepted_neighbors_),
134  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics, duration_seconds_),
135  ~0u, // no _has_bits_
136  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics, _internal_metadata_),
137  ~0u, // no _extensions_
138  ~0u, // no _oneof_case_
139  ~0u, // no _weak_field_map_
140  ~0u, // no _inlined_string_donated_
141  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics, local_search_filter_),
143  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics, num_rejects_),
144  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics, duration_seconds_),
145  ~0u, // no _has_bits_
146  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, _internal_metadata_),
147  ~0u, // no _extensions_
148  ~0u, // no _oneof_case_
149  ~0u, // no _weak_field_map_
150  ~0u, // no _inlined_string_donated_
151  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, first_solution_statistics_),
152  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, local_search_operator_statistics_),
153  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, local_search_filter_statistics_),
154  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, total_num_neighbors_),
155  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, total_num_filtered_neighbors_),
156  PROTOBUF_FIELD_OFFSET(::operations_research::LocalSearchStatistics, total_num_accepted_neighbors_),
157  ~0u, // no _has_bits_
158  PROTOBUF_FIELD_OFFSET(::operations_research::ConstraintSolverStatistics, _internal_metadata_),
159  ~0u, // no _extensions_
160  ~0u, // no _oneof_case_
161  ~0u, // no _weak_field_map_
162  ~0u, // no _inlined_string_donated_
163  PROTOBUF_FIELD_OFFSET(::operations_research::ConstraintSolverStatistics, num_branches_),
164  PROTOBUF_FIELD_OFFSET(::operations_research::ConstraintSolverStatistics, num_failures_),
165  PROTOBUF_FIELD_OFFSET(::operations_research::ConstraintSolverStatistics, num_solutions_),
166  PROTOBUF_FIELD_OFFSET(::operations_research::ConstraintSolverStatistics, bytes_used_),
167  PROTOBUF_FIELD_OFFSET(::operations_research::ConstraintSolverStatistics, duration_seconds_),
168  ~0u, // no _has_bits_
169  PROTOBUF_FIELD_OFFSET(::operations_research::SearchStatistics, _internal_metadata_),
170  ~0u, // no _extensions_
171  ~0u, // no _oneof_case_
172  ~0u, // no _weak_field_map_
173  ~0u, // no _inlined_string_donated_
174  PROTOBUF_FIELD_OFFSET(::operations_research::SearchStatistics, local_search_statistics_),
175  PROTOBUF_FIELD_OFFSET(::operations_research::SearchStatistics, constraint_solver_statistics_),
176 };
177 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
181  { 29, -1, -1, sizeof(::operations_research::LocalSearchStatistics)},
183  { 52, -1, -1, sizeof(::operations_research::SearchStatistics)},
184 };
185 
186 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
187  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_LocalSearchStatistics_FirstSolutionStatistics_default_instance_),
188  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_LocalSearchStatistics_LocalSearchOperatorStatistics_default_instance_),
189  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_LocalSearchStatistics_LocalSearchFilterStatistics_default_instance_),
190  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_LocalSearchStatistics_default_instance_),
191  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_ConstraintSolverStatistics_default_instance_),
192  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::_SearchStatistics_default_instance_),
193 };
194 
195 const char descriptor_table_protodef_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
196  "\n,ortools/constraint_solver/search_stats"
197  ".proto\022\023operations_research\"\302\006\n\025LocalSea"
198  "rchStatistics\022e\n\031first_solution_statisti"
199  "cs\030\006 \003(\0132B.operations_research.LocalSear"
200  "chStatistics.FirstSolutionStatistics\022r\n "
201  "local_search_operator_statistics\030\001 \003(\0132H"
202  ".operations_research.LocalSearchStatisti"
203  "cs.LocalSearchOperatorStatistics\022n\n\036loca"
204  "l_search_filter_statistics\030\002 \003(\0132F.opera"
205  "tions_research.LocalSearchStatistics.Loc"
206  "alSearchFilterStatistics\022\033\n\023total_num_ne"
207  "ighbors\030\003 \001(\003\022$\n\034total_num_filtered_neig"
208  "hbors\030\004 \001(\003\022$\n\034total_num_accepted_neighb"
209  "ors\030\005 \001(\003\032E\n\027FirstSolutionStatistics\022\020\n\010"
210  "strategy\030\001 \001(\t\022\030\n\020duration_seconds\030\002 \001(\001"
211  "\032\257\001\n\035LocalSearchOperatorStatistics\022\035\n\025lo"
212  "cal_search_operator\030\001 \001(\t\022\025\n\rnum_neighbo"
213  "rs\030\002 \001(\003\022\036\n\026num_filtered_neighbors\030\003 \001(\003"
214  "\022\036\n\026num_accepted_neighbors\030\004 \001(\003\022\030\n\020dura"
215  "tion_seconds\030\005 \001(\001\032|\n\033LocalSearchFilterS"
216  "tatistics\022\033\n\023local_search_filter\030\001 \001(\t\022\021"
217  "\n\tnum_calls\030\002 \001(\003\022\023\n\013num_rejects\030\003 \001(\003\022\030"
218  "\n\020duration_seconds\030\004 \001(\001\"\215\001\n\032ConstraintS"
219  "olverStatistics\022\024\n\014num_branches\030\001 \001(\003\022\024\n"
220  "\014num_failures\030\002 \001(\003\022\025\n\rnum_solutions\030\003 \001"
221  "(\003\022\022\n\nbytes_used\030\004 \001(\003\022\030\n\020duration_secon"
222  "ds\030\005 \001(\001\"\266\001\n\020SearchStatistics\022K\n\027local_s"
223  "earch_statistics\030\001 \001(\0132*.operations_rese"
224  "arch.LocalSearchStatistics\022U\n\034constraint"
225  "_solver_statistics\030\002 \001(\0132/.operations_re"
226  "search.ConstraintSolverStatisticsBI\n#com"
227  ".google.ortools.constraintsolverP\001\252\002\037Goo"
228  "gle.OrTools.ConstraintSolverb\006proto3"
229  ;
230 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto_once;
231 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto = {
232  false, false, 1316, descriptor_table_protodef_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto, "ortools/constraint_solver/search_stats.proto",
236 };
237 PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto_getter() {
239 }
240 
241 // Force running AddDescriptors() at dynamic initialization time.
242 PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto(&descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto);
243 namespace operations_research {
244 
245 // ===================================================================
246 
248  public:
249 };
250 
252  bool is_message_owned)
253  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
254  SharedCtor();
255  if (!is_message_owned) {
256  RegisterArenaDtor(arena);
257  }
258  // @@protoc_insertion_point(arena_constructor:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
259 }
261  : ::PROTOBUF_NAMESPACE_ID::Message() {
262  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
263  strategy_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
264  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
265  strategy_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
266  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
267  if (!from._internal_strategy().empty()) {
268  strategy_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_strategy(),
269  GetArenaForAllocation());
270  }
271  duration_seconds_ = from.duration_seconds_;
272  // @@protoc_insertion_point(copy_constructor:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
273 }
274 
275 inline void LocalSearchStatistics_FirstSolutionStatistics::SharedCtor() {
276 strategy_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
277 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
278  strategy_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
279 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
280 duration_seconds_ = 0;
281 }
282 
284  // @@protoc_insertion_point(destructor:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
285  if (GetArenaForAllocation() != nullptr) return;
286  SharedDtor();
287  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
288 }
289 
290 inline void LocalSearchStatistics_FirstSolutionStatistics::SharedDtor() {
291  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
292  strategy_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
293 }
294 
295 void LocalSearchStatistics_FirstSolutionStatistics::ArenaDtor(void* object) {
296  LocalSearchStatistics_FirstSolutionStatistics* _this = reinterpret_cast< LocalSearchStatistics_FirstSolutionStatistics* >(object);
297  (void)_this;
298 }
299 void LocalSearchStatistics_FirstSolutionStatistics::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
300 }
301 void LocalSearchStatistics_FirstSolutionStatistics::SetCachedSize(int size) const {
302  _cached_size_.Set(size);
303 }
304 
306 // @@protoc_insertion_point(message_clear_start:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
307  uint32_t cached_has_bits = 0;
308  // Prevent compiler warnings about cached_has_bits being unused
309  (void) cached_has_bits;
310 
311  strategy_.ClearToEmpty();
312  duration_seconds_ = 0;
313  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
314 }
315 
316 const char* LocalSearchStatistics_FirstSolutionStatistics::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
317 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
318  while (!ctx->Done(&ptr)) {
319  uint32_t tag;
320  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
321  switch (tag >> 3) {
322  // string strategy = 1;
323  case 1:
324  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
325  auto str = _internal_mutable_strategy();
326  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
327  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.LocalSearchStatistics.FirstSolutionStatistics.strategy"));
328  CHK_(ptr);
329  } else
330  goto handle_unusual;
331  continue;
332  // double duration_seconds = 2;
333  case 2:
334  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 17)) {
335  duration_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
336  ptr += sizeof(double);
337  } else
338  goto handle_unusual;
339  continue;
340  default:
341  goto handle_unusual;
342  } // switch
343  handle_unusual:
344  if ((tag == 0) || ((tag & 7) == 4)) {
345  CHK_(ptr);
346  ctx->SetLastTag(tag);
347  goto message_done;
348  }
349  ptr = UnknownFieldParse(
350  tag,
351  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
352  ptr, ctx);
353  CHK_(ptr != nullptr);
354  } // while
355 message_done:
356  return ptr;
357 failure:
358  ptr = nullptr;
359  goto message_done;
360 #undef CHK_
361 }
362 
364  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
365  // @@protoc_insertion_point(serialize_to_array_start:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
366  uint32_t cached_has_bits = 0;
367  (void) cached_has_bits;
368 
369  // string strategy = 1;
370  if (!this->_internal_strategy().empty()) {
371  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
372  this->_internal_strategy().data(), static_cast<int>(this->_internal_strategy().length()),
373  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
374  "operations_research.LocalSearchStatistics.FirstSolutionStatistics.strategy");
375  target = stream->WriteStringMaybeAliased(
376  1, this->_internal_strategy(), target);
377  }
378 
379  // double duration_seconds = 2;
380  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
381  double tmp_duration_seconds = this->_internal_duration_seconds();
382  uint64_t raw_duration_seconds;
383  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
384  if (raw_duration_seconds != 0) {
385  target = stream->EnsureSpace(target);
386  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_duration_seconds(), target);
387  }
388 
389  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
390  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
391  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
392  }
393  // @@protoc_insertion_point(serialize_to_array_end:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
394  return target;
395 }
396 
398 // @@protoc_insertion_point(message_byte_size_start:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
399  size_t total_size = 0;
400 
401  uint32_t cached_has_bits = 0;
402  // Prevent compiler warnings about cached_has_bits being unused
403  (void) cached_has_bits;
404 
405  // string strategy = 1;
406  if (!this->_internal_strategy().empty()) {
407  total_size += 1 +
408  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
409  this->_internal_strategy());
410  }
411 
412  // double duration_seconds = 2;
413  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
414  double tmp_duration_seconds = this->_internal_duration_seconds();
415  uint64_t raw_duration_seconds;
416  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
417  if (raw_duration_seconds != 0) {
418  total_size += 1 + 8;
419  }
420 
421  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
422 }
423 
424 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocalSearchStatistics_FirstSolutionStatistics::_class_data_ = {
425  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
426  LocalSearchStatistics_FirstSolutionStatistics::MergeImpl
427 };
428 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocalSearchStatistics_FirstSolutionStatistics::GetClassData() const { return &_class_data_; }
429 
430 void LocalSearchStatistics_FirstSolutionStatistics::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
431  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
432  static_cast<LocalSearchStatistics_FirstSolutionStatistics *>(to)->MergeFrom(
433  static_cast<const LocalSearchStatistics_FirstSolutionStatistics &>(from));
434 }
435 
436 
438 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
439  GOOGLE_DCHECK_NE(&from, this);
440  uint32_t cached_has_bits = 0;
441  (void) cached_has_bits;
442 
443  if (!from._internal_strategy().empty()) {
444  _internal_set_strategy(from._internal_strategy());
445  }
446  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
447  double tmp_duration_seconds = from._internal_duration_seconds();
448  uint64_t raw_duration_seconds;
449  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
450  if (raw_duration_seconds != 0) {
451  _internal_set_duration_seconds(from._internal_duration_seconds());
452  }
453  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
454 }
455 
457 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.LocalSearchStatistics.FirstSolutionStatistics)
458  if (&from == this) return;
459  Clear();
460  MergeFrom(from);
461 }
462 
464  return true;
465 }
466 
467 void LocalSearchStatistics_FirstSolutionStatistics::InternalSwap(LocalSearchStatistics_FirstSolutionStatistics* other) {
468  using std::swap;
469  auto* lhs_arena = GetArenaForAllocation();
470  auto* rhs_arena = other->GetArenaForAllocation();
471  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
472  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
473  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
474  &strategy_, lhs_arena,
475  &other->strategy_, rhs_arena
476  );
477  swap(duration_seconds_, other->duration_seconds_);
478 }
479 
480 ::PROTOBUF_NAMESPACE_ID::Metadata LocalSearchStatistics_FirstSolutionStatistics::GetMetadata() const {
481  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
484 }
485 
486 // ===================================================================
487 
489  public:
490 };
491 
493  bool is_message_owned)
494  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
495  SharedCtor();
496  if (!is_message_owned) {
497  RegisterArenaDtor(arena);
498  }
499  // @@protoc_insertion_point(arena_constructor:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
500 }
502  : ::PROTOBUF_NAMESPACE_ID::Message() {
503  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
504  local_search_operator_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
505  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
506  local_search_operator_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
507  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
508  if (!from._internal_local_search_operator().empty()) {
509  local_search_operator_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_local_search_operator(),
510  GetArenaForAllocation());
511  }
512  ::memcpy(&num_neighbors_, &from.num_neighbors_,
513  static_cast<size_t>(reinterpret_cast<char*>(&duration_seconds_) -
514  reinterpret_cast<char*>(&num_neighbors_)) + sizeof(duration_seconds_));
515  // @@protoc_insertion_point(copy_constructor:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
516 }
517 
518 inline void LocalSearchStatistics_LocalSearchOperatorStatistics::SharedCtor() {
519 local_search_operator_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
520 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
521  local_search_operator_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
522 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
523 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
524  reinterpret_cast<char*>(&num_neighbors_) - reinterpret_cast<char*>(this)),
525  0, static_cast<size_t>(reinterpret_cast<char*>(&duration_seconds_) -
526  reinterpret_cast<char*>(&num_neighbors_)) + sizeof(duration_seconds_));
527 }
528 
530  // @@protoc_insertion_point(destructor:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
531  if (GetArenaForAllocation() != nullptr) return;
532  SharedDtor();
533  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
534 }
535 
536 inline void LocalSearchStatistics_LocalSearchOperatorStatistics::SharedDtor() {
537  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
538  local_search_operator_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
539 }
540 
541 void LocalSearchStatistics_LocalSearchOperatorStatistics::ArenaDtor(void* object) {
542  LocalSearchStatistics_LocalSearchOperatorStatistics* _this = reinterpret_cast< LocalSearchStatistics_LocalSearchOperatorStatistics* >(object);
543  (void)_this;
544 }
545 void LocalSearchStatistics_LocalSearchOperatorStatistics::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
546 }
547 void LocalSearchStatistics_LocalSearchOperatorStatistics::SetCachedSize(int size) const {
548  _cached_size_.Set(size);
549 }
550 
552 // @@protoc_insertion_point(message_clear_start:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
553  uint32_t cached_has_bits = 0;
554  // Prevent compiler warnings about cached_has_bits being unused
555  (void) cached_has_bits;
556 
557  local_search_operator_.ClearToEmpty();
558  ::memset(&num_neighbors_, 0, static_cast<size_t>(
559  reinterpret_cast<char*>(&duration_seconds_) -
560  reinterpret_cast<char*>(&num_neighbors_)) + sizeof(duration_seconds_));
561  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
562 }
563 
564 const char* LocalSearchStatistics_LocalSearchOperatorStatistics::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
565 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
566  while (!ctx->Done(&ptr)) {
567  uint32_t tag;
568  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
569  switch (tag >> 3) {
570  // string local_search_operator = 1;
571  case 1:
572  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
573  auto str = _internal_mutable_local_search_operator();
574  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
575  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics.local_search_operator"));
576  CHK_(ptr);
577  } else
578  goto handle_unusual;
579  continue;
580  // int64 num_neighbors = 2;
581  case 2:
582  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
583  num_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
584  CHK_(ptr);
585  } else
586  goto handle_unusual;
587  continue;
588  // int64 num_filtered_neighbors = 3;
589  case 3:
590  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
591  num_filtered_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
592  CHK_(ptr);
593  } else
594  goto handle_unusual;
595  continue;
596  // int64 num_accepted_neighbors = 4;
597  case 4:
598  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
599  num_accepted_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
600  CHK_(ptr);
601  } else
602  goto handle_unusual;
603  continue;
604  // double duration_seconds = 5;
605  case 5:
606  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 41)) {
607  duration_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
608  ptr += sizeof(double);
609  } else
610  goto handle_unusual;
611  continue;
612  default:
613  goto handle_unusual;
614  } // switch
615  handle_unusual:
616  if ((tag == 0) || ((tag & 7) == 4)) {
617  CHK_(ptr);
618  ctx->SetLastTag(tag);
619  goto message_done;
620  }
621  ptr = UnknownFieldParse(
622  tag,
623  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
624  ptr, ctx);
625  CHK_(ptr != nullptr);
626  } // while
627 message_done:
628  return ptr;
629 failure:
630  ptr = nullptr;
631  goto message_done;
632 #undef CHK_
633 }
634 
636  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
637  // @@protoc_insertion_point(serialize_to_array_start:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
638  uint32_t cached_has_bits = 0;
639  (void) cached_has_bits;
640 
641  // string local_search_operator = 1;
642  if (!this->_internal_local_search_operator().empty()) {
643  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
644  this->_internal_local_search_operator().data(), static_cast<int>(this->_internal_local_search_operator().length()),
645  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
646  "operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics.local_search_operator");
647  target = stream->WriteStringMaybeAliased(
648  1, this->_internal_local_search_operator(), target);
649  }
650 
651  // int64 num_neighbors = 2;
652  if (this->_internal_num_neighbors() != 0) {
653  target = stream->EnsureSpace(target);
654  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_num_neighbors(), target);
655  }
656 
657  // int64 num_filtered_neighbors = 3;
658  if (this->_internal_num_filtered_neighbors() != 0) {
659  target = stream->EnsureSpace(target);
660  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_num_filtered_neighbors(), target);
661  }
662 
663  // int64 num_accepted_neighbors = 4;
664  if (this->_internal_num_accepted_neighbors() != 0) {
665  target = stream->EnsureSpace(target);
666  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_num_accepted_neighbors(), target);
667  }
668 
669  // double duration_seconds = 5;
670  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
671  double tmp_duration_seconds = this->_internal_duration_seconds();
672  uint64_t raw_duration_seconds;
673  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
674  if (raw_duration_seconds != 0) {
675  target = stream->EnsureSpace(target);
676  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_duration_seconds(), target);
677  }
678 
679  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
680  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
681  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
682  }
683  // @@protoc_insertion_point(serialize_to_array_end:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
684  return target;
685 }
686 
688 // @@protoc_insertion_point(message_byte_size_start:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
689  size_t total_size = 0;
690 
691  uint32_t cached_has_bits = 0;
692  // Prevent compiler warnings about cached_has_bits being unused
693  (void) cached_has_bits;
694 
695  // string local_search_operator = 1;
696  if (!this->_internal_local_search_operator().empty()) {
697  total_size += 1 +
698  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
699  this->_internal_local_search_operator());
700  }
701 
702  // int64 num_neighbors = 2;
703  if (this->_internal_num_neighbors() != 0) {
704  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_neighbors());
705  }
706 
707  // int64 num_filtered_neighbors = 3;
708  if (this->_internal_num_filtered_neighbors() != 0) {
709  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_filtered_neighbors());
710  }
711 
712  // int64 num_accepted_neighbors = 4;
713  if (this->_internal_num_accepted_neighbors() != 0) {
714  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_accepted_neighbors());
715  }
716 
717  // double duration_seconds = 5;
718  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
719  double tmp_duration_seconds = this->_internal_duration_seconds();
720  uint64_t raw_duration_seconds;
721  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
722  if (raw_duration_seconds != 0) {
723  total_size += 1 + 8;
724  }
725 
726  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
727 }
728 
729 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocalSearchStatistics_LocalSearchOperatorStatistics::_class_data_ = {
730  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
731  LocalSearchStatistics_LocalSearchOperatorStatistics::MergeImpl
732 };
733 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocalSearchStatistics_LocalSearchOperatorStatistics::GetClassData() const { return &_class_data_; }
734 
735 void LocalSearchStatistics_LocalSearchOperatorStatistics::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
736  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
737  static_cast<LocalSearchStatistics_LocalSearchOperatorStatistics *>(to)->MergeFrom(
738  static_cast<const LocalSearchStatistics_LocalSearchOperatorStatistics &>(from));
739 }
740 
741 
743 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
744  GOOGLE_DCHECK_NE(&from, this);
745  uint32_t cached_has_bits = 0;
746  (void) cached_has_bits;
747 
748  if (!from._internal_local_search_operator().empty()) {
749  _internal_set_local_search_operator(from._internal_local_search_operator());
750  }
751  if (from._internal_num_neighbors() != 0) {
752  _internal_set_num_neighbors(from._internal_num_neighbors());
753  }
754  if (from._internal_num_filtered_neighbors() != 0) {
755  _internal_set_num_filtered_neighbors(from._internal_num_filtered_neighbors());
756  }
757  if (from._internal_num_accepted_neighbors() != 0) {
758  _internal_set_num_accepted_neighbors(from._internal_num_accepted_neighbors());
759  }
760  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
761  double tmp_duration_seconds = from._internal_duration_seconds();
762  uint64_t raw_duration_seconds;
763  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
764  if (raw_duration_seconds != 0) {
765  _internal_set_duration_seconds(from._internal_duration_seconds());
766  }
767  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
768 }
769 
771 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics)
772  if (&from == this) return;
773  Clear();
774  MergeFrom(from);
775 }
776 
778  return true;
779 }
780 
781 void LocalSearchStatistics_LocalSearchOperatorStatistics::InternalSwap(LocalSearchStatistics_LocalSearchOperatorStatistics* other) {
782  using std::swap;
783  auto* lhs_arena = GetArenaForAllocation();
784  auto* rhs_arena = other->GetArenaForAllocation();
785  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
786  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
787  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
788  &local_search_operator_, lhs_arena,
789  &other->local_search_operator_, rhs_arena
790  );
791  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
792  PROTOBUF_FIELD_OFFSET(LocalSearchStatistics_LocalSearchOperatorStatistics, duration_seconds_)
793  + sizeof(LocalSearchStatistics_LocalSearchOperatorStatistics::duration_seconds_)
794  - PROTOBUF_FIELD_OFFSET(LocalSearchStatistics_LocalSearchOperatorStatistics, num_neighbors_)>(
795  reinterpret_cast<char*>(&num_neighbors_),
796  reinterpret_cast<char*>(&other->num_neighbors_));
797 }
798 
799 ::PROTOBUF_NAMESPACE_ID::Metadata LocalSearchStatistics_LocalSearchOperatorStatistics::GetMetadata() const {
800  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
803 }
804 
805 // ===================================================================
806 
808  public:
809 };
810 
812  bool is_message_owned)
813  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
814  SharedCtor();
815  if (!is_message_owned) {
816  RegisterArenaDtor(arena);
817  }
818  // @@protoc_insertion_point(arena_constructor:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
819 }
821  : ::PROTOBUF_NAMESPACE_ID::Message() {
822  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
823  local_search_filter_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
824  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
825  local_search_filter_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
826  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
827  if (!from._internal_local_search_filter().empty()) {
828  local_search_filter_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_local_search_filter(),
829  GetArenaForAllocation());
830  }
831  ::memcpy(&num_calls_, &from.num_calls_,
832  static_cast<size_t>(reinterpret_cast<char*>(&duration_seconds_) -
833  reinterpret_cast<char*>(&num_calls_)) + sizeof(duration_seconds_));
834  // @@protoc_insertion_point(copy_constructor:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
835 }
836 
837 inline void LocalSearchStatistics_LocalSearchFilterStatistics::SharedCtor() {
838 local_search_filter_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
839 #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
840  local_search_filter_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
841 #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
842 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
843  reinterpret_cast<char*>(&num_calls_) - reinterpret_cast<char*>(this)),
844  0, static_cast<size_t>(reinterpret_cast<char*>(&duration_seconds_) -
845  reinterpret_cast<char*>(&num_calls_)) + sizeof(duration_seconds_));
846 }
847 
849  // @@protoc_insertion_point(destructor:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
850  if (GetArenaForAllocation() != nullptr) return;
851  SharedDtor();
852  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
853 }
854 
855 inline void LocalSearchStatistics_LocalSearchFilterStatistics::SharedDtor() {
856  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
857  local_search_filter_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
858 }
859 
860 void LocalSearchStatistics_LocalSearchFilterStatistics::ArenaDtor(void* object) {
861  LocalSearchStatistics_LocalSearchFilterStatistics* _this = reinterpret_cast< LocalSearchStatistics_LocalSearchFilterStatistics* >(object);
862  (void)_this;
863 }
864 void LocalSearchStatistics_LocalSearchFilterStatistics::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
865 }
866 void LocalSearchStatistics_LocalSearchFilterStatistics::SetCachedSize(int size) const {
867  _cached_size_.Set(size);
868 }
869 
871 // @@protoc_insertion_point(message_clear_start:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
872  uint32_t cached_has_bits = 0;
873  // Prevent compiler warnings about cached_has_bits being unused
874  (void) cached_has_bits;
875 
876  local_search_filter_.ClearToEmpty();
877  ::memset(&num_calls_, 0, static_cast<size_t>(
878  reinterpret_cast<char*>(&duration_seconds_) -
879  reinterpret_cast<char*>(&num_calls_)) + sizeof(duration_seconds_));
880  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
881 }
882 
883 const char* LocalSearchStatistics_LocalSearchFilterStatistics::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
884 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
885  while (!ctx->Done(&ptr)) {
886  uint32_t tag;
887  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
888  switch (tag >> 3) {
889  // string local_search_filter = 1;
890  case 1:
891  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
892  auto str = _internal_mutable_local_search_filter();
893  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
894  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.LocalSearchStatistics.LocalSearchFilterStatistics.local_search_filter"));
895  CHK_(ptr);
896  } else
897  goto handle_unusual;
898  continue;
899  // int64 num_calls = 2;
900  case 2:
901  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
902  num_calls_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
903  CHK_(ptr);
904  } else
905  goto handle_unusual;
906  continue;
907  // int64 num_rejects = 3;
908  case 3:
909  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
910  num_rejects_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
911  CHK_(ptr);
912  } else
913  goto handle_unusual;
914  continue;
915  // double duration_seconds = 4;
916  case 4:
917  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 33)) {
918  duration_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
919  ptr += sizeof(double);
920  } else
921  goto handle_unusual;
922  continue;
923  default:
924  goto handle_unusual;
925  } // switch
926  handle_unusual:
927  if ((tag == 0) || ((tag & 7) == 4)) {
928  CHK_(ptr);
929  ctx->SetLastTag(tag);
930  goto message_done;
931  }
932  ptr = UnknownFieldParse(
933  tag,
934  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
935  ptr, ctx);
936  CHK_(ptr != nullptr);
937  } // while
938 message_done:
939  return ptr;
940 failure:
941  ptr = nullptr;
942  goto message_done;
943 #undef CHK_
944 }
945 
947  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
948  // @@protoc_insertion_point(serialize_to_array_start:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
949  uint32_t cached_has_bits = 0;
950  (void) cached_has_bits;
951 
952  // string local_search_filter = 1;
953  if (!this->_internal_local_search_filter().empty()) {
954  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
955  this->_internal_local_search_filter().data(), static_cast<int>(this->_internal_local_search_filter().length()),
956  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
957  "operations_research.LocalSearchStatistics.LocalSearchFilterStatistics.local_search_filter");
958  target = stream->WriteStringMaybeAliased(
959  1, this->_internal_local_search_filter(), target);
960  }
961 
962  // int64 num_calls = 2;
963  if (this->_internal_num_calls() != 0) {
964  target = stream->EnsureSpace(target);
965  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_num_calls(), target);
966  }
967 
968  // int64 num_rejects = 3;
969  if (this->_internal_num_rejects() != 0) {
970  target = stream->EnsureSpace(target);
971  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_num_rejects(), target);
972  }
973 
974  // double duration_seconds = 4;
975  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
976  double tmp_duration_seconds = this->_internal_duration_seconds();
977  uint64_t raw_duration_seconds;
978  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
979  if (raw_duration_seconds != 0) {
980  target = stream->EnsureSpace(target);
981  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_duration_seconds(), target);
982  }
983 
984  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
985  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
986  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
987  }
988  // @@protoc_insertion_point(serialize_to_array_end:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
989  return target;
990 }
991 
993 // @@protoc_insertion_point(message_byte_size_start:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
994  size_t total_size = 0;
995 
996  uint32_t cached_has_bits = 0;
997  // Prevent compiler warnings about cached_has_bits being unused
998  (void) cached_has_bits;
999 
1000  // string local_search_filter = 1;
1001  if (!this->_internal_local_search_filter().empty()) {
1002  total_size += 1 +
1003  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1004  this->_internal_local_search_filter());
1005  }
1006 
1007  // int64 num_calls = 2;
1008  if (this->_internal_num_calls() != 0) {
1009  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_calls());
1010  }
1011 
1012  // int64 num_rejects = 3;
1013  if (this->_internal_num_rejects() != 0) {
1014  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_rejects());
1015  }
1016 
1017  // double duration_seconds = 4;
1018  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1019  double tmp_duration_seconds = this->_internal_duration_seconds();
1020  uint64_t raw_duration_seconds;
1021  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
1022  if (raw_duration_seconds != 0) {
1023  total_size += 1 + 8;
1024  }
1025 
1026  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1027 }
1028 
1029 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocalSearchStatistics_LocalSearchFilterStatistics::_class_data_ = {
1030  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1031  LocalSearchStatistics_LocalSearchFilterStatistics::MergeImpl
1032 };
1033 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocalSearchStatistics_LocalSearchFilterStatistics::GetClassData() const { return &_class_data_; }
1034 
1035 void LocalSearchStatistics_LocalSearchFilterStatistics::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1036  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1037  static_cast<LocalSearchStatistics_LocalSearchFilterStatistics *>(to)->MergeFrom(
1038  static_cast<const LocalSearchStatistics_LocalSearchFilterStatistics &>(from));
1039 }
1040 
1041 
1043 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
1044  GOOGLE_DCHECK_NE(&from, this);
1045  uint32_t cached_has_bits = 0;
1046  (void) cached_has_bits;
1047 
1048  if (!from._internal_local_search_filter().empty()) {
1049  _internal_set_local_search_filter(from._internal_local_search_filter());
1050  }
1051  if (from._internal_num_calls() != 0) {
1052  _internal_set_num_calls(from._internal_num_calls());
1053  }
1054  if (from._internal_num_rejects() != 0) {
1055  _internal_set_num_rejects(from._internal_num_rejects());
1056  }
1057  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1058  double tmp_duration_seconds = from._internal_duration_seconds();
1059  uint64_t raw_duration_seconds;
1060  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
1061  if (raw_duration_seconds != 0) {
1062  _internal_set_duration_seconds(from._internal_duration_seconds());
1063  }
1064  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1065 }
1066 
1068 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.LocalSearchStatistics.LocalSearchFilterStatistics)
1069  if (&from == this) return;
1070  Clear();
1071  MergeFrom(from);
1072 }
1073 
1075  return true;
1076 }
1077 
1078 void LocalSearchStatistics_LocalSearchFilterStatistics::InternalSwap(LocalSearchStatistics_LocalSearchFilterStatistics* other) {
1079  using std::swap;
1080  auto* lhs_arena = GetArenaForAllocation();
1081  auto* rhs_arena = other->GetArenaForAllocation();
1082  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1083  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
1084  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
1085  &local_search_filter_, lhs_arena,
1086  &other->local_search_filter_, rhs_arena
1087  );
1088  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1089  PROTOBUF_FIELD_OFFSET(LocalSearchStatistics_LocalSearchFilterStatistics, duration_seconds_)
1090  + sizeof(LocalSearchStatistics_LocalSearchFilterStatistics::duration_seconds_)
1091  - PROTOBUF_FIELD_OFFSET(LocalSearchStatistics_LocalSearchFilterStatistics, num_calls_)>(
1092  reinterpret_cast<char*>(&num_calls_),
1093  reinterpret_cast<char*>(&other->num_calls_));
1094 }
1095 
1096 ::PROTOBUF_NAMESPACE_ID::Metadata LocalSearchStatistics_LocalSearchFilterStatistics::GetMetadata() const {
1097  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1100 }
1101 
1102 // ===================================================================
1103 
1105  public:
1106 };
1107 
1108 LocalSearchStatistics::LocalSearchStatistics(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1109  bool is_message_owned)
1110  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1111  local_search_operator_statistics_(arena),
1112  local_search_filter_statistics_(arena),
1113  first_solution_statistics_(arena) {
1114  SharedCtor();
1115  if (!is_message_owned) {
1116  RegisterArenaDtor(arena);
1117  }
1118  // @@protoc_insertion_point(arena_constructor:operations_research.LocalSearchStatistics)
1119 }
1121  : ::PROTOBUF_NAMESPACE_ID::Message(),
1122  local_search_operator_statistics_(from.local_search_operator_statistics_),
1123  local_search_filter_statistics_(from.local_search_filter_statistics_),
1124  first_solution_statistics_(from.first_solution_statistics_) {
1125  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1126  ::memcpy(&total_num_neighbors_, &from.total_num_neighbors_,
1127  static_cast<size_t>(reinterpret_cast<char*>(&total_num_accepted_neighbors_) -
1128  reinterpret_cast<char*>(&total_num_neighbors_)) + sizeof(total_num_accepted_neighbors_));
1129  // @@protoc_insertion_point(copy_constructor:operations_research.LocalSearchStatistics)
1130 }
1131 
1132 inline void LocalSearchStatistics::SharedCtor() {
1133 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
1134  reinterpret_cast<char*>(&total_num_neighbors_) - reinterpret_cast<char*>(this)),
1135  0, static_cast<size_t>(reinterpret_cast<char*>(&total_num_accepted_neighbors_) -
1136  reinterpret_cast<char*>(&total_num_neighbors_)) + sizeof(total_num_accepted_neighbors_));
1137 }
1138 
1140  // @@protoc_insertion_point(destructor:operations_research.LocalSearchStatistics)
1141  if (GetArenaForAllocation() != nullptr) return;
1142  SharedDtor();
1143  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1144 }
1145 
1146 inline void LocalSearchStatistics::SharedDtor() {
1147  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1148 }
1149 
1150 void LocalSearchStatistics::ArenaDtor(void* object) {
1151  LocalSearchStatistics* _this = reinterpret_cast< LocalSearchStatistics* >(object);
1152  (void)_this;
1153 }
1154 void LocalSearchStatistics::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1155 }
1156 void LocalSearchStatistics::SetCachedSize(int size) const {
1157  _cached_size_.Set(size);
1158 }
1159 
1161 // @@protoc_insertion_point(message_clear_start:operations_research.LocalSearchStatistics)
1162  uint32_t cached_has_bits = 0;
1163  // Prevent compiler warnings about cached_has_bits being unused
1164  (void) cached_has_bits;
1165 
1166  local_search_operator_statistics_.Clear();
1167  local_search_filter_statistics_.Clear();
1168  first_solution_statistics_.Clear();
1169  ::memset(&total_num_neighbors_, 0, static_cast<size_t>(
1170  reinterpret_cast<char*>(&total_num_accepted_neighbors_) -
1171  reinterpret_cast<char*>(&total_num_neighbors_)) + sizeof(total_num_accepted_neighbors_));
1172  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1173 }
1174 
1175 const char* LocalSearchStatistics::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1176 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1177  while (!ctx->Done(&ptr)) {
1178  uint32_t tag;
1179  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1180  switch (tag >> 3) {
1181  // repeated .operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics local_search_operator_statistics = 1;
1182  case 1:
1183  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
1184  ptr -= 1;
1185  do {
1186  ptr += 1;
1187  ptr = ctx->ParseMessage(_internal_add_local_search_operator_statistics(), ptr);
1188  CHK_(ptr);
1189  if (!ctx->DataAvailable(ptr)) break;
1190  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
1191  } else
1192  goto handle_unusual;
1193  continue;
1194  // repeated .operations_research.LocalSearchStatistics.LocalSearchFilterStatistics local_search_filter_statistics = 2;
1195  case 2:
1196  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
1197  ptr -= 1;
1198  do {
1199  ptr += 1;
1200  ptr = ctx->ParseMessage(_internal_add_local_search_filter_statistics(), ptr);
1201  CHK_(ptr);
1202  if (!ctx->DataAvailable(ptr)) break;
1203  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
1204  } else
1205  goto handle_unusual;
1206  continue;
1207  // int64 total_num_neighbors = 3;
1208  case 3:
1209  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
1210  total_num_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1211  CHK_(ptr);
1212  } else
1213  goto handle_unusual;
1214  continue;
1215  // int64 total_num_filtered_neighbors = 4;
1216  case 4:
1217  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
1218  total_num_filtered_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1219  CHK_(ptr);
1220  } else
1221  goto handle_unusual;
1222  continue;
1223  // int64 total_num_accepted_neighbors = 5;
1224  case 5:
1225  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
1226  total_num_accepted_neighbors_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1227  CHK_(ptr);
1228  } else
1229  goto handle_unusual;
1230  continue;
1231  // repeated .operations_research.LocalSearchStatistics.FirstSolutionStatistics first_solution_statistics = 6;
1232  case 6:
1233  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
1234  ptr -= 1;
1235  do {
1236  ptr += 1;
1237  ptr = ctx->ParseMessage(_internal_add_first_solution_statistics(), ptr);
1238  CHK_(ptr);
1239  if (!ctx->DataAvailable(ptr)) break;
1240  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
1241  } else
1242  goto handle_unusual;
1243  continue;
1244  default:
1245  goto handle_unusual;
1246  } // switch
1247  handle_unusual:
1248  if ((tag == 0) || ((tag & 7) == 4)) {
1249  CHK_(ptr);
1250  ctx->SetLastTag(tag);
1251  goto message_done;
1252  }
1253  ptr = UnknownFieldParse(
1254  tag,
1255  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1256  ptr, ctx);
1257  CHK_(ptr != nullptr);
1258  } // while
1259 message_done:
1260  return ptr;
1261 failure:
1262  ptr = nullptr;
1263  goto message_done;
1264 #undef CHK_
1265 }
1266 
1268  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1269  // @@protoc_insertion_point(serialize_to_array_start:operations_research.LocalSearchStatistics)
1270  uint32_t cached_has_bits = 0;
1271  (void) cached_has_bits;
1272 
1273  // repeated .operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics local_search_operator_statistics = 1;
1274  for (unsigned int i = 0,
1275  n = static_cast<unsigned int>(this->_internal_local_search_operator_statistics_size()); i < n; i++) {
1276  target = stream->EnsureSpace(target);
1277  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1278  InternalWriteMessage(1, this->_internal_local_search_operator_statistics(i), target, stream);
1279  }
1280 
1281  // repeated .operations_research.LocalSearchStatistics.LocalSearchFilterStatistics local_search_filter_statistics = 2;
1282  for (unsigned int i = 0,
1283  n = static_cast<unsigned int>(this->_internal_local_search_filter_statistics_size()); i < n; i++) {
1284  target = stream->EnsureSpace(target);
1285  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1286  InternalWriteMessage(2, this->_internal_local_search_filter_statistics(i), target, stream);
1287  }
1288 
1289  // int64 total_num_neighbors = 3;
1290  if (this->_internal_total_num_neighbors() != 0) {
1291  target = stream->EnsureSpace(target);
1292  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_total_num_neighbors(), target);
1293  }
1294 
1295  // int64 total_num_filtered_neighbors = 4;
1296  if (this->_internal_total_num_filtered_neighbors() != 0) {
1297  target = stream->EnsureSpace(target);
1298  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_total_num_filtered_neighbors(), target);
1299  }
1300 
1301  // int64 total_num_accepted_neighbors = 5;
1302  if (this->_internal_total_num_accepted_neighbors() != 0) {
1303  target = stream->EnsureSpace(target);
1304  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_total_num_accepted_neighbors(), target);
1305  }
1306 
1307  // repeated .operations_research.LocalSearchStatistics.FirstSolutionStatistics first_solution_statistics = 6;
1308  for (unsigned int i = 0,
1309  n = static_cast<unsigned int>(this->_internal_first_solution_statistics_size()); i < n; i++) {
1310  target = stream->EnsureSpace(target);
1311  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1312  InternalWriteMessage(6, this->_internal_first_solution_statistics(i), target, stream);
1313  }
1314 
1315  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1316  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1317  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1318  }
1319  // @@protoc_insertion_point(serialize_to_array_end:operations_research.LocalSearchStatistics)
1320  return target;
1321 }
1322 
1324 // @@protoc_insertion_point(message_byte_size_start:operations_research.LocalSearchStatistics)
1325  size_t total_size = 0;
1326 
1327  uint32_t cached_has_bits = 0;
1328  // Prevent compiler warnings about cached_has_bits being unused
1329  (void) cached_has_bits;
1330 
1331  // repeated .operations_research.LocalSearchStatistics.LocalSearchOperatorStatistics local_search_operator_statistics = 1;
1332  total_size += 1UL * this->_internal_local_search_operator_statistics_size();
1333  for (const auto& msg : this->local_search_operator_statistics_) {
1334  total_size +=
1335  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1336  }
1337 
1338  // repeated .operations_research.LocalSearchStatistics.LocalSearchFilterStatistics local_search_filter_statistics = 2;
1339  total_size += 1UL * this->_internal_local_search_filter_statistics_size();
1340  for (const auto& msg : this->local_search_filter_statistics_) {
1341  total_size +=
1342  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1343  }
1344 
1345  // repeated .operations_research.LocalSearchStatistics.FirstSolutionStatistics first_solution_statistics = 6;
1346  total_size += 1UL * this->_internal_first_solution_statistics_size();
1347  for (const auto& msg : this->first_solution_statistics_) {
1348  total_size +=
1349  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
1350  }
1351 
1352  // int64 total_num_neighbors = 3;
1353  if (this->_internal_total_num_neighbors() != 0) {
1354  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_total_num_neighbors());
1355  }
1356 
1357  // int64 total_num_filtered_neighbors = 4;
1358  if (this->_internal_total_num_filtered_neighbors() != 0) {
1359  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_total_num_filtered_neighbors());
1360  }
1361 
1362  // int64 total_num_accepted_neighbors = 5;
1363  if (this->_internal_total_num_accepted_neighbors() != 0) {
1364  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_total_num_accepted_neighbors());
1365  }
1366 
1367  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1368 }
1369 
1370 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocalSearchStatistics::_class_data_ = {
1371  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1372  LocalSearchStatistics::MergeImpl
1373 };
1374 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocalSearchStatistics::GetClassData() const { return &_class_data_; }
1375 
1376 void LocalSearchStatistics::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1377  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1378  static_cast<LocalSearchStatistics *>(to)->MergeFrom(
1379  static_cast<const LocalSearchStatistics &>(from));
1380 }
1381 
1382 
1384 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.LocalSearchStatistics)
1385  GOOGLE_DCHECK_NE(&from, this);
1386  uint32_t cached_has_bits = 0;
1387  (void) cached_has_bits;
1388 
1389  local_search_operator_statistics_.MergeFrom(from.local_search_operator_statistics_);
1390  local_search_filter_statistics_.MergeFrom(from.local_search_filter_statistics_);
1391  first_solution_statistics_.MergeFrom(from.first_solution_statistics_);
1392  if (from._internal_total_num_neighbors() != 0) {
1393  _internal_set_total_num_neighbors(from._internal_total_num_neighbors());
1394  }
1395  if (from._internal_total_num_filtered_neighbors() != 0) {
1396  _internal_set_total_num_filtered_neighbors(from._internal_total_num_filtered_neighbors());
1397  }
1398  if (from._internal_total_num_accepted_neighbors() != 0) {
1399  _internal_set_total_num_accepted_neighbors(from._internal_total_num_accepted_neighbors());
1400  }
1401  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1402 }
1403 
1405 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.LocalSearchStatistics)
1406  if (&from == this) return;
1407  Clear();
1408  MergeFrom(from);
1409 }
1410 
1412  return true;
1413 }
1414 
1415 void LocalSearchStatistics::InternalSwap(LocalSearchStatistics* other) {
1416  using std::swap;
1417  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1418  local_search_operator_statistics_.InternalSwap(&other->local_search_operator_statistics_);
1419  local_search_filter_statistics_.InternalSwap(&other->local_search_filter_statistics_);
1420  first_solution_statistics_.InternalSwap(&other->first_solution_statistics_);
1421  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1422  PROTOBUF_FIELD_OFFSET(LocalSearchStatistics, total_num_accepted_neighbors_)
1423  + sizeof(LocalSearchStatistics::total_num_accepted_neighbors_)
1424  - PROTOBUF_FIELD_OFFSET(LocalSearchStatistics, total_num_neighbors_)>(
1425  reinterpret_cast<char*>(&total_num_neighbors_),
1426  reinterpret_cast<char*>(&other->total_num_neighbors_));
1427 }
1428 
1429 ::PROTOBUF_NAMESPACE_ID::Metadata LocalSearchStatistics::GetMetadata() const {
1430  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1433 }
1434 
1435 // ===================================================================
1436 
1438  public:
1439 };
1440 
1441 ConstraintSolverStatistics::ConstraintSolverStatistics(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1442  bool is_message_owned)
1443  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1444  SharedCtor();
1445  if (!is_message_owned) {
1446  RegisterArenaDtor(arena);
1447  }
1448  // @@protoc_insertion_point(arena_constructor:operations_research.ConstraintSolverStatistics)
1449 }
1451  : ::PROTOBUF_NAMESPACE_ID::Message() {
1452  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1453  ::memcpy(&num_branches_, &from.num_branches_,
1454  static_cast<size_t>(reinterpret_cast<char*>(&duration_seconds_) -
1455  reinterpret_cast<char*>(&num_branches_)) + sizeof(duration_seconds_));
1456  // @@protoc_insertion_point(copy_constructor:operations_research.ConstraintSolverStatistics)
1457 }
1458 
1459 inline void ConstraintSolverStatistics::SharedCtor() {
1460 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
1461  reinterpret_cast<char*>(&num_branches_) - reinterpret_cast<char*>(this)),
1462  0, static_cast<size_t>(reinterpret_cast<char*>(&duration_seconds_) -
1463  reinterpret_cast<char*>(&num_branches_)) + sizeof(duration_seconds_));
1464 }
1465 
1467  // @@protoc_insertion_point(destructor:operations_research.ConstraintSolverStatistics)
1468  if (GetArenaForAllocation() != nullptr) return;
1469  SharedDtor();
1470  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1471 }
1472 
1473 inline void ConstraintSolverStatistics::SharedDtor() {
1474  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1475 }
1476 
1477 void ConstraintSolverStatistics::ArenaDtor(void* object) {
1478  ConstraintSolverStatistics* _this = reinterpret_cast< ConstraintSolverStatistics* >(object);
1479  (void)_this;
1480 }
1481 void ConstraintSolverStatistics::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1482 }
1483 void ConstraintSolverStatistics::SetCachedSize(int size) const {
1484  _cached_size_.Set(size);
1485 }
1486 
1488 // @@protoc_insertion_point(message_clear_start:operations_research.ConstraintSolverStatistics)
1489  uint32_t cached_has_bits = 0;
1490  // Prevent compiler warnings about cached_has_bits being unused
1491  (void) cached_has_bits;
1492 
1493  ::memset(&num_branches_, 0, static_cast<size_t>(
1494  reinterpret_cast<char*>(&duration_seconds_) -
1495  reinterpret_cast<char*>(&num_branches_)) + sizeof(duration_seconds_));
1496  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1497 }
1498 
1499 const char* ConstraintSolverStatistics::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1500 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1501  while (!ctx->Done(&ptr)) {
1502  uint32_t tag;
1503  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1504  switch (tag >> 3) {
1505  // int64 num_branches = 1;
1506  case 1:
1507  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
1508  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1509  CHK_(ptr);
1510  } else
1511  goto handle_unusual;
1512  continue;
1513  // int64 num_failures = 2;
1514  case 2:
1515  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
1516  num_failures_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1517  CHK_(ptr);
1518  } else
1519  goto handle_unusual;
1520  continue;
1521  // int64 num_solutions = 3;
1522  case 3:
1523  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
1524  num_solutions_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1525  CHK_(ptr);
1526  } else
1527  goto handle_unusual;
1528  continue;
1529  // int64 bytes_used = 4;
1530  case 4:
1531  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
1532  bytes_used_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1533  CHK_(ptr);
1534  } else
1535  goto handle_unusual;
1536  continue;
1537  // double duration_seconds = 5;
1538  case 5:
1539  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 41)) {
1540  duration_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
1541  ptr += sizeof(double);
1542  } else
1543  goto handle_unusual;
1544  continue;
1545  default:
1546  goto handle_unusual;
1547  } // switch
1548  handle_unusual:
1549  if ((tag == 0) || ((tag & 7) == 4)) {
1550  CHK_(ptr);
1551  ctx->SetLastTag(tag);
1552  goto message_done;
1553  }
1554  ptr = UnknownFieldParse(
1555  tag,
1556  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1557  ptr, ctx);
1558  CHK_(ptr != nullptr);
1559  } // while
1560 message_done:
1561  return ptr;
1562 failure:
1563  ptr = nullptr;
1564  goto message_done;
1565 #undef CHK_
1566 }
1567 
1569  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1570  // @@protoc_insertion_point(serialize_to_array_start:operations_research.ConstraintSolverStatistics)
1571  uint32_t cached_has_bits = 0;
1572  (void) cached_has_bits;
1573 
1574  // int64 num_branches = 1;
1575  if (this->_internal_num_branches() != 0) {
1576  target = stream->EnsureSpace(target);
1577  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_num_branches(), target);
1578  }
1579 
1580  // int64 num_failures = 2;
1581  if (this->_internal_num_failures() != 0) {
1582  target = stream->EnsureSpace(target);
1583  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_num_failures(), target);
1584  }
1585 
1586  // int64 num_solutions = 3;
1587  if (this->_internal_num_solutions() != 0) {
1588  target = stream->EnsureSpace(target);
1589  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_num_solutions(), target);
1590  }
1591 
1592  // int64 bytes_used = 4;
1593  if (this->_internal_bytes_used() != 0) {
1594  target = stream->EnsureSpace(target);
1595  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(4, this->_internal_bytes_used(), target);
1596  }
1597 
1598  // double duration_seconds = 5;
1599  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1600  double tmp_duration_seconds = this->_internal_duration_seconds();
1601  uint64_t raw_duration_seconds;
1602  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
1603  if (raw_duration_seconds != 0) {
1604  target = stream->EnsureSpace(target);
1605  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(5, this->_internal_duration_seconds(), target);
1606  }
1607 
1608  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1609  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1610  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1611  }
1612  // @@protoc_insertion_point(serialize_to_array_end:operations_research.ConstraintSolverStatistics)
1613  return target;
1614 }
1615 
1617 // @@protoc_insertion_point(message_byte_size_start:operations_research.ConstraintSolverStatistics)
1618  size_t total_size = 0;
1619 
1620  uint32_t cached_has_bits = 0;
1621  // Prevent compiler warnings about cached_has_bits being unused
1622  (void) cached_has_bits;
1623 
1624  // int64 num_branches = 1;
1625  if (this->_internal_num_branches() != 0) {
1626  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_branches());
1627  }
1628 
1629  // int64 num_failures = 2;
1630  if (this->_internal_num_failures() != 0) {
1631  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_failures());
1632  }
1633 
1634  // int64 num_solutions = 3;
1635  if (this->_internal_num_solutions() != 0) {
1636  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_num_solutions());
1637  }
1638 
1639  // int64 bytes_used = 4;
1640  if (this->_internal_bytes_used() != 0) {
1641  total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64SizePlusOne(this->_internal_bytes_used());
1642  }
1643 
1644  // double duration_seconds = 5;
1645  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1646  double tmp_duration_seconds = this->_internal_duration_seconds();
1647  uint64_t raw_duration_seconds;
1648  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
1649  if (raw_duration_seconds != 0) {
1650  total_size += 1 + 8;
1651  }
1652 
1653  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1654 }
1655 
1656 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ConstraintSolverStatistics::_class_data_ = {
1657  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1658  ConstraintSolverStatistics::MergeImpl
1659 };
1660 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ConstraintSolverStatistics::GetClassData() const { return &_class_data_; }
1661 
1662 void ConstraintSolverStatistics::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1663  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1664  static_cast<ConstraintSolverStatistics *>(to)->MergeFrom(
1665  static_cast<const ConstraintSolverStatistics &>(from));
1666 }
1667 
1668 
1670 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.ConstraintSolverStatistics)
1671  GOOGLE_DCHECK_NE(&from, this);
1672  uint32_t cached_has_bits = 0;
1673  (void) cached_has_bits;
1674 
1675  if (from._internal_num_branches() != 0) {
1676  _internal_set_num_branches(from._internal_num_branches());
1677  }
1678  if (from._internal_num_failures() != 0) {
1679  _internal_set_num_failures(from._internal_num_failures());
1680  }
1681  if (from._internal_num_solutions() != 0) {
1682  _internal_set_num_solutions(from._internal_num_solutions());
1683  }
1684  if (from._internal_bytes_used() != 0) {
1685  _internal_set_bytes_used(from._internal_bytes_used());
1686  }
1687  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
1688  double tmp_duration_seconds = from._internal_duration_seconds();
1689  uint64_t raw_duration_seconds;
1690  memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds));
1691  if (raw_duration_seconds != 0) {
1692  _internal_set_duration_seconds(from._internal_duration_seconds());
1693  }
1694  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1695 }
1696 
1698 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.ConstraintSolverStatistics)
1699  if (&from == this) return;
1700  Clear();
1701  MergeFrom(from);
1702 }
1703 
1705  return true;
1706 }
1707 
1708 void ConstraintSolverStatistics::InternalSwap(ConstraintSolverStatistics* other) {
1709  using std::swap;
1710  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1711  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1712  PROTOBUF_FIELD_OFFSET(ConstraintSolverStatistics, duration_seconds_)
1713  + sizeof(ConstraintSolverStatistics::duration_seconds_)
1714  - PROTOBUF_FIELD_OFFSET(ConstraintSolverStatistics, num_branches_)>(
1715  reinterpret_cast<char*>(&num_branches_),
1716  reinterpret_cast<char*>(&other->num_branches_));
1717 }
1718 
1719 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintSolverStatistics::GetMetadata() const {
1720  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1723 }
1724 
1725 // ===================================================================
1726 
1728  public:
1729  static const ::operations_research::LocalSearchStatistics& local_search_statistics(const SearchStatistics* msg);
1730  static const ::operations_research::ConstraintSolverStatistics& constraint_solver_statistics(const SearchStatistics* msg);
1731 };
1732 
1733 const ::operations_research::LocalSearchStatistics&
1735  return *msg->local_search_statistics_;
1736 }
1737 const ::operations_research::ConstraintSolverStatistics&
1739  return *msg->constraint_solver_statistics_;
1740 }
1741 SearchStatistics::SearchStatistics(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1742  bool is_message_owned)
1743  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
1744  SharedCtor();
1745  if (!is_message_owned) {
1746  RegisterArenaDtor(arena);
1747  }
1748  // @@protoc_insertion_point(arena_constructor:operations_research.SearchStatistics)
1749 }
1751  : ::PROTOBUF_NAMESPACE_ID::Message() {
1752  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1753  if (from._internal_has_local_search_statistics()) {
1754  local_search_statistics_ = new ::operations_research::LocalSearchStatistics(*from.local_search_statistics_);
1755  } else {
1756  local_search_statistics_ = nullptr;
1757  }
1758  if (from._internal_has_constraint_solver_statistics()) {
1759  constraint_solver_statistics_ = new ::operations_research::ConstraintSolverStatistics(*from.constraint_solver_statistics_);
1760  } else {
1761  constraint_solver_statistics_ = nullptr;
1762  }
1763  // @@protoc_insertion_point(copy_constructor:operations_research.SearchStatistics)
1764 }
1765 
1766 inline void SearchStatistics::SharedCtor() {
1767 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
1768  reinterpret_cast<char*>(&local_search_statistics_) - reinterpret_cast<char*>(this)),
1769  0, static_cast<size_t>(reinterpret_cast<char*>(&constraint_solver_statistics_) -
1770  reinterpret_cast<char*>(&local_search_statistics_)) + sizeof(constraint_solver_statistics_));
1771 }
1772 
1774  // @@protoc_insertion_point(destructor:operations_research.SearchStatistics)
1775  if (GetArenaForAllocation() != nullptr) return;
1776  SharedDtor();
1777  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1778 }
1779 
1780 inline void SearchStatistics::SharedDtor() {
1781  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1782  if (this != internal_default_instance()) delete local_search_statistics_;
1783  if (this != internal_default_instance()) delete constraint_solver_statistics_;
1784 }
1785 
1786 void SearchStatistics::ArenaDtor(void* object) {
1787  SearchStatistics* _this = reinterpret_cast< SearchStatistics* >(object);
1788  (void)_this;
1789 }
1790 void SearchStatistics::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1791 }
1792 void SearchStatistics::SetCachedSize(int size) const {
1793  _cached_size_.Set(size);
1794 }
1795 
1797 // @@protoc_insertion_point(message_clear_start:operations_research.SearchStatistics)
1798  uint32_t cached_has_bits = 0;
1799  // Prevent compiler warnings about cached_has_bits being unused
1800  (void) cached_has_bits;
1801 
1802  if (GetArenaForAllocation() == nullptr && local_search_statistics_ != nullptr) {
1803  delete local_search_statistics_;
1804  }
1805  local_search_statistics_ = nullptr;
1806  if (GetArenaForAllocation() == nullptr && constraint_solver_statistics_ != nullptr) {
1807  delete constraint_solver_statistics_;
1808  }
1809  constraint_solver_statistics_ = nullptr;
1810  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1811 }
1812 
1813 const char* SearchStatistics::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1814 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1815  while (!ctx->Done(&ptr)) {
1816  uint32_t tag;
1817  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1818  switch (tag >> 3) {
1819  // .operations_research.LocalSearchStatistics local_search_statistics = 1;
1820  case 1:
1821  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
1822  ptr = ctx->ParseMessage(_internal_mutable_local_search_statistics(), ptr);
1823  CHK_(ptr);
1824  } else
1825  goto handle_unusual;
1826  continue;
1827  // .operations_research.ConstraintSolverStatistics constraint_solver_statistics = 2;
1828  case 2:
1829  if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
1830  ptr = ctx->ParseMessage(_internal_mutable_constraint_solver_statistics(), ptr);
1831  CHK_(ptr);
1832  } else
1833  goto handle_unusual;
1834  continue;
1835  default:
1836  goto handle_unusual;
1837  } // switch
1838  handle_unusual:
1839  if ((tag == 0) || ((tag & 7) == 4)) {
1840  CHK_(ptr);
1841  ctx->SetLastTag(tag);
1842  goto message_done;
1843  }
1844  ptr = UnknownFieldParse(
1845  tag,
1846  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1847  ptr, ctx);
1848  CHK_(ptr != nullptr);
1849  } // while
1850 message_done:
1851  return ptr;
1852 failure:
1853  ptr = nullptr;
1854  goto message_done;
1855 #undef CHK_
1856 }
1857 
1859  uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1860  // @@protoc_insertion_point(serialize_to_array_start:operations_research.SearchStatistics)
1861  uint32_t cached_has_bits = 0;
1862  (void) cached_has_bits;
1863 
1864  // .operations_research.LocalSearchStatistics local_search_statistics = 1;
1865  if (this->_internal_has_local_search_statistics()) {
1866  target = stream->EnsureSpace(target);
1867  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1868  InternalWriteMessage(
1869  1, _Internal::local_search_statistics(this), target, stream);
1870  }
1871 
1872  // .operations_research.ConstraintSolverStatistics constraint_solver_statistics = 2;
1873  if (this->_internal_has_constraint_solver_statistics()) {
1874  target = stream->EnsureSpace(target);
1875  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1876  InternalWriteMessage(
1877  2, _Internal::constraint_solver_statistics(this), target, stream);
1878  }
1879 
1880  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1881  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1882  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1883  }
1884  // @@protoc_insertion_point(serialize_to_array_end:operations_research.SearchStatistics)
1885  return target;
1886 }
1887 
1889 // @@protoc_insertion_point(message_byte_size_start:operations_research.SearchStatistics)
1890  size_t total_size = 0;
1891 
1892  uint32_t cached_has_bits = 0;
1893  // Prevent compiler warnings about cached_has_bits being unused
1894  (void) cached_has_bits;
1895 
1896  // .operations_research.LocalSearchStatistics local_search_statistics = 1;
1897  if (this->_internal_has_local_search_statistics()) {
1898  total_size += 1 +
1899  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1900  *local_search_statistics_);
1901  }
1902 
1903  // .operations_research.ConstraintSolverStatistics constraint_solver_statistics = 2;
1904  if (this->_internal_has_constraint_solver_statistics()) {
1905  total_size += 1 +
1906  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
1907  *constraint_solver_statistics_);
1908  }
1909 
1910  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
1911 }
1912 
1913 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SearchStatistics::_class_data_ = {
1914  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1915  SearchStatistics::MergeImpl
1916 };
1917 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SearchStatistics::GetClassData() const { return &_class_data_; }
1918 
1919 void SearchStatistics::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
1920  const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1921  static_cast<SearchStatistics *>(to)->MergeFrom(
1922  static_cast<const SearchStatistics &>(from));
1923 }
1924 
1925 
1927 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.SearchStatistics)
1928  GOOGLE_DCHECK_NE(&from, this);
1929  uint32_t cached_has_bits = 0;
1930  (void) cached_has_bits;
1931 
1932  if (from._internal_has_local_search_statistics()) {
1933  _internal_mutable_local_search_statistics()->::operations_research::LocalSearchStatistics::MergeFrom(from._internal_local_search_statistics());
1934  }
1935  if (from._internal_has_constraint_solver_statistics()) {
1936  _internal_mutable_constraint_solver_statistics()->::operations_research::ConstraintSolverStatistics::MergeFrom(from._internal_constraint_solver_statistics());
1937  }
1938  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1939 }
1940 
1942 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.SearchStatistics)
1943  if (&from == this) return;
1944  Clear();
1945  MergeFrom(from);
1946 }
1947 
1949  return true;
1950 }
1951 
1952 void SearchStatistics::InternalSwap(SearchStatistics* other) {
1953  using std::swap;
1954  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1955  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
1956  PROTOBUF_FIELD_OFFSET(SearchStatistics, constraint_solver_statistics_)
1957  + sizeof(SearchStatistics::constraint_solver_statistics_)
1958  - PROTOBUF_FIELD_OFFSET(SearchStatistics, local_search_statistics_)>(
1959  reinterpret_cast<char*>(&local_search_statistics_),
1960  reinterpret_cast<char*>(&other->local_search_statistics_));
1961 }
1962 
1963 ::PROTOBUF_NAMESPACE_ID::Metadata SearchStatistics::GetMetadata() const {
1964  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1967 }
1968 
1969 // @@protoc_insertion_point(namespace_scope)
1970 } // namespace operations_research
1971 PROTOBUF_NAMESPACE_OPEN
1972 template<> PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics_FirstSolutionStatistics* Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics_FirstSolutionStatistics >(Arena* arena) {
1973  return Arena::CreateMessageInternal< ::operations_research::LocalSearchStatistics_FirstSolutionStatistics >(arena);
1974 }
1975 template<> PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics* Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics >(Arena* arena) {
1976  return Arena::CreateMessageInternal< ::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics >(arena);
1977 }
1978 template<> PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics* Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics >(Arena* arena) {
1979  return Arena::CreateMessageInternal< ::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics >(arena);
1980 }
1981 template<> PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics* Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics >(Arena* arena) {
1982  return Arena::CreateMessageInternal< ::operations_research::LocalSearchStatistics >(arena);
1983 }
1984 template<> PROTOBUF_NOINLINE ::operations_research::ConstraintSolverStatistics* Arena::CreateMaybeMessage< ::operations_research::ConstraintSolverStatistics >(Arena* arena) {
1985  return Arena::CreateMessageInternal< ::operations_research::ConstraintSolverStatistics >(arena);
1986 }
1987 template<> PROTOBUF_NOINLINE ::operations_research::SearchStatistics* Arena::CreateMaybeMessage< ::operations_research::SearchStatistics >(Arena* arena) {
1988  return Arena::CreateMessageInternal< ::operations_research::SearchStatistics >(arena);
1989 }
1990 PROTOBUF_NAMESPACE_CLOSE
1991 
1992 // @@protoc_insertion_point(global_scope)
1993 #include <google/protobuf/port_undef.inc>
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void CopyFrom(const LocalSearchStatistics_LocalSearchFilterStatistics &from)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::operations_research::LocalSearchStatistics & local_search_statistics(const SearchStatistics *msg)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const SearchStatistics * internal_default_instance()
static const ::operations_research::ConstraintSolverStatistics & constraint_solver_statistics(const SearchStatistics *msg)
void MergeFrom(const LocalSearchStatistics_LocalSearchOperatorStatistics &from)
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Definition: id_map.h:263
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics * Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics_LocalSearchFilterStatistics >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const LocalSearchStatistics &from)
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto_getter()
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto[6]
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const LocalSearchStatistics_FirstSolutionStatistics &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocalSearchStatisticsDefaultTypeInternal _LocalSearchStatistics_default_instance_
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void MergeFrom(const SearchStatistics &from)
void CopyFrom(const LocalSearchStatistics_LocalSearchOperatorStatistics &from)
PROTOBUF_NOINLINE ::operations_research::ConstraintSolverStatistics * Arena::CreateMaybeMessage< ::operations_research::ConstraintSolverStatistics >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics * Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics_LocalSearchOperatorStatistics >(Arena *arena)
void MergeFrom(const LocalSearchStatistics_FirstSolutionStatistics &from)
PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics * Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void MergeFrom(const LocalSearchStatistics_LocalSearchFilterStatistics &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocalSearchStatistics_LocalSearchOperatorStatisticsDefaultTypeInternal _LocalSearchStatistics_LocalSearchOperatorStatistics_default_instance_
void MergeFrom(const ConstraintSolverStatistics &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
friend void swap(LocalSearchStatistics_FirstSolutionStatistics &a, LocalSearchStatistics_FirstSolutionStatistics &b)
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void MergeFrom(const LocalSearchStatistics &from)
PROTOBUF_NOINLINE ::operations_research::SearchStatistics * Arena::CreateMaybeMessage< ::operations_research::SearchStatistics >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
#define CHK_(x)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocalSearchStatistics_LocalSearchFilterStatisticsDefaultTypeInternal _LocalSearchStatistics_LocalSearchFilterStatistics_default_instance_
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::LocalSearchStatistics_FirstSolutionStatistics * Arena::CreateMaybeMessage< ::operations_research::LocalSearchStatistics_FirstSolutionStatistics >(Arena *arena)
const uint32_t TableStruct_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto_once
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocalSearchStatistics_FirstSolutionStatisticsDefaultTypeInternal _LocalSearchStatistics_FirstSolutionStatistics_default_instance_
void CopyFrom(const ConstraintSolverStatistics &from)
Collection of objects used to extend the Constraint Solver library.
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SearchStatisticsDefaultTypeInternal _SearchStatistics_default_instance_
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
uint8_t * _InternalSerialize(uint8_t *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintSolverStatisticsDefaultTypeInternal _ConstraintSolverStatistics_default_instance_
void CopyFrom(const SearchStatistics &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const ** file_level_enum_descriptors_ortools_2fconstraint_5fsolver_2fsearch_5fstats_2eproto