Gazebo Msgs

API Reference

8.7.1
build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ignition/msgs/stringmsg_v.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_ignition_2fmsgs_2fstringmsg_5fv_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_ignition_2fmsgs_2fstringmsg_5fv_2eproto
6 
7 #include <limits>
8 #include <string>
9 
10 #include <google/protobuf/port_def.inc>
11 #if PROTOBUF_VERSION < 3012000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 3012004 < PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/port_undef.inc>
23 #include <google/protobuf/io/coded_stream.h>
24 #include <google/protobuf/arena.h>
25 #include <google/protobuf/arenastring.h>
26 #include <google/protobuf/generated_message_table_driven.h>
27 #include <google/protobuf/generated_message_util.h>
28 #include <google/protobuf/inlined_string_field.h>
29 #include <google/protobuf/metadata_lite.h>
30 #include <google/protobuf/generated_message_reflection.h>
31 #include <google/protobuf/message.h>
32 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
33 #include <google/protobuf/extension_set.h> // IWYU pragma: export
34 #include <google/protobuf/unknown_field_set.h>
36 #ifndef _MSC_VER
37 #pragma GCC system_header
38 #else
39 #pragma warning(push)
40 #pragma warning(disable: 4244 4267 4100 4244 4512 4127 4068 4275 4251)
41 #endif
42 #ifdef __linux__
43 #include <sys/sysmacros.h>
44 #endif
45 #include <memory>
46 #include <ignition/msgs/Export.hh>
47 // @@protoc_insertion_point(includes)
48 #include <google/protobuf/port_def.inc>
49 #define PROTOBUF_INTERNAL_EXPORT_ignition_2fmsgs_2fstringmsg_5fv_2eproto IGNITION_MSGS_VISIBLE
50 PROTOBUF_NAMESPACE_OPEN
51 namespace internal {
52 class AnyMetadata;
53 } // namespace internal
54 PROTOBUF_NAMESPACE_CLOSE
55 
56 // Internal implementation detail -- do not use these members.
58  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
59  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
60  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
61  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
62  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
63  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
64  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
65  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
66  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
67 };
68 extern IGNITION_MSGS_VISIBLE const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ignition_2fmsgs_2fstringmsg_5fv_2eproto;
69 namespace ignition {
70 namespace msgs {
71 class StringMsg_V;
72 class StringMsg_VDefaultTypeInternal;
73 IGNITION_MSGS_VISIBLE extern StringMsg_VDefaultTypeInternal _StringMsg_V_default_instance_;
74 } // namespace msgs
75 } // namespace ignition
76 PROTOBUF_NAMESPACE_OPEN
77 template<> IGNITION_MSGS_VISIBLE ::ignition::msgs::StringMsg_V* Arena::CreateMaybeMessage<::ignition::msgs::StringMsg_V>(Arena*);
78 PROTOBUF_NAMESPACE_CLOSE
79 namespace ignition {
80 namespace msgs {
81 
82 // ===================================================================
83 
84 class IGNITION_MSGS_VISIBLE StringMsg_V PROTOBUF_FINAL :
85  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:ignition.msgs.StringMsg_V) */ {
86  public:
87  inline StringMsg_V() : StringMsg_V(nullptr) {};
88  virtual ~StringMsg_V();
89 
90  StringMsg_V(const StringMsg_V& from);
91  StringMsg_V(StringMsg_V&& from) noexcept
92  : StringMsg_V() {
93  *this = ::std::move(from);
94  }
95 
96  inline StringMsg_V& operator=(const StringMsg_V& from) {
97  CopyFrom(from);
98  return *this;
99  }
100  inline StringMsg_V& operator=(StringMsg_V&& from) noexcept {
101  if (GetArena() == from.GetArena()) {
102  if (this != &from) InternalSwap(&from);
103  } else {
104  CopyFrom(from);
105  }
106  return *this;
107  }
108 
109  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
110  return GetDescriptor();
111  }
112  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
113  return GetMetadataStatic().descriptor;
114  }
115  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
116  return GetMetadataStatic().reflection;
117  }
118  static const StringMsg_V& default_instance();
119 
120  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
121  static inline const StringMsg_V* internal_default_instance() {
122  return reinterpret_cast<const StringMsg_V*>(
124  }
125  static constexpr int kIndexInFileMessages =
126  0;
127 
128  friend void swap(StringMsg_V& a, StringMsg_V& b) {
129  a.Swap(&b);
130  }
131  inline void Swap(StringMsg_V* other) {
132  if (other == this) return;
133  if (GetArena() == other->GetArena()) {
134  InternalSwap(other);
135  } else {
136  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
137  }
138  }
139  void UnsafeArenaSwap(StringMsg_V* other) {
140  if (other == this) return;
141  GOOGLE_DCHECK(GetArena() == other->GetArena());
142  InternalSwap(other);
143  }
144 
145  // implements Message ----------------------------------------------
146 
147  inline StringMsg_V* New() const final {
148  return CreateMaybeMessage<StringMsg_V>(nullptr);
149  }
150 
151  StringMsg_V* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
152  return CreateMaybeMessage<StringMsg_V>(arena);
153  }
154  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
155  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
156  void CopyFrom(const StringMsg_V& from);
157  void MergeFrom(const StringMsg_V& from);
158  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
159  bool IsInitialized() const final;
160 
161  size_t ByteSizeLong() const final;
162  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
163  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
164  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
165  int GetCachedSize() const final { return _cached_size_.Get(); }
166 
167  private:
168  inline void SharedCtor();
169  inline void SharedDtor();
170  void SetCachedSize(int size) const final;
171  void InternalSwap(StringMsg_V* other);
172  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
173  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
174  return "ignition.msgs.StringMsg_V";
175  }
176  protected:
177  explicit StringMsg_V(::PROTOBUF_NAMESPACE_ID::Arena* arena);
178  private:
179  static void ArenaDtor(void* object);
180  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
181  public:
182 
183  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
184  private:
185  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
186  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_ignition_2fmsgs_2fstringmsg_5fv_2eproto);
187  return ::descriptor_table_ignition_2fmsgs_2fstringmsg_5fv_2eproto.file_level_metadata[kIndexInFileMessages];
188  }
189 
190  public:
191 
192  // nested types ----------------------------------------------------
193 
194  // accessors -------------------------------------------------------
195 
196  enum : int {
197  kDataFieldNumber = 2,
198  kHeaderFieldNumber = 1,
199  };
200  // repeated string data = 2;
201  int data_size() const;
202  private:
203  int _internal_data_size() const;
204  public:
205  void clear_data();
206  const std::string& data(int index) const;
208  void set_data(int index, const std::string& value);
209  void set_data(int index, std::string&& value);
210  void set_data(int index, const char* value);
211  void set_data(int index, const char* value, size_t size);
213  void add_data(const std::string& value);
214  void add_data(std::string&& value);
215  void add_data(const char* value);
216  void add_data(const char* value, size_t size);
217  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& data() const;
218  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_data();
219  private:
220  const std::string& _internal_data(int index) const;
221  std::string* _internal_add_data();
222  public:
223 
224  // .ignition.msgs.Header header = 1;
225  bool has_header() const;
226  private:
227  bool _internal_has_header() const;
228  public:
229  void clear_header();
230  const ::ignition::msgs::Header& header() const;
231  ::ignition::msgs::Header* release_header();
232  ::ignition::msgs::Header* mutable_header();
233  void set_allocated_header(::ignition::msgs::Header* header);
234  private:
235  const ::ignition::msgs::Header& _internal_header() const;
236  ::ignition::msgs::Header* _internal_mutable_header();
237  public:
239  ::ignition::msgs::Header* header);
240  ::ignition::msgs::Header* unsafe_arena_release_header();
241 
242  // @@protoc_insertion_point(class_scope:ignition.msgs.StringMsg_V)
243  private:
244  class _Internal;
245 
246  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
247  typedef void InternalArenaConstructable_;
248  typedef void DestructorSkippable_;
249  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> data_;
250  ::ignition::msgs::Header* header_;
251  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
252  friend struct ::TableStruct_ignition_2fmsgs_2fstringmsg_5fv_2eproto;
253 };
254 // ===================================================================
255 
256 
257 // ===================================================================
258 
259 #ifdef __GNUC__
260  #pragma GCC diagnostic push
261  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
262 #endif // __GNUC__
263 // StringMsg_V
264 
265 // .ignition.msgs.Header header = 1;
266 inline bool StringMsg_V::_internal_has_header() const {
267  return this != internal_default_instance() && header_ != nullptr;
268 }
269 inline bool StringMsg_V::has_header() const {
270  return _internal_has_header();
271 }
272 inline const ::ignition::msgs::Header& StringMsg_V::_internal_header() const {
273  const ::ignition::msgs::Header* p = header_;
274  return p != nullptr ? *p : *reinterpret_cast<const ::ignition::msgs::Header*>(
276 }
277 inline const ::ignition::msgs::Header& StringMsg_V::header() const {
278  // @@protoc_insertion_point(field_get:ignition.msgs.StringMsg_V.header)
279  return _internal_header();
280 }
281 inline void StringMsg_V::unsafe_arena_set_allocated_header(
282  ::ignition::msgs::Header* header) {
283  if (GetArena() == nullptr) {
284  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_);
285  }
286  header_ = header;
287  if (header) {
288 
289  } else {
290 
291  }
292  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:ignition.msgs.StringMsg_V.header)
293 }
294 inline ::ignition::msgs::Header* StringMsg_V::release_header() {
295  auto temp = unsafe_arena_release_header();
296  if (GetArena() != nullptr) {
297  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
298  }
299  return temp;
300 }
301 inline ::ignition::msgs::Header* StringMsg_V::unsafe_arena_release_header() {
302  // @@protoc_insertion_point(field_release:ignition.msgs.StringMsg_V.header)
303 
304  ::ignition::msgs::Header* temp = header_;
305  header_ = nullptr;
306  return temp;
307 }
308 inline ::ignition::msgs::Header* StringMsg_V::_internal_mutable_header() {
309 
310  if (header_ == nullptr) {
311  auto* p = CreateMaybeMessage<::ignition::msgs::Header>(GetArena());
312  header_ = p;
313  }
314  return header_;
315 }
316 inline ::ignition::msgs::Header* StringMsg_V::mutable_header() {
317  // @@protoc_insertion_point(field_mutable:ignition.msgs.StringMsg_V.header)
318  return _internal_mutable_header();
319 }
320 inline void StringMsg_V::set_allocated_header(::ignition::msgs::Header* header) {
321  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
322  if (message_arena == nullptr) {
323  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(header_);
324  }
325  if (header) {
326  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
327  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(header)->GetArena();
328  if (message_arena != submessage_arena) {
329  header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
330  message_arena, header, submessage_arena);
331  }
332 
333  } else {
334 
335  }
336  header_ = header;
337  // @@protoc_insertion_point(field_set_allocated:ignition.msgs.StringMsg_V.header)
338 }
339 
340 // repeated string data = 2;
341 inline int StringMsg_V::_internal_data_size() const {
342  return data_.size();
343 }
344 inline int StringMsg_V::data_size() const {
345  return _internal_data_size();
346 }
347 inline void StringMsg_V::clear_data() {
348  data_.Clear();
349 }
350 inline std::string* StringMsg_V::add_data() {
351  // @@protoc_insertion_point(field_add_mutable:ignition.msgs.StringMsg_V.data)
352  return _internal_add_data();
353 }
354 inline const std::string& StringMsg_V::_internal_data(int index) const {
355  return data_.Get(index);
356 }
357 inline const std::string& StringMsg_V::data(int index) const {
358  // @@protoc_insertion_point(field_get:ignition.msgs.StringMsg_V.data)
359  return _internal_data(index);
360 }
361 inline std::string* StringMsg_V::mutable_data(int index) {
362  // @@protoc_insertion_point(field_mutable:ignition.msgs.StringMsg_V.data)
363  return data_.Mutable(index);
364 }
365 inline void StringMsg_V::set_data(int index, const std::string& value) {
366  // @@protoc_insertion_point(field_set:ignition.msgs.StringMsg_V.data)
367  data_.Mutable(index)->assign(value);
368 }
369 inline void StringMsg_V::set_data(int index, std::string&& value) {
370  // @@protoc_insertion_point(field_set:ignition.msgs.StringMsg_V.data)
371  data_.Mutable(index)->assign(std::move(value));
372 }
373 inline void StringMsg_V::set_data(int index, const char* value) {
374  GOOGLE_DCHECK(value != nullptr);
375  data_.Mutable(index)->assign(value);
376  // @@protoc_insertion_point(field_set_char:ignition.msgs.StringMsg_V.data)
377 }
378 inline void StringMsg_V::set_data(int index, const char* value, size_t size) {
379  data_.Mutable(index)->assign(
380  reinterpret_cast<const char*>(value), size);
381  // @@protoc_insertion_point(field_set_pointer:ignition.msgs.StringMsg_V.data)
382 }
383 inline std::string* StringMsg_V::_internal_add_data() {
384  return data_.Add();
385 }
386 inline void StringMsg_V::add_data(const std::string& value) {
387  data_.Add()->assign(value);
388  // @@protoc_insertion_point(field_add:ignition.msgs.StringMsg_V.data)
389 }
390 inline void StringMsg_V::add_data(std::string&& value) {
391  data_.Add(std::move(value));
392  // @@protoc_insertion_point(field_add:ignition.msgs.StringMsg_V.data)
393 }
394 inline void StringMsg_V::add_data(const char* value) {
395  GOOGLE_DCHECK(value != nullptr);
396  data_.Add()->assign(value);
397  // @@protoc_insertion_point(field_add_char:ignition.msgs.StringMsg_V.data)
398 }
399 inline void StringMsg_V::add_data(const char* value, size_t size) {
400  data_.Add()->assign(reinterpret_cast<const char*>(value), size);
401  // @@protoc_insertion_point(field_add_pointer:ignition.msgs.StringMsg_V.data)
402 }
403 inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
404 StringMsg_V::data() const {
405  // @@protoc_insertion_point(field_list:ignition.msgs.StringMsg_V.data)
406  return data_;
407 }
408 inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
409 StringMsg_V::mutable_data() {
410  // @@protoc_insertion_point(field_mutable_list:ignition.msgs.StringMsg_V.data)
411  return &data_;
412 }
413 
414 #ifdef __GNUC__
415  #pragma GCC diagnostic pop
416 #endif // __GNUC__
417 
422 // @@protoc_insertion_point(namespace_scope)
423 
424 } // namespace msgs
425 } // namespace ignition
426 
427 #ifdef _MSC_VER
428 #pragma warning(pop)
429 #endif
430 // @@protoc_insertion_point(global_scope)
431 
432 #include <google/protobuf/port_undef.inc>
433 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ignition_2fmsgs_2fstringmsg_5fv_2eproto
T assign(T... args)
IGNITION_MSGS_VISIBLEconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ignition_2fmsgs_2fstringmsg_5fv_2eproto
StringMsg_V * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:151
StringMsg_V(const StringMsg_V &from)
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:115
friend void swap(StringMsg_V &a, StringMsg_V &b)
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:128
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
StringMsg_V & operator=(StringMsg_V &&from) noexcept
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:100
::ignition::msgs::Header * release_header()
::ignition::msgs::Header * mutable_header()
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:109
void set_data(int index, std::string &&value)
void add_data(const std::string &value)
static const StringMsg_V & default_instance()
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
StringMsg_V()
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:87
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< std::string > * mutable_data()
void unsafe_arena_set_allocated_header(::ignition::msgs::Header *header)
const std::string & data(int index) const
static const StringMsg_V * internal_default_instance()
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:121
void CopyFrom(const StringMsg_V &from)
void UnsafeArenaSwap(StringMsg_V *other)
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:139
StringMsg_V & operator=(const StringMsg_V &from)
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:96
std::string * mutable_data(int index)
::ignition::msgs::Header * unsafe_arena_release_header()
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
StringMsg_V(StringMsg_V &&from) noexcept
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:91
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< std::string > & data() const
void set_allocated_header(::ignition::msgs::Header *header)
void MergeFrom(const StringMsg_V &from)
void Swap(StringMsg_V *other)
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:131
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void set_data(int index, const char *value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:112
StringMsg_V(::PROTOBUF_NAMESPACE_ID::Arena *arena)
void set_data(int index, const char *value, size_t size)
void set_data(int index, const std::string &value)
void add_data(std::string &&value)
StringMsg_V * New() const final
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:147
const ::ignition::msgs::Header & header() const
void add_data(const char *value, size_t size)
void add_data(const char *value)
T move(T... args)
std::shared_ptr< StringMsg_V > StringMsg_VSharedPtr
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:420
std::unique_ptr< StringMsg_V > StringMsg_VUniquePtr
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:418
std::shared_ptr< const StringMsg_V > ConstStringMsg_VSharedPtr
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:421
IGNITION_MSGS_VISIBLE StringMsg_VDefaultTypeInternal _StringMsg_V_default_instance_
IGNITION_MSGS_VISIBLE HeaderDefaultTypeInternal _Header_default_instance_
std::unique_ptr< const StringMsg_V > ConstStringMsg_VUniquePtr
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:419
Definition: build/ignition-msgs8/include/ignition/msgs/actor.pb.h:53
Definition: build/ignition-msgs8/include/ignition/msgs/stringmsg_v.pb.h:57
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)