4 #ifndef GOOGLE_PROTOBUF_INCLUDED_ignition_2fmsgs_2fdataframe_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_ignition_2fmsgs_2fdataframe_2eproto
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
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.
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>
33 #include <google/protobuf/extension_set.h>
34 #include <google/protobuf/unknown_field_set.h>
37 #pragma GCC system_header
40 #pragma warning(disable: 4244 4267 4100 4244 4512 4127 4068 4275 4251)
43 #include <sys/sysmacros.h>
48 #include <google/protobuf/port_def.inc>
49 #define PROTOBUF_INTERNAL_EXPORT_ignition_2fmsgs_2fdataframe_2eproto IGNITION_MSGS_VISIBLE
50 PROTOBUF_NAMESPACE_OPEN
54 PROTOBUF_NAMESPACE_CLOSE
58 static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
60 static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
62 static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
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[];
72 class DataframeDefaultTypeInternal;
76 PROTOBUF_NAMESPACE_OPEN
77 template<> IGNITION_MSGS_VISIBLE ::ignition::msgs::Dataframe* Arena::CreateMaybeMessage<::ignition::msgs::Dataframe>(Arena*);
78 PROTOBUF_NAMESPACE_CLOSE
84 class IGNITION_MSGS_VISIBLE Dataframe PROTOBUF_FINAL :
85 public ::PROTOBUF_NAMESPACE_ID::Message {
93 *
this = ::std::move(from);
96 inline Dataframe&
operator=(
const Dataframe& from) {
100 inline Dataframe&
operator=(Dataframe&& from) noexcept {
101 if (GetArena() == from.GetArena()) {
102 if (
this != &from) InternalSwap(&from);
109 static const ::PROTOBUF_NAMESPACE_ID::Descriptor*
descriptor() {
110 return GetDescriptor();
113 return GetMetadataStatic().descriptor;
116 return GetMetadataStatic().reflection;
122 return reinterpret_cast<const Dataframe*
>(
125 static constexpr
int kIndexInFileMessages =
128 friend void swap(Dataframe& a, Dataframe& b) {
131 inline void Swap(Dataframe* other) {
132 if (other ==
this)
return;
133 if (GetArena() == other->GetArena()) {
136 ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(
this, other);
140 if (other ==
this)
return;
141 GOOGLE_DCHECK(GetArena() == other->GetArena());
147 inline Dataframe*
New() const final {
148 return CreateMaybeMessage<Dataframe>(
nullptr);
151 Dataframe*
New(::PROTOBUF_NAMESPACE_ID::Arena* arena)
const final {
152 return CreateMaybeMessage<Dataframe>(arena);
154 void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from)
final;
155 void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from)
final;
158 PROTOBUF_ATTRIBUTE_REINITIALIZES
void Clear() final;
159 bool IsInitialized() const final;
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(); }
168 inline void SharedCtor();
169 inline void SharedDtor();
170 void SetCachedSize(
int size)
const final;
171 void InternalSwap(Dataframe* other);
172 friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
173 static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
174 return "ignition.msgs.Dataframe";
177 explicit Dataframe(::PROTOBUF_NAMESPACE_ID::Arena* arena);
179 static void ArenaDtor(
void*
object);
180 inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
185 static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
197 kSrcAddressFieldNumber = 2,
198 kDstAddressFieldNumber = 3,
199 kDataFieldNumber = 4,
200 kHeaderFieldNumber = 1,
212 GOOGLE_PROTOBUF_RUNTIME_DEPRECATED(
"The unsafe_arena_ accessors for"
213 " string fields are deprecated and will be removed in a"
215 std::
string* unsafe_arena_release_src_address();
216 GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
217 "
string fields are deprecated and will be removed in a"
219 void unsafe_arena_set_allocated_src_address(
220 std::
string* src_address);
222 const
std::
string& _internal_src_address() const;
223 void _internal_set_src_address(const
std::
string& value);
224 std::
string* _internal_mutable_src_address();
228 void clear_dst_address();
229 const
std::
string& dst_address() const;
230 void set_dst_address(const
std::
string& value);
231 void set_dst_address(
std::
string&& value);
232 void set_dst_address(const
char* value);
233 void set_dst_address(const
char* value,
size_t size);
234 std::
string* mutable_dst_address();
235 std::
string* release_dst_address();
236 void set_allocated_dst_address(
std::
string* dst_address);
237 GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
238 "
string fields are deprecated and will be removed in a"
240 std::
string* unsafe_arena_release_dst_address();
241 GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
242 "
string fields are deprecated and will be removed in a"
244 void unsafe_arena_set_allocated_dst_address(
245 std::
string* dst_address);
247 const
std::
string& _internal_dst_address() const;
248 void _internal_set_dst_address(const
std::
string& value);
249 std::
string* _internal_mutable_dst_address();
254 const
std::
string& data() const;
255 void set_data(const
std::
string& value);
256 void set_data(
std::
string&& value);
257 void set_data(const
char* value);
258 void set_data(const
void* value,
size_t size);
259 std::
string* mutable_data();
260 std::
string* release_data();
261 void set_allocated_data(
std::
string* data);
262 GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
263 "
string fields are deprecated and will be removed in a"
265 std::
string* unsafe_arena_release_data();
266 GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
267 "
string fields are deprecated and will be removed in a"
269 void unsafe_arena_set_allocated_data(
272 const
std::
string& _internal_data() const;
273 void _internal_set_data(const
std::
string& value);
274 std::
string* _internal_mutable_data();
278 bool has_header() const;
280 bool _internal_has_header() const;
286 void set_allocated_header(::
ignition::msgs::Header* header);
288 const ::
ignition::msgs::Header& _internal_header() const;
289 ::
ignition::msgs::Header* _internal_mutable_header();
291 void unsafe_arena_set_allocated_header(
293 ::
ignition::msgs::Header* unsafe_arena_release_header();
299 template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
300 typedef
void InternalArenaConstructable_;
301 typedef
void DestructorSkippable_;
302 ::PROTOBUF_NAMESPACE_ID::
internal::ArenaStringPtr src_address_;
303 ::PROTOBUF_NAMESPACE_ID::
internal::ArenaStringPtr dst_address_;
304 ::PROTOBUF_NAMESPACE_ID::
internal::ArenaStringPtr data_;
306 mutable ::PROTOBUF_NAMESPACE_ID::
internal::CachedSize _cached_size_;
315 #pragma GCC diagnostic push
316 #pragma GCC diagnostic ignored "-Wstrict-aliasing"
321 inline bool Dataframe::_internal_has_header()
const {
322 return this != internal_default_instance() && header_ !=
nullptr;
324 inline bool Dataframe::has_header()
const {
325 return _internal_has_header();
327 inline const ::ignition::msgs::Header& Dataframe::_internal_header()
const {
328 const ::ignition::msgs::Header* p = header_;
329 return p !=
nullptr ? *p : *
reinterpret_cast<const ::ignition::msgs::Header*
>(
332 inline const ::ignition::msgs::Header& Dataframe::header()
const {
334 return _internal_header();
336 inline void Dataframe::unsafe_arena_set_allocated_header(
337 ::ignition::msgs::Header* header) {
338 if (GetArena() ==
nullptr) {
339 delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*
>(header_);
349 inline ::ignition::msgs::Header* Dataframe::release_header() {
350 auto temp = unsafe_arena_release_header();
351 if (GetArena() !=
nullptr) {
352 temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
356 inline ::ignition::msgs::Header* Dataframe::unsafe_arena_release_header() {
359 ::ignition::msgs::Header* temp = header_;
363 inline ::ignition::msgs::Header* Dataframe::_internal_mutable_header() {
365 if (header_ ==
nullptr) {
366 auto* p = CreateMaybeMessage<::ignition::msgs::Header>(GetArena());
371 inline ::ignition::msgs::Header* Dataframe::mutable_header() {
373 return _internal_mutable_header();
375 inline void Dataframe::set_allocated_header(::ignition::msgs::Header* header) {
376 ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
377 if (message_arena ==
nullptr) {
378 delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*
>(header_);
381 ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
382 reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*
>(header)->GetArena();
383 if (message_arena != submessage_arena) {
384 header = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
385 message_arena, header, submessage_arena);
396 inline void Dataframe::clear_src_address() {
397 src_address_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
399 inline const std::string& Dataframe::src_address()
const {
401 return _internal_src_address();
403 inline void Dataframe::set_src_address(
const std::string& value) {
404 _internal_set_src_address(value);
407 inline std::string* Dataframe::mutable_src_address() {
409 return _internal_mutable_src_address();
411 inline const std::string& Dataframe::_internal_src_address()
const {
412 return src_address_.Get();
414 inline void Dataframe::_internal_set_src_address(
const std::string& value) {
416 src_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
418 inline void Dataframe::set_src_address(
std::string&& value) {
421 &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::move(value), GetArena());
424 inline void Dataframe::set_src_address(
const char* value) {
425 GOOGLE_DCHECK(value !=
nullptr);
427 src_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::string(value),
431 inline void Dataframe::set_src_address(
const char* value,
434 src_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::string(
435 reinterpret_cast<const char*
>(value), size), GetArena());
438 inline std::string* Dataframe::_internal_mutable_src_address() {
440 return src_address_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
442 inline std::string* Dataframe::release_src_address() {
444 return src_address_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
446 inline void Dataframe::set_allocated_src_address(
std::string* src_address) {
447 if (src_address !=
nullptr) {
452 src_address_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), src_address,
456 inline std::string* Dataframe::unsafe_arena_release_src_address() {
458 GOOGLE_DCHECK(GetArena() !=
nullptr);
460 return src_address_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
463 inline void Dataframe::unsafe_arena_set_allocated_src_address(
465 GOOGLE_DCHECK(GetArena() !=
nullptr);
466 if (src_address !=
nullptr) {
471 src_address_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
472 src_address, GetArena());
477 inline void Dataframe::clear_dst_address() {
478 dst_address_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
480 inline const std::string& Dataframe::dst_address()
const {
482 return _internal_dst_address();
484 inline void Dataframe::set_dst_address(
const std::string& value) {
485 _internal_set_dst_address(value);
488 inline std::string* Dataframe::mutable_dst_address() {
490 return _internal_mutable_dst_address();
492 inline const std::string& Dataframe::_internal_dst_address()
const {
493 return dst_address_.Get();
495 inline void Dataframe::_internal_set_dst_address(
const std::string& value) {
497 dst_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
499 inline void Dataframe::set_dst_address(
std::string&& value) {
502 &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::move(value), GetArena());
505 inline void Dataframe::set_dst_address(
const char* value) {
506 GOOGLE_DCHECK(value !=
nullptr);
508 dst_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::string(value),
512 inline void Dataframe::set_dst_address(
const char* value,
515 dst_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::string(
516 reinterpret_cast<const char*
>(value), size), GetArena());
519 inline std::string* Dataframe::_internal_mutable_dst_address() {
521 return dst_address_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
523 inline std::string* Dataframe::release_dst_address() {
525 return dst_address_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
527 inline void Dataframe::set_allocated_dst_address(
std::string* dst_address) {
528 if (dst_address !=
nullptr) {
533 dst_address_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), dst_address,
537 inline std::string* Dataframe::unsafe_arena_release_dst_address() {
539 GOOGLE_DCHECK(GetArena() !=
nullptr);
541 return dst_address_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
544 inline void Dataframe::unsafe_arena_set_allocated_dst_address(
546 GOOGLE_DCHECK(GetArena() !=
nullptr);
547 if (dst_address !=
nullptr) {
552 dst_address_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
553 dst_address, GetArena());
558 inline void Dataframe::clear_data() {
559 data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
561 inline const std::string& Dataframe::data()
const {
563 return _internal_data();
565 inline void Dataframe::set_data(
const std::string& value) {
566 _internal_set_data(value);
571 return _internal_mutable_data();
573 inline const std::string& Dataframe::_internal_data()
const {
576 inline void Dataframe::_internal_set_data(
const std::string& value) {
578 data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
580 inline void Dataframe::set_data(
std::string&& value) {
583 &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::move(value), GetArena());
586 inline void Dataframe::set_data(
const char* value) {
587 GOOGLE_DCHECK(value !=
nullptr);
589 data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::string(value),
593 inline void Dataframe::set_data(
const void* value,
596 data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::
std::string(
597 reinterpret_cast<const char*
>(value), size), GetArena());
600 inline std::string* Dataframe::_internal_mutable_data() {
602 return data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
606 return data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
608 inline void Dataframe::set_allocated_data(
std::string* data) {
609 if (data !=
nullptr) {
614 data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), data,
618 inline std::string* Dataframe::unsafe_arena_release_data() {
620 GOOGLE_DCHECK(GetArena() !=
nullptr);
622 return data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
625 inline void Dataframe::unsafe_arena_set_allocated_data(
627 GOOGLE_DCHECK(GetArena() !=
nullptr);
628 if (data !=
nullptr) {
633 data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
639 #pragma GCC diagnostic pop
656 #include <google/protobuf/port_undef.inc>
IGNITION_MSGS_VISIBLEconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ignition_2fmsgs_2fdataframe_2eproto
static void InitAsDefaultInstance()
void UnsafeArenaSwap(Dataframe *other)
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:139
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:115
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
std::string * mutable_src_address()
void CopyFrom(const Dataframe &from)
std::string * release_src_address()
void set_src_address(const std::string &value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:109
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
Dataframe * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:151
void set_src_address(const char *value, size_t size)
Dataframe & operator=(Dataframe &&from) noexcept
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:100
void set_src_address(std::string &&value)
Dataframe * New() const final
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:147
static const Dataframe & default_instance()
void set_allocated_src_address(std::string *src_address)
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
Dataframe(Dataframe &&from) noexcept
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:91
Dataframe()
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:87
Dataframe & operator=(const Dataframe &from)
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:96
Dataframe(const Dataframe &from)
Dataframe(::PROTOBUF_NAMESPACE_ID::Arena *arena)
friend void swap(Dataframe &a, Dataframe &b)
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:128
const std::string & src_address() const
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:112
void MergeFrom(const Dataframe &from)
void Swap(Dataframe *other)
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:131
static const Dataframe * internal_default_instance()
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:121
void set_src_address(const char *value)
std::unique_ptr< Dataframe > DataframeUniquePtr
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:642
std::unique_ptr< const Dataframe > ConstDataframeUniquePtr
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:643
std::shared_ptr< const Dataframe > ConstDataframeSharedPtr
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:645
std::shared_ptr< Dataframe > DataframeSharedPtr
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.pb.h:644
IGNITION_MSGS_VISIBLE HeaderDefaultTypeInternal _Header_default_instance_
IGNITION_MSGS_VISIBLE DataframeDefaultTypeInternal _Dataframe_default_instance_
Definition: build/ignition-msgs8/include/ignition/msgs/actor.pb.h:53
Definition: build/ignition-msgs8/include/ignition/msgs/dataframe.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)