Goby3  3.1.5
2024.05.14
ais.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: goby/util/protobuf/ais.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_goby_2futil_2fprotobuf_2fais_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_goby_2futil_2fprotobuf_2fais_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>
32 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
33 #include <google/protobuf/extension_set.h> // IWYU pragma: export
34 #include <google/protobuf/generated_enum_reflection.h>
35 #include <google/protobuf/unknown_field_set.h>
36 #include "dccl/option_extensions.pb.h"
37 #include <boost/units/quantity.hpp>
38 #include <boost/units/absolute.hpp>
39 #include <boost/units/dimensionless_type.hpp>
40 #include <boost/units/make_scaled_unit.hpp>
41 
42 #include <boost/units/systems/angle/degrees.hpp>
43 
44 #include <boost/units/systems/si.hpp>
45 // @@protoc_insertion_point(includes)
46 #include <google/protobuf/port_def.inc>
47 #define PROTOBUF_INTERNAL_EXPORT_goby_2futil_2fprotobuf_2fais_2eproto
48 PROTOBUF_NAMESPACE_OPEN
49 namespace internal {
50 class AnyMetadata;
51 } // namespace internal
52 PROTOBUF_NAMESPACE_CLOSE
53 
54 // Internal implementation detail -- do not use these members.
56  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
57  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
58  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
59  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
60  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2]
61  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
62  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
63  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
65 };
66 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_goby_2futil_2fprotobuf_2fais_2eproto;
67 namespace goby {
68 namespace util {
69 namespace ais {
70 namespace protobuf {
71 class Position;
72 class PositionDefaultTypeInternal;
73 extern PositionDefaultTypeInternal _Position_default_instance_;
74 class Voyage;
75 class VoyageDefaultTypeInternal;
76 extern VoyageDefaultTypeInternal _Voyage_default_instance_;
77 } // namespace protobuf
78 } // namespace ais
79 } // namespace util
80 } // namespace goby
81 PROTOBUF_NAMESPACE_OPEN
82 template<> ::goby::util::ais::protobuf::Position* Arena::CreateMaybeMessage<::goby::util::ais::protobuf::Position>(Arena*);
83 template<> ::goby::util::ais::protobuf::Voyage* Arena::CreateMaybeMessage<::goby::util::ais::protobuf::Voyage>(Arena*);
84 PROTOBUF_NAMESPACE_CLOSE
85 namespace goby {
86 namespace util {
87 namespace ais {
88 namespace protobuf {
89 
90 enum Position_TurnInfo : int {
96 };
97 bool Position_TurnInfo_IsValid(int value);
101 
102 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Position_TurnInfo_descriptor();
103 template<typename T>
104 inline const std::string& Position_TurnInfo_Name(T enum_t_value) {
105  static_assert(::std::is_same<T, Position_TurnInfo>::value ||
106  ::std::is_integral<T>::value,
107  "Incorrect type passed to function Position_TurnInfo_Name.");
108  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
109  Position_TurnInfo_descriptor(), enum_t_value);
110 }
112  const std::string& name, Position_TurnInfo* value) {
113  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Position_TurnInfo>(
114  Position_TurnInfo_descriptor(), name, value);
115 }
119 };
124 
125 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Position_PositionAccuracy_descriptor();
126 template<typename T>
127 inline const std::string& Position_PositionAccuracy_Name(T enum_t_value) {
128  static_assert(::std::is_same<T, Position_PositionAccuracy>::value ||
129  ::std::is_integral<T>::value,
130  "Incorrect type passed to function Position_PositionAccuracy_Name.");
131  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
132  Position_PositionAccuracy_descriptor(), enum_t_value);
133 }
135  const std::string& name, Position_PositionAccuracy* value) {
136  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Position_PositionAccuracy>(
137  Position_PositionAccuracy_descriptor(), name, value);
138 }
139 enum Voyage_ShipType : int {
240 };
241 bool Voyage_ShipType_IsValid(int value);
245 
246 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Voyage_ShipType_descriptor();
247 template<typename T>
248 inline const std::string& Voyage_ShipType_Name(T enum_t_value) {
249  static_assert(::std::is_same<T, Voyage_ShipType>::value ||
250  ::std::is_integral<T>::value,
251  "Incorrect type passed to function Voyage_ShipType_Name.");
252  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
253  Voyage_ShipType_descriptor(), enum_t_value);
254 }
256  const std::string& name, Voyage_ShipType* value) {
257  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Voyage_ShipType>(
258  Voyage_ShipType_descriptor(), name, value);
259 }
260 enum Voyage_FixType : int {
270 };
271 bool Voyage_FixType_IsValid(int value);
275 
276 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Voyage_FixType_descriptor();
277 template<typename T>
278 inline const std::string& Voyage_FixType_Name(T enum_t_value) {
279  static_assert(::std::is_same<T, Voyage_FixType>::value ||
280  ::std::is_integral<T>::value,
281  "Incorrect type passed to function Voyage_FixType_Name.");
282  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
283  Voyage_FixType_descriptor(), enum_t_value);
284 }
286  const std::string& name, Voyage_FixType* value) {
287  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Voyage_FixType>(
288  Voyage_FixType_descriptor(), name, value);
289 }
290 enum Status : int {
307 };
308 bool Status_IsValid(int value);
311 constexpr int Status_ARRAYSIZE = Status_MAX + 1;
312 
313 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Status_descriptor();
314 template<typename T>
315 inline const std::string& Status_Name(T enum_t_value) {
316  static_assert(::std::is_same<T, Status>::value ||
317  ::std::is_integral<T>::value,
318  "Incorrect type passed to function Status_Name.");
319  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
320  Status_descriptor(), enum_t_value);
321 }
322 inline bool Status_Parse(
323  const std::string& name, Status* value) {
324  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Status>(
325  Status_descriptor(), name, value);
326 }
327 // ===================================================================
328 
329 class Position PROTOBUF_FINAL :
330  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.util.ais.protobuf.Position) */ {
331  public:
332  inline Position() : Position(nullptr) {};
333  virtual ~Position();
334 
335  Position(const Position& from);
336  Position(Position&& from) noexcept
337  : Position() {
338  *this = ::std::move(from);
339  }
340 
341  inline Position& operator=(const Position& from) {
342  CopyFrom(from);
343  return *this;
344  }
345  inline Position& operator=(Position&& from) noexcept {
346  if (GetArena() == from.GetArena()) {
347  if (this != &from) InternalSwap(&from);
348  } else {
349  CopyFrom(from);
350  }
351  return *this;
352  }
353 
354  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
355  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
356  }
357  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
358  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
359  }
360 
361  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
362  return GetDescriptor();
363  }
364  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
365  return GetMetadataStatic().descriptor;
366  }
367  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
368  return GetMetadataStatic().reflection;
369  }
370  static const Position& default_instance();
371 
372  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
373  static inline const Position* internal_default_instance() {
374  return reinterpret_cast<const Position*>(
376  }
377  static constexpr int kIndexInFileMessages =
378  0;
379 
380  friend void swap(Position& a, Position& b) {
381  a.Swap(&b);
382  }
383  inline void Swap(Position* other) {
384  if (other == this) return;
385  if (GetArena() == other->GetArena()) {
386  InternalSwap(other);
387  } else {
388  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
389  }
390  }
391  void UnsafeArenaSwap(Position* other) {
392  if (other == this) return;
393  GOOGLE_DCHECK(GetArena() == other->GetArena());
394  InternalSwap(other);
395  }
396 
397  // implements Message ----------------------------------------------
398 
399  inline Position* New() const final {
400  return CreateMaybeMessage<Position>(nullptr);
401  }
402 
403  Position* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
404  return CreateMaybeMessage<Position>(arena);
405  }
406  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
407  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
408  void CopyFrom(const Position& from);
409  void MergeFrom(const Position& from);
410  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
411  bool IsInitialized() const final;
412 
413  size_t ByteSizeLong() const final;
414  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
415  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
416  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
417  int GetCachedSize() const final { return _cached_size_.Get(); }
418 
419  private:
420  inline void SharedCtor();
421  inline void SharedDtor();
422  void SetCachedSize(int size) const final;
423  void InternalSwap(Position* other);
424  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
425  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
426  return "goby.util.ais.protobuf.Position";
427  }
428  protected:
429  explicit Position(::PROTOBUF_NAMESPACE_ID::Arena* arena);
430  private:
431  static void ArenaDtor(void* object);
432  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
433  public:
434 
435  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
436  private:
437  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
438  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2futil_2fprotobuf_2fais_2eproto);
439  return ::descriptor_table_goby_2futil_2fprotobuf_2fais_2eproto.file_level_metadata[kIndexInFileMessages];
440  }
441 
442  public:
443 
444  // nested types ----------------------------------------------------
445 
447  static constexpr TurnInfo TURN_INFO__NOT_TURNING =
449  static constexpr TurnInfo TURN_INFO__TURNING_AT_GIVEN_RATE =
451  static constexpr TurnInfo TURN_INFO__TURNING_RIGHT_AT_MORE_THAN_5_DEG_PER_30_SEC =
453  static constexpr TurnInfo TURN_INFO__TURNING_LEFT_AT_MORE_THAN_5_DEG_PER_30_SEC =
455  static constexpr TurnInfo TURN_INFO__NO_TURN_INFORMATION =
457  static inline bool TurnInfo_IsValid(int value) {
458  return Position_TurnInfo_IsValid(value);
459  }
460  static constexpr TurnInfo TurnInfo_MIN =
462  static constexpr TurnInfo TurnInfo_MAX =
464  static constexpr int TurnInfo_ARRAYSIZE =
466  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
469  }
470  template<typename T>
471  static inline const std::string& TurnInfo_Name(T enum_t_value) {
472  static_assert(::std::is_same<T, TurnInfo>::value ||
473  ::std::is_integral<T>::value,
474  "Incorrect type passed to function TurnInfo_Name.");
475  return Position_TurnInfo_Name(enum_t_value);
476  }
477  static inline bool TurnInfo_Parse(const std::string& name,
478  TurnInfo* value) {
479  return Position_TurnInfo_Parse(name, value);
480  }
481 
483  static constexpr PositionAccuracy ACCURACY__LOW__ABOVE_10_METERS =
485  static constexpr PositionAccuracy ACCURACY__HIGH__BELOW_10_METERS =
487  static inline bool PositionAccuracy_IsValid(int value) {
488  return Position_PositionAccuracy_IsValid(value);
489  }
490  static constexpr PositionAccuracy PositionAccuracy_MIN =
492  static constexpr PositionAccuracy PositionAccuracy_MAX =
494  static constexpr int PositionAccuracy_ARRAYSIZE =
496  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
499  }
500  template<typename T>
501  static inline const std::string& PositionAccuracy_Name(T enum_t_value) {
502  static_assert(::std::is_same<T, PositionAccuracy>::value ||
503  ::std::is_integral<T>::value,
504  "Incorrect type passed to function PositionAccuracy_Name.");
505  return Position_PositionAccuracy_Name(enum_t_value);
506  }
507  static inline bool PositionAccuracy_Parse(const std::string& name,
508  PositionAccuracy* value) {
509  return Position_PositionAccuracy_Parse(name, value);
510  }
511 
512  // accessors -------------------------------------------------------
513 
514  enum : int {
515  kMessageIdFieldNumber = 2,
516  kMmsiFieldNumber = 3,
517  kTurnRateFieldNumber = 6,
518  kSpeedOverGroundFieldNumber = 7,
519  kLatFieldNumber = 9,
520  kPositionAccuracyFieldNumber = 8,
521  kCourseOverGroundFieldNumber = 11,
522  kLonFieldNumber = 10,
523  kTrueHeadingFieldNumber = 12,
524  kReportSecondFieldNumber = 13,
525  kRaimFieldNumber = 14,
526  kNavStatusFieldNumber = 4,
527  kTurnInfoFieldNumber = 5,
528  };
529  // optional int32 message_id = 2 [default = 0, (.dccl.field) = {
530  bool has_message_id() const;
531  private:
532  bool _internal_has_message_id() const;
533  public:
537  private:
538  ::PROTOBUF_NAMESPACE_ID::int32 _internal_message_id() const;
539  void _internal_set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value);
540  public:
541 
542  // optional int32 mmsi = 3 [(.dccl.field) = {
543  bool has_mmsi() const;
544  private:
545  bool _internal_has_mmsi() const;
546  public:
547  void clear_mmsi();
550  private:
551  ::PROTOBUF_NAMESPACE_ID::int32 _internal_mmsi() const;
552  void _internal_set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value);
553  public:
554 
555  // optional float turn_rate = 6 [(.dccl.field) = {
556  bool has_turn_rate() const;
557  private:
558  bool _internal_has_turn_rate() const;
559  public:
561  float turn_rate() const;
562  void set_turn_rate(float value);
563  private:
564  float _internal_turn_rate() const;
565  void _internal_set_turn_rate(float value);
566  public:
567 
568  // optional float speed_over_ground = 7 [(.dccl.field) = {
569  bool has_speed_over_ground() const;
570  private:
571  bool _internal_has_speed_over_ground() const;
572  public:
574  float speed_over_ground() const;
575  void set_speed_over_ground(float value);
576  private:
577  float _internal_speed_over_ground() const;
578  void _internal_set_speed_over_ground(float value);
579  public:
580 
581  // optional double lat = 9 [(.dccl.field) = {
582  bool has_lat() const;
583  private:
584  bool _internal_has_lat() const;
585  public:
586  void clear_lat();
587  double lat() const;
588  void set_lat(double value);
589  private:
590  double _internal_lat() const;
591  void _internal_set_lat(double value);
592  public:
593 
594  // optional .goby.util.ais.protobuf.Position.PositionAccuracy position_accuracy = 8 [default = ACCURACY__LOW__ABOVE_10_METERS];
595  bool has_position_accuracy() const;
596  private:
597  bool _internal_has_position_accuracy() const;
598  public:
602  private:
603  ::goby::util::ais::protobuf::Position_PositionAccuracy _internal_position_accuracy() const;
604  void _internal_set_position_accuracy(::goby::util::ais::protobuf::Position_PositionAccuracy value);
605  public:
606 
607  // optional float course_over_ground = 11 [(.dccl.field) = {
609  private:
610  bool _internal_has_course_over_ground() const;
611  public:
613  float course_over_ground() const;
614  void set_course_over_ground(float value);
615  private:
616  float _internal_course_over_ground() const;
617  void _internal_set_course_over_ground(float value);
618  public:
619 
620  // optional double lon = 10 [(.dccl.field) = {
621  bool has_lon() const;
622  private:
623  bool _internal_has_lon() const;
624  public:
625  void clear_lon();
626  double lon() const;
627  void set_lon(double value);
628  private:
629  double _internal_lon() const;
630  void _internal_set_lon(double value);
631  public:
632 
633  // optional float true_heading = 12 [(.dccl.field) = {
634  bool has_true_heading() const;
635  private:
636  bool _internal_has_true_heading() const;
637  public:
639  float true_heading() const;
640  void set_true_heading(float value);
641  private:
642  float _internal_true_heading() const;
643  void _internal_set_true_heading(float value);
644  public:
645 
646  // optional int32 report_second = 13 [(.dccl.field) = {
647  bool has_report_second() const;
648  private:
649  bool _internal_has_report_second() const;
650  public:
654  private:
655  ::PROTOBUF_NAMESPACE_ID::int32 _internal_report_second() const;
656  void _internal_set_report_second(::PROTOBUF_NAMESPACE_ID::int32 value);
657  public:
658 
659  // optional bool raim = 14 [(.dccl.field) = {
660  bool has_raim() const;
661  private:
662  bool _internal_has_raim() const;
663  public:
664  void clear_raim();
665  bool raim() const;
666  void set_raim(bool value);
667  private:
668  bool _internal_raim() const;
669  void _internal_set_raim(bool value);
670  public:
671 
672  // optional .goby.util.ais.protobuf.Status nav_status = 4 [default = AIS_STATUS__NOT_DEFINED];
673  bool has_nav_status() const;
674  private:
675  bool _internal_has_nav_status() const;
676  public:
680  private:
681  ::goby::util::ais::protobuf::Status _internal_nav_status() const;
682  void _internal_set_nav_status(::goby::util::ais::protobuf::Status value);
683  public:
684 
685  // optional .goby.util.ais.protobuf.Position.TurnInfo turn_info = 5 [default = TURN_INFO__NO_TURN_INFORMATION];
686  bool has_turn_info() const;
687  private:
688  bool _internal_has_turn_info() const;
689  public:
693  private:
694  ::goby::util::ais::protobuf::Position_TurnInfo _internal_turn_info() const;
695  void _internal_set_turn_info(::goby::util::ais::protobuf::Position_TurnInfo value);
696  public:
697 
698  enum DCCLParameters { DCCL_ID = 518, DCCL_MAX_BYTES = 1500 };
699  typedef boost::units::angular_velocity_dimension turn_rate_dimension;
700 
701  typedef boost::units::unit<turn_rate_dimension,boost::units::si::system> turn_rate_unit;
702 
703  template<typename Quantity >
704  void set_turn_rate_with_units(Quantity value_w_units)
705  { set_turn_rate(boost::units::quantity<turn_rate_unit,float >(value_w_units).value() ); };
706 
707  template<typename Quantity >
708  Quantity turn_rate_with_units() const
709  { return Quantity(turn_rate() * turn_rate_unit()); };
710 
711  boost::units::quantity< turn_rate_unit,float > turn_rate_with_units() const
712  { return turn_rate_with_units<boost::units::quantity< turn_rate_unit,float > >(); };
713 
714  typedef boost::units::velocity_dimension speed_over_ground_dimension;
715 
716  typedef boost::units::unit<speed_over_ground_dimension,boost::units::si::system> speed_over_ground_unit;
717 
718  template<typename Quantity >
719  void set_speed_over_ground_with_units(Quantity value_w_units)
720  { set_speed_over_ground(boost::units::quantity<speed_over_ground_unit,float >(value_w_units).value() ); };
721 
722  template<typename Quantity >
724  { return Quantity(speed_over_ground() * speed_over_ground_unit()); };
725 
726  boost::units::quantity< speed_over_ground_unit,float > speed_over_ground_with_units() const
727  { return speed_over_ground_with_units<boost::units::quantity< speed_over_ground_unit,float > >(); };
728 
729  typedef boost::units::plane_angle_dimension lat_dimension;
730 
731  typedef boost::units::unit<lat_dimension,boost::units::degree::system> lat_unit;
732 
733  template<typename Quantity >
734  void set_lat_with_units(Quantity value_w_units)
735  { set_lat(boost::units::quantity<lat_unit,double >(value_w_units).value() ); };
736 
737  template<typename Quantity >
738  Quantity lat_with_units() const
739  { return Quantity(lat() * lat_unit()); };
740 
741  boost::units::quantity< lat_unit,double > lat_with_units() const
742  { return lat_with_units<boost::units::quantity< lat_unit,double > >(); };
743 
744  typedef boost::units::plane_angle_dimension lon_dimension;
745 
746  typedef boost::units::unit<lon_dimension,boost::units::degree::system> lon_unit;
747 
748  template<typename Quantity >
749  void set_lon_with_units(Quantity value_w_units)
750  { set_lon(boost::units::quantity<lon_unit,double >(value_w_units).value() ); };
751 
752  template<typename Quantity >
753  Quantity lon_with_units() const
754  { return Quantity(lon() * lon_unit()); };
755 
756  boost::units::quantity< lon_unit,double > lon_with_units() const
757  { return lon_with_units<boost::units::quantity< lon_unit,double > >(); };
758 
759  typedef boost::units::plane_angle_dimension course_over_ground_dimension;
760 
761  typedef boost::units::unit<course_over_ground_dimension,boost::units::degree::system> course_over_ground_unit;
762 
763  template<typename Quantity >
764  void set_course_over_ground_with_units(Quantity value_w_units)
765  { set_course_over_ground(boost::units::quantity<course_over_ground_unit,float >(value_w_units).value() ); };
766 
767  template<typename Quantity >
769  { return Quantity(course_over_ground() * course_over_ground_unit()); };
770 
771  boost::units::quantity< course_over_ground_unit,float > course_over_ground_with_units() const
772  { return course_over_ground_with_units<boost::units::quantity< course_over_ground_unit,float > >(); };
773 
774  typedef boost::units::plane_angle_dimension true_heading_dimension;
775 
776  typedef boost::units::unit<true_heading_dimension,boost::units::degree::system> true_heading_unit;
777 
778  template<typename Quantity >
779  void set_true_heading_with_units(Quantity value_w_units)
780  { set_true_heading(boost::units::quantity<true_heading_unit,float >(value_w_units).value() ); };
781 
782  template<typename Quantity >
783  Quantity true_heading_with_units() const
784  { return Quantity(true_heading() * true_heading_unit()); };
785 
786  boost::units::quantity< true_heading_unit,float > true_heading_with_units() const
787  { return true_heading_with_units<boost::units::quantity< true_heading_unit,float > >(); };
788 
789  typedef boost::units::time_dimension report_second_dimension;
790 
791  typedef boost::units::unit<report_second_dimension,boost::units::si::system> report_second_unit;
792 
793  template<typename Quantity >
794  void set_report_second_with_units(Quantity value_w_units)
795  { set_report_second(boost::units::quantity<report_second_unit,google::protobuf::int32 >(value_w_units).value() ); };
796 
797  template<typename Quantity >
798  Quantity report_second_with_units() const
799  { return Quantity(report_second() * report_second_unit()); };
800 
801  boost::units::quantity< report_second_unit,google::protobuf::int32 > report_second_with_units() const
802  { return report_second_with_units<boost::units::quantity< report_second_unit,google::protobuf::int32 > >(); };
803 
804  // @@protoc_insertion_point(class_scope:goby.util.ais.protobuf.Position)
805  private:
806  class _Internal;
807 
808  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
809  typedef void InternalArenaConstructable_;
810  typedef void DestructorSkippable_;
811  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
812  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
813  ::PROTOBUF_NAMESPACE_ID::int32 message_id_;
815  float turn_rate_;
816  float speed_over_ground_;
817  double lat_;
818  int position_accuracy_;
819  float course_over_ground_;
820  double lon_;
821  float true_heading_;
822  ::PROTOBUF_NAMESPACE_ID::int32 report_second_;
823  bool raim_;
824  int nav_status_;
825  int turn_info_;
826  friend struct ::TableStruct_goby_2futil_2fprotobuf_2fais_2eproto;
827 };
828 // -------------------------------------------------------------------
829 
830 class Voyage PROTOBUF_FINAL :
831  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.util.ais.protobuf.Voyage) */ {
832  public:
833  inline Voyage() : Voyage(nullptr) {};
834  virtual ~Voyage();
835 
836  Voyage(const Voyage& from);
837  Voyage(Voyage&& from) noexcept
838  : Voyage() {
839  *this = ::std::move(from);
840  }
841 
842  inline Voyage& operator=(const Voyage& from) {
843  CopyFrom(from);
844  return *this;
845  }
846  inline Voyage& operator=(Voyage&& from) noexcept {
847  if (GetArena() == from.GetArena()) {
848  if (this != &from) InternalSwap(&from);
849  } else {
850  CopyFrom(from);
851  }
852  return *this;
853  }
854 
855  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
856  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
857  }
858  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
859  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
860  }
861 
862  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
863  return GetDescriptor();
864  }
865  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
866  return GetMetadataStatic().descriptor;
867  }
868  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
869  return GetMetadataStatic().reflection;
870  }
871  static const Voyage& default_instance();
872 
873  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
874  static inline const Voyage* internal_default_instance() {
875  return reinterpret_cast<const Voyage*>(
877  }
878  static constexpr int kIndexInFileMessages =
879  1;
880 
881  friend void swap(Voyage& a, Voyage& b) {
882  a.Swap(&b);
883  }
884  inline void Swap(Voyage* other) {
885  if (other == this) return;
886  if (GetArena() == other->GetArena()) {
887  InternalSwap(other);
888  } else {
889  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
890  }
891  }
892  void UnsafeArenaSwap(Voyage* other) {
893  if (other == this) return;
894  GOOGLE_DCHECK(GetArena() == other->GetArena());
895  InternalSwap(other);
896  }
897 
898  // implements Message ----------------------------------------------
899 
900  inline Voyage* New() const final {
901  return CreateMaybeMessage<Voyage>(nullptr);
902  }
903 
904  Voyage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
905  return CreateMaybeMessage<Voyage>(arena);
906  }
907  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
908  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
909  void CopyFrom(const Voyage& from);
910  void MergeFrom(const Voyage& from);
911  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
912  bool IsInitialized() const final;
913 
914  size_t ByteSizeLong() const final;
915  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
916  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
917  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
918  int GetCachedSize() const final { return _cached_size_.Get(); }
919 
920  private:
921  inline void SharedCtor();
922  inline void SharedDtor();
923  void SetCachedSize(int size) const final;
924  void InternalSwap(Voyage* other);
925  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
926  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
927  return "goby.util.ais.protobuf.Voyage";
928  }
929  protected:
930  explicit Voyage(::PROTOBUF_NAMESPACE_ID::Arena* arena);
931  private:
932  static void ArenaDtor(void* object);
933  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
934  public:
935 
936  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
937  private:
938  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
939  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2futil_2fprotobuf_2fais_2eproto);
940  return ::descriptor_table_goby_2futil_2fprotobuf_2fais_2eproto.file_level_metadata[kIndexInFileMessages];
941  }
942 
943  public:
944 
945  // nested types ----------------------------------------------------
946 
948  static constexpr ShipType TYPE__NOT_AVAILABLE =
950  static constexpr ShipType TYPE__RESERVED_1 =
952  static constexpr ShipType TYPE__RESERVED_2 =
954  static constexpr ShipType TYPE__RESERVED_3 =
956  static constexpr ShipType TYPE__RESERVED_4 =
958  static constexpr ShipType TYPE__RESERVED_5 =
960  static constexpr ShipType TYPE__RESERVED_6 =
962  static constexpr ShipType TYPE__RESERVED_7 =
964  static constexpr ShipType TYPE__RESERVED_8 =
966  static constexpr ShipType TYPE__RESERVED_9 =
968  static constexpr ShipType TYPE__RESERVED_10 =
970  static constexpr ShipType TYPE__RESERVED_11 =
972  static constexpr ShipType TYPE__RESERVED_12 =
974  static constexpr ShipType TYPE__RESERVED_13 =
976  static constexpr ShipType TYPE__RESERVED_14 =
978  static constexpr ShipType TYPE__RESERVED_15 =
980  static constexpr ShipType TYPE__RESERVED_16 =
982  static constexpr ShipType TYPE__RESERVED_17 =
984  static constexpr ShipType TYPE__RESERVED_18 =
986  static constexpr ShipType TYPE__RESERVED_19 =
988  static constexpr ShipType TYPE__WING_IN_GROUND =
990  static constexpr ShipType TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_A =
992  static constexpr ShipType TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_B =
994  static constexpr ShipType TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_C =
996  static constexpr ShipType TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_D =
998  static constexpr ShipType TYPE__WING_IN_GROUND_RESERVED_25 =
1000  static constexpr ShipType TYPE__WING_IN_GROUND_RESERVED_26 =
1002  static constexpr ShipType TYPE__WING_IN_GROUND_RESERVED_27 =
1004  static constexpr ShipType TYPE__WING_IN_GROUND_RESERVED_28 =
1006  static constexpr ShipType TYPE__WING_IN_GROUND_RESERVED_29 =
1008  static constexpr ShipType TYPE__FISHING =
1010  static constexpr ShipType TYPE__TOWING =
1012  static constexpr ShipType TYPE__TOWING_LENGTH_EXCEEDS_200M_OR_BREADTH_EXCEEDS_25M =
1014  static constexpr ShipType TYPE__DREDGING_OR_UNDERWATER_OPS =
1016  static constexpr ShipType TYPE__DIVING_OPS =
1018  static constexpr ShipType TYPE__MILITARY_OPS =
1020  static constexpr ShipType TYPE__SAILING =
1022  static constexpr ShipType TYPE__PLEASURE_CRAFT =
1024  static constexpr ShipType TYPE__RESERVED_38 =
1026  static constexpr ShipType TYPE__RESERVED_39 =
1028  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT =
1030  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_A =
1032  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_B =
1034  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_C =
1036  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_D =
1038  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_RESERVED_45 =
1040  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_RESERVED_46 =
1042  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_RESERVED_47 =
1044  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_RESERVED_48 =
1046  static constexpr ShipType TYPE__HIGH_SPEED_CRAFT_NO_ADDITIONAL_INFORMATION =
1048  static constexpr ShipType TYPE__PILOT_VESSEL =
1050  static constexpr ShipType TYPE__SEARCH_AND_RESCUE_VESSEL =
1052  static constexpr ShipType TYPE__TUG =
1054  static constexpr ShipType TYPE__PORT_TENDER =
1056  static constexpr ShipType TYPE__ANTI_POLLUTION_EQUIPMENT =
1058  static constexpr ShipType TYPE__LAW_ENFORCEMENT =
1060  static constexpr ShipType TYPE__SPARE56_LOCAL_VESSEL =
1062  static constexpr ShipType TYPE__SPARE57_LOCAL_VESSEL =
1064  static constexpr ShipType TYPE__MEDICAL_TRANSPORT =
1066  static constexpr ShipType TYPE__NONCOMBATANT_SHIP_ACCORDING_TO_RR_RESOLUTION_NO_18 =
1068  static constexpr ShipType TYPE__PASSENGER =
1070  static constexpr ShipType TYPE__PASSENGER_HAZARDOUS_CATEGORY_A =
1072  static constexpr ShipType TYPE__PASSENGER_HAZARDOUS_CATEGORY_B =
1074  static constexpr ShipType TYPE__PASSENGER_HAZARDOUS_CATEGORY_C =
1076  static constexpr ShipType TYPE__PASSENGER_HAZARDOUS_CATEGORY_D =
1078  static constexpr ShipType TYPE__PASSENGER_RESERVED_65 =
1080  static constexpr ShipType TYPE__PASSENGER_RESERVED_66 =
1082  static constexpr ShipType TYPE__PASSENGER_RESERVED_67 =
1084  static constexpr ShipType TYPE__PASSENGER_RESERVED_68 =
1086  static constexpr ShipType TYPE__PASSENGER_NO_ADDITIONAL_INFORMATION =
1088  static constexpr ShipType TYPE__CARGO =
1090  static constexpr ShipType TYPE__CARGO_HAZARDOUS_CATEGORY_A =
1092  static constexpr ShipType TYPE__CARGO_HAZARDOUS_CATEGORY_B =
1094  static constexpr ShipType TYPE__CARGO_HAZARDOUS_CATEGORY_C =
1096  static constexpr ShipType TYPE__CARGO_HAZARDOUS_CATEGORY_D =
1098  static constexpr ShipType TYPE__CARGO_RESERVED_65 =
1100  static constexpr ShipType TYPE__CARGO_RESERVED_66 =
1102  static constexpr ShipType TYPE__CARGO_RESERVED_67 =
1104  static constexpr ShipType TYPE__CARGO_RESERVED_68 =
1106  static constexpr ShipType TYPE__CARGO_NO_ADDITIONAL_INFORMATION =
1108  static constexpr ShipType TYPE__TANKER =
1110  static constexpr ShipType TYPE__TANKER_HAZARDOUS_CATEGORY_A =
1112  static constexpr ShipType TYPE__TANKER_HAZARDOUS_CATEGORY_B =
1114  static constexpr ShipType TYPE__TANKER_HAZARDOUS_CATEGORY_C =
1116  static constexpr ShipType TYPE__TANKER_HAZARDOUS_CATEGORY_D =
1118  static constexpr ShipType TYPE__TANKER_RESERVED_65 =
1120  static constexpr ShipType TYPE__TANKER_RESERVED_66 =
1122  static constexpr ShipType TYPE__TANKER_RESERVED_67 =
1124  static constexpr ShipType TYPE__TANKER_RESERVED_68 =
1126  static constexpr ShipType TYPE__TANKER_NO_ADDITIONAL_INFORMATION =
1128  static constexpr ShipType TYPE__OTHER =
1130  static constexpr ShipType TYPE__OTHER_HAZARDOUS_CATEGORY_A =
1132  static constexpr ShipType TYPE__OTHER_HAZARDOUS_CATEGORY_B =
1134  static constexpr ShipType TYPE__OTHER_HAZARDOUS_CATEGORY_C =
1136  static constexpr ShipType TYPE__OTHER_HAZARDOUS_CATEGORY_D =
1138  static constexpr ShipType TYPE__OTHER_RESERVED_65 =
1140  static constexpr ShipType TYPE__OTHER_RESERVED_66 =
1142  static constexpr ShipType TYPE__OTHER_RESERVED_67 =
1144  static constexpr ShipType TYPE__OTHER_RESERVED_68 =
1146  static constexpr ShipType TYPE__OTHER_NO_ADDITIONAL_INFORMATION =
1148  static inline bool ShipType_IsValid(int value) {
1149  return Voyage_ShipType_IsValid(value);
1150  }
1151  static constexpr ShipType ShipType_MIN =
1153  static constexpr ShipType ShipType_MAX =
1155  static constexpr int ShipType_ARRAYSIZE =
1157  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
1159  return Voyage_ShipType_descriptor();
1160  }
1161  template<typename T>
1162  static inline const std::string& ShipType_Name(T enum_t_value) {
1163  static_assert(::std::is_same<T, ShipType>::value ||
1164  ::std::is_integral<T>::value,
1165  "Incorrect type passed to function ShipType_Name.");
1166  return Voyage_ShipType_Name(enum_t_value);
1167  }
1168  static inline bool ShipType_Parse(const std::string& name,
1169  ShipType* value) {
1170  return Voyage_ShipType_Parse(name, value);
1171  }
1172 
1174  static constexpr FixType FIX__UNDEFINED =
1176  static constexpr FixType FIX__GPS =
1178  static constexpr FixType FIX__GLONASS =
1180  static constexpr FixType FIX__COMBINED_GPS_AND_GLONASS =
1182  static constexpr FixType FIX__LORAN_C =
1184  static constexpr FixType FIX__CHAYKA =
1186  static constexpr FixType FIX__INTEGRATED_NAVIGATION_SYSTEM =
1188  static constexpr FixType FIX__SURVEYED =
1190  static constexpr FixType FIX__GALILEO =
1192  static inline bool FixType_IsValid(int value) {
1193  return Voyage_FixType_IsValid(value);
1194  }
1195  static constexpr FixType FixType_MIN =
1197  static constexpr FixType FixType_MAX =
1199  static constexpr int FixType_ARRAYSIZE =
1201  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
1203  return Voyage_FixType_descriptor();
1204  }
1205  template<typename T>
1206  static inline const std::string& FixType_Name(T enum_t_value) {
1207  static_assert(::std::is_same<T, FixType>::value ||
1208  ::std::is_integral<T>::value,
1209  "Incorrect type passed to function FixType_Name.");
1210  return Voyage_FixType_Name(enum_t_value);
1211  }
1212  static inline bool FixType_Parse(const std::string& name,
1213  FixType* value) {
1214  return Voyage_FixType_Parse(name, value);
1215  }
1216 
1217  // accessors -------------------------------------------------------
1218 
1219  enum : int {
1220  kCallsignFieldNumber = 5,
1221  kNameFieldNumber = 6,
1222  kDestinationFieldNumber = 18,
1223  kMessageIdFieldNumber = 2,
1224  kMmsiFieldNumber = 3,
1225  kImoFieldNumber = 4,
1226  kTypeFieldNumber = 7,
1227  kToBowFieldNumber = 8,
1228  kToSternFieldNumber = 9,
1229  kToPortFieldNumber = 10,
1230  kToStarboardFieldNumber = 11,
1231  kFixTypeFieldNumber = 12,
1232  kEtaMonthFieldNumber = 13,
1233  kEtaDayFieldNumber = 14,
1234  kEtaHourFieldNumber = 15,
1235  kEtaMinuteFieldNumber = 16,
1236  kDraughtFieldNumber = 17,
1237  };
1238  // optional string callsign = 5 [(.dccl.field) = {
1239  bool has_callsign() const;
1240  private:
1241  bool _internal_has_callsign() const;
1242  public:
1244  const std::string& callsign() const;
1245  void set_callsign(const std::string& value);
1246  void set_callsign(std::string&& value);
1247  void set_callsign(const char* value);
1248  void set_callsign(const char* value, size_t size);
1249  std::string* mutable_callsign();
1250  std::string* release_callsign();
1251  void set_allocated_callsign(std::string* callsign);
1252  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1253  " string fields are deprecated and will be removed in a"
1254  " future release.")
1255  std::string* unsafe_arena_release_callsign();
1256  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1257  " string fields are deprecated and will be removed in a"
1258  " future release.")
1259  void unsafe_arena_set_allocated_callsign(
1260  std::string* callsign);
1261  private:
1262  const std::string& _internal_callsign() const;
1263  void _internal_set_callsign(const std::string& value);
1264  std::string* _internal_mutable_callsign();
1265  public:
1266 
1267  // optional string name = 6 [(.dccl.field) = {
1268  bool has_name() const;
1269  private:
1270  bool _internal_has_name() const;
1271  public:
1272  void clear_name();
1273  const std::string& name() const;
1274  void set_name(const std::string& value);
1275  void set_name(std::string&& value);
1276  void set_name(const char* value);
1277  void set_name(const char* value, size_t size);
1278  std::string* mutable_name();
1279  std::string* release_name();
1280  void set_allocated_name(std::string* name);
1281  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1282  " string fields are deprecated and will be removed in a"
1283  " future release.")
1284  std::string* unsafe_arena_release_name();
1285  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1286  " string fields are deprecated and will be removed in a"
1287  " future release.")
1288  void unsafe_arena_set_allocated_name(
1289  std::string* name);
1290  private:
1291  const std::string& _internal_name() const;
1292  void _internal_set_name(const std::string& value);
1293  std::string* _internal_mutable_name();
1294  public:
1295 
1296  // optional string destination = 18 [(.dccl.field) = {
1297  bool has_destination() const;
1298  private:
1299  bool _internal_has_destination() const;
1300  public:
1301  void clear_destination();
1302  const std::string& destination() const;
1303  void set_destination(const std::string& value);
1304  void set_destination(std::string&& value);
1305  void set_destination(const char* value);
1306  void set_destination(const char* value, size_t size);
1307  std::string* mutable_destination();
1308  std::string* release_destination();
1309  void set_allocated_destination(std::string* destination);
1310  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1311  " string fields are deprecated and will be removed in a"
1312  " future release.")
1313  std::string* unsafe_arena_release_destination();
1314  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1315  " string fields are deprecated and will be removed in a"
1316  " future release.")
1317  void unsafe_arena_set_allocated_destination(
1318  std::string* destination);
1319  private:
1320  const std::string& _internal_destination() const;
1321  void _internal_set_destination(const std::string& value);
1322  std::string* _internal_mutable_destination();
1323  public:
1324 
1325  // optional int32 message_id = 2 [default = 0, (.dccl.field) = {
1326  bool has_message_id() const;
1327  private:
1328  bool _internal_has_message_id() const;
1329  public:
1330  void clear_message_id();
1331  ::PROTOBUF_NAMESPACE_ID::int32 message_id() const;
1332  void set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value);
1333  private:
1334  ::PROTOBUF_NAMESPACE_ID::int32 _internal_message_id() const;
1335  void _internal_set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value);
1336  public:
1337 
1338  // optional int32 mmsi = 3 [(.dccl.field) = {
1339  bool has_mmsi() const;
1340  private:
1341  bool _internal_has_mmsi() const;
1342  public:
1343  void clear_mmsi();
1344  ::PROTOBUF_NAMESPACE_ID::int32 mmsi() const;
1345  void set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value);
1346  private:
1347  ::PROTOBUF_NAMESPACE_ID::int32 _internal_mmsi() const;
1348  void _internal_set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value);
1349  public:
1350 
1351  // optional int32 imo = 4 [(.dccl.field) = {
1352  bool has_imo() const;
1353  private:
1354  bool _internal_has_imo() const;
1355  public:
1356  void clear_imo();
1357  ::PROTOBUF_NAMESPACE_ID::int32 imo() const;
1358  void set_imo(::PROTOBUF_NAMESPACE_ID::int32 value);
1359  private:
1360  ::PROTOBUF_NAMESPACE_ID::int32 _internal_imo() const;
1361  void _internal_set_imo(::PROTOBUF_NAMESPACE_ID::int32 value);
1362  public:
1363 
1364  // optional .goby.util.ais.protobuf.Voyage.ShipType type = 7 [default = TYPE__NOT_AVAILABLE];
1365  bool has_type() const;
1366  private:
1367  bool _internal_has_type() const;
1368  public:
1369  void clear_type();
1370  ::goby::util::ais::protobuf::Voyage_ShipType type() const;
1371  void set_type(::goby::util::ais::protobuf::Voyage_ShipType value);
1372  private:
1373  ::goby::util::ais::protobuf::Voyage_ShipType _internal_type() const;
1374  void _internal_set_type(::goby::util::ais::protobuf::Voyage_ShipType value);
1375  public:
1376 
1377  // optional uint32 to_bow = 8 [(.dccl.field) = {
1378  bool has_to_bow() const;
1379  private:
1380  bool _internal_has_to_bow() const;
1381  public:
1382  void clear_to_bow();
1383  ::PROTOBUF_NAMESPACE_ID::uint32 to_bow() const;
1384  void set_to_bow(::PROTOBUF_NAMESPACE_ID::uint32 value);
1385  private:
1386  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_to_bow() const;
1387  void _internal_set_to_bow(::PROTOBUF_NAMESPACE_ID::uint32 value);
1388  public:
1389 
1390  // optional uint32 to_stern = 9 [(.dccl.field) = {
1391  bool has_to_stern() const;
1392  private:
1393  bool _internal_has_to_stern() const;
1394  public:
1395  void clear_to_stern();
1396  ::PROTOBUF_NAMESPACE_ID::uint32 to_stern() const;
1397  void set_to_stern(::PROTOBUF_NAMESPACE_ID::uint32 value);
1398  private:
1399  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_to_stern() const;
1400  void _internal_set_to_stern(::PROTOBUF_NAMESPACE_ID::uint32 value);
1401  public:
1402 
1403  // optional uint32 to_port = 10 [(.dccl.field) = {
1404  bool has_to_port() const;
1405  private:
1406  bool _internal_has_to_port() const;
1407  public:
1408  void clear_to_port();
1409  ::PROTOBUF_NAMESPACE_ID::uint32 to_port() const;
1410  void set_to_port(::PROTOBUF_NAMESPACE_ID::uint32 value);
1411  private:
1412  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_to_port() const;
1413  void _internal_set_to_port(::PROTOBUF_NAMESPACE_ID::uint32 value);
1414  public:
1415 
1416  // optional uint32 to_starboard = 11 [(.dccl.field) = {
1417  bool has_to_starboard() const;
1418  private:
1419  bool _internal_has_to_starboard() const;
1420  public:
1421  void clear_to_starboard();
1422  ::PROTOBUF_NAMESPACE_ID::uint32 to_starboard() const;
1423  void set_to_starboard(::PROTOBUF_NAMESPACE_ID::uint32 value);
1424  private:
1425  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_to_starboard() const;
1426  void _internal_set_to_starboard(::PROTOBUF_NAMESPACE_ID::uint32 value);
1427  public:
1428 
1429  // optional .goby.util.ais.protobuf.Voyage.FixType fix_type = 12 [default = FIX__UNDEFINED];
1430  bool has_fix_type() const;
1431  private:
1432  bool _internal_has_fix_type() const;
1433  public:
1434  void clear_fix_type();
1435  ::goby::util::ais::protobuf::Voyage_FixType fix_type() const;
1436  void set_fix_type(::goby::util::ais::protobuf::Voyage_FixType value);
1437  private:
1438  ::goby::util::ais::protobuf::Voyage_FixType _internal_fix_type() const;
1439  void _internal_set_fix_type(::goby::util::ais::protobuf::Voyage_FixType value);
1440  public:
1441 
1442  // optional uint32 eta_month = 13 [(.dccl.field) = {
1443  bool has_eta_month() const;
1444  private:
1445  bool _internal_has_eta_month() const;
1446  public:
1447  void clear_eta_month();
1448  ::PROTOBUF_NAMESPACE_ID::uint32 eta_month() const;
1449  void set_eta_month(::PROTOBUF_NAMESPACE_ID::uint32 value);
1450  private:
1451  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_eta_month() const;
1452  void _internal_set_eta_month(::PROTOBUF_NAMESPACE_ID::uint32 value);
1453  public:
1454 
1455  // optional uint32 eta_day = 14 [(.dccl.field) = {
1456  bool has_eta_day() const;
1457  private:
1458  bool _internal_has_eta_day() const;
1459  public:
1460  void clear_eta_day();
1461  ::PROTOBUF_NAMESPACE_ID::uint32 eta_day() const;
1462  void set_eta_day(::PROTOBUF_NAMESPACE_ID::uint32 value);
1463  private:
1464  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_eta_day() const;
1465  void _internal_set_eta_day(::PROTOBUF_NAMESPACE_ID::uint32 value);
1466  public:
1467 
1468  // optional uint32 eta_hour = 15 [(.dccl.field) = {
1469  bool has_eta_hour() const;
1470  private:
1471  bool _internal_has_eta_hour() const;
1472  public:
1473  void clear_eta_hour();
1474  ::PROTOBUF_NAMESPACE_ID::uint32 eta_hour() const;
1475  void set_eta_hour(::PROTOBUF_NAMESPACE_ID::uint32 value);
1476  private:
1477  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_eta_hour() const;
1478  void _internal_set_eta_hour(::PROTOBUF_NAMESPACE_ID::uint32 value);
1479  public:
1480 
1481  // optional uint32 eta_minute = 16 [(.dccl.field) = {
1482  bool has_eta_minute() const;
1483  private:
1484  bool _internal_has_eta_minute() const;
1485  public:
1486  void clear_eta_minute();
1487  ::PROTOBUF_NAMESPACE_ID::uint32 eta_minute() const;
1488  void set_eta_minute(::PROTOBUF_NAMESPACE_ID::uint32 value);
1489  private:
1490  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_eta_minute() const;
1491  void _internal_set_eta_minute(::PROTOBUF_NAMESPACE_ID::uint32 value);
1492  public:
1493 
1494  // optional float draught = 17 [(.dccl.field) = {
1495  bool has_draught() const;
1496  private:
1497  bool _internal_has_draught() const;
1498  public:
1499  void clear_draught();
1500  float draught() const;
1501  void set_draught(float value);
1502  private:
1503  float _internal_draught() const;
1504  void _internal_set_draught(float value);
1505  public:
1506 
1507  enum DCCLParameters { DCCL_ID = 519, DCCL_MAX_BYTES = 1500 };
1508  typedef boost::units::length_dimension to_bow_dimension;
1509 
1510  typedef boost::units::unit<to_bow_dimension,boost::units::si::system> to_bow_unit;
1511 
1512  template<typename Quantity >
1513  void set_to_bow_with_units(Quantity value_w_units)
1514  { set_to_bow(boost::units::quantity<to_bow_unit,google::protobuf::uint32 >(value_w_units).value() ); };
1515 
1516  template<typename Quantity >
1517  Quantity to_bow_with_units() const
1518  { return Quantity(to_bow() * to_bow_unit()); };
1519 
1520  boost::units::quantity< to_bow_unit,google::protobuf::uint32 > to_bow_with_units() const
1521  { return to_bow_with_units<boost::units::quantity< to_bow_unit,google::protobuf::uint32 > >(); };
1522 
1523  typedef boost::units::length_dimension to_stern_dimension;
1524 
1525  typedef boost::units::unit<to_stern_dimension,boost::units::si::system> to_stern_unit;
1526 
1527  template<typename Quantity >
1528  void set_to_stern_with_units(Quantity value_w_units)
1529  { set_to_stern(boost::units::quantity<to_stern_unit,google::protobuf::uint32 >(value_w_units).value() ); };
1530 
1531  template<typename Quantity >
1532  Quantity to_stern_with_units() const
1533  { return Quantity(to_stern() * to_stern_unit()); };
1534 
1535  boost::units::quantity< to_stern_unit,google::protobuf::uint32 > to_stern_with_units() const
1536  { return to_stern_with_units<boost::units::quantity< to_stern_unit,google::protobuf::uint32 > >(); };
1537 
1538  typedef boost::units::length_dimension to_port_dimension;
1539 
1540  typedef boost::units::unit<to_port_dimension,boost::units::si::system> to_port_unit;
1541 
1542  template<typename Quantity >
1543  void set_to_port_with_units(Quantity value_w_units)
1544  { set_to_port(boost::units::quantity<to_port_unit,google::protobuf::uint32 >(value_w_units).value() ); };
1545 
1546  template<typename Quantity >
1547  Quantity to_port_with_units() const
1548  { return Quantity(to_port() * to_port_unit()); };
1549 
1550  boost::units::quantity< to_port_unit,google::protobuf::uint32 > to_port_with_units() const
1551  { return to_port_with_units<boost::units::quantity< to_port_unit,google::protobuf::uint32 > >(); };
1552 
1553  typedef boost::units::length_dimension to_starboard_dimension;
1554 
1555  typedef boost::units::unit<to_starboard_dimension,boost::units::si::system> to_starboard_unit;
1556 
1557  template<typename Quantity >
1558  void set_to_starboard_with_units(Quantity value_w_units)
1559  { set_to_starboard(boost::units::quantity<to_starboard_unit,google::protobuf::uint32 >(value_w_units).value() ); };
1560 
1561  template<typename Quantity >
1562  Quantity to_starboard_with_units() const
1563  { return Quantity(to_starboard() * to_starboard_unit()); };
1564 
1565  boost::units::quantity< to_starboard_unit,google::protobuf::uint32 > to_starboard_with_units() const
1566  { return to_starboard_with_units<boost::units::quantity< to_starboard_unit,google::protobuf::uint32 > >(); };
1567 
1568  typedef boost::units::length_dimension draught_dimension;
1569 
1570  typedef boost::units::unit<draught_dimension,boost::units::si::system> draught_unit;
1571 
1572  template<typename Quantity >
1573  void set_draught_with_units(Quantity value_w_units)
1574  { set_draught(boost::units::quantity<draught_unit,float >(value_w_units).value() ); };
1575 
1576  template<typename Quantity >
1577  Quantity draught_with_units() const
1578  { return Quantity(draught() * draught_unit()); };
1579 
1580  boost::units::quantity< draught_unit,float > draught_with_units() const
1581  { return draught_with_units<boost::units::quantity< draught_unit,float > >(); };
1582 
1583  // @@protoc_insertion_point(class_scope:goby.util.ais.protobuf.Voyage)
1584  private:
1585  class _Internal;
1586 
1587  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1588  typedef void InternalArenaConstructable_;
1589  typedef void DestructorSkippable_;
1590  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1591  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1592  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr callsign_;
1593  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
1594  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr destination_;
1595  ::PROTOBUF_NAMESPACE_ID::int32 message_id_;
1598  int type_;
1602  ::PROTOBUF_NAMESPACE_ID::uint32 to_starboard_;
1603  int fix_type_;
1607  ::PROTOBUF_NAMESPACE_ID::uint32 eta_minute_;
1608  float draught_;
1609  friend struct ::TableStruct_goby_2futil_2fprotobuf_2fais_2eproto;
1610 };
1611 // ===================================================================
1612 
1613 
1614 // ===================================================================
1615 
1616 #ifdef __GNUC__
1617  #pragma GCC diagnostic push
1618  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1619 #endif // __GNUC__
1620 // Position
1621 
1622 // optional int32 message_id = 2 [default = 0, (.dccl.field) = {
1623 inline bool Position::_internal_has_message_id() const {
1624  bool value = (_has_bits_[0] & 0x00000001u) != 0;
1625  return value;
1626 }
1627 inline bool Position::has_message_id() const {
1628  return _internal_has_message_id();
1629 }
1630 inline void Position::clear_message_id() {
1631  message_id_ = 0;
1632  _has_bits_[0] &= ~0x00000001u;
1633 }
1634 inline ::PROTOBUF_NAMESPACE_ID::int32 Position::_internal_message_id() const {
1635  return message_id_;
1636 }
1637 inline ::PROTOBUF_NAMESPACE_ID::int32 Position::message_id() const {
1638  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.message_id)
1639  return _internal_message_id();
1640 }
1641 inline void Position::_internal_set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
1642  _has_bits_[0] |= 0x00000001u;
1643  message_id_ = value;
1644 }
1645 inline void Position::set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
1646  _internal_set_message_id(value);
1647  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.message_id)
1648 }
1649 
1650 // optional int32 mmsi = 3 [(.dccl.field) = {
1651 inline bool Position::_internal_has_mmsi() const {
1652  bool value = (_has_bits_[0] & 0x00000002u) != 0;
1653  return value;
1654 }
1655 inline bool Position::has_mmsi() const {
1656  return _internal_has_mmsi();
1657 }
1658 inline void Position::clear_mmsi() {
1659  mmsi_ = 0;
1660  _has_bits_[0] &= ~0x00000002u;
1661 }
1662 inline ::PROTOBUF_NAMESPACE_ID::int32 Position::_internal_mmsi() const {
1663  return mmsi_;
1664 }
1665 inline ::PROTOBUF_NAMESPACE_ID::int32 Position::mmsi() const {
1666  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.mmsi)
1667  return _internal_mmsi();
1668 }
1669 inline void Position::_internal_set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value) {
1670  _has_bits_[0] |= 0x00000002u;
1671  mmsi_ = value;
1672 }
1673 inline void Position::set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value) {
1674  _internal_set_mmsi(value);
1675  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.mmsi)
1676 }
1677 
1678 // optional .goby.util.ais.protobuf.Status nav_status = 4 [default = AIS_STATUS__NOT_DEFINED];
1679 inline bool Position::_internal_has_nav_status() const {
1680  bool value = (_has_bits_[0] & 0x00000800u) != 0;
1681  return value;
1682 }
1683 inline bool Position::has_nav_status() const {
1684  return _internal_has_nav_status();
1685 }
1686 inline void Position::clear_nav_status() {
1687  nav_status_ = 15;
1688  _has_bits_[0] &= ~0x00000800u;
1689 }
1690 inline ::goby::util::ais::protobuf::Status Position::_internal_nav_status() const {
1691  return static_cast< ::goby::util::ais::protobuf::Status >(nav_status_);
1692 }
1693 inline ::goby::util::ais::protobuf::Status Position::nav_status() const {
1694  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.nav_status)
1695  return _internal_nav_status();
1696 }
1697 inline void Position::_internal_set_nav_status(::goby::util::ais::protobuf::Status value) {
1699  _has_bits_[0] |= 0x00000800u;
1700  nav_status_ = value;
1701 }
1702 inline void Position::set_nav_status(::goby::util::ais::protobuf::Status value) {
1703  _internal_set_nav_status(value);
1704  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.nav_status)
1705 }
1706 
1707 // optional .goby.util.ais.protobuf.Position.TurnInfo turn_info = 5 [default = TURN_INFO__NO_TURN_INFORMATION];
1708 inline bool Position::_internal_has_turn_info() const {
1709  bool value = (_has_bits_[0] & 0x00001000u) != 0;
1710  return value;
1711 }
1712 inline bool Position::has_turn_info() const {
1713  return _internal_has_turn_info();
1714 }
1715 inline void Position::clear_turn_info() {
1716  turn_info_ = 128;
1717  _has_bits_[0] &= ~0x00001000u;
1718 }
1719 inline ::goby::util::ais::protobuf::Position_TurnInfo Position::_internal_turn_info() const {
1720  return static_cast< ::goby::util::ais::protobuf::Position_TurnInfo >(turn_info_);
1721 }
1722 inline ::goby::util::ais::protobuf::Position_TurnInfo Position::turn_info() const {
1723  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.turn_info)
1724  return _internal_turn_info();
1725 }
1726 inline void Position::_internal_set_turn_info(::goby::util::ais::protobuf::Position_TurnInfo value) {
1728  _has_bits_[0] |= 0x00001000u;
1729  turn_info_ = value;
1730 }
1731 inline void Position::set_turn_info(::goby::util::ais::protobuf::Position_TurnInfo value) {
1732  _internal_set_turn_info(value);
1733  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.turn_info)
1734 }
1735 
1736 // optional float turn_rate = 6 [(.dccl.field) = {
1737 inline bool Position::_internal_has_turn_rate() const {
1738  bool value = (_has_bits_[0] & 0x00000004u) != 0;
1739  return value;
1740 }
1741 inline bool Position::has_turn_rate() const {
1742  return _internal_has_turn_rate();
1743 }
1744 inline void Position::clear_turn_rate() {
1745  turn_rate_ = 0;
1746  _has_bits_[0] &= ~0x00000004u;
1747 }
1748 inline float Position::_internal_turn_rate() const {
1749  return turn_rate_;
1750 }
1751 inline float Position::turn_rate() const {
1752  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.turn_rate)
1753  return _internal_turn_rate();
1754 }
1755 inline void Position::_internal_set_turn_rate(float value) {
1756  _has_bits_[0] |= 0x00000004u;
1757  turn_rate_ = value;
1758 }
1759 inline void Position::set_turn_rate(float value) {
1760  _internal_set_turn_rate(value);
1761  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.turn_rate)
1762 }
1763 
1764 // optional float speed_over_ground = 7 [(.dccl.field) = {
1765 inline bool Position::_internal_has_speed_over_ground() const {
1766  bool value = (_has_bits_[0] & 0x00000008u) != 0;
1767  return value;
1768 }
1769 inline bool Position::has_speed_over_ground() const {
1770  return _internal_has_speed_over_ground();
1771 }
1772 inline void Position::clear_speed_over_ground() {
1773  speed_over_ground_ = 0;
1774  _has_bits_[0] &= ~0x00000008u;
1775 }
1776 inline float Position::_internal_speed_over_ground() const {
1777  return speed_over_ground_;
1778 }
1779 inline float Position::speed_over_ground() const {
1780  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.speed_over_ground)
1781  return _internal_speed_over_ground();
1782 }
1783 inline void Position::_internal_set_speed_over_ground(float value) {
1784  _has_bits_[0] |= 0x00000008u;
1785  speed_over_ground_ = value;
1786 }
1787 inline void Position::set_speed_over_ground(float value) {
1788  _internal_set_speed_over_ground(value);
1789  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.speed_over_ground)
1790 }
1791 
1792 // optional .goby.util.ais.protobuf.Position.PositionAccuracy position_accuracy = 8 [default = ACCURACY__LOW__ABOVE_10_METERS];
1793 inline bool Position::_internal_has_position_accuracy() const {
1794  bool value = (_has_bits_[0] & 0x00000020u) != 0;
1795  return value;
1796 }
1797 inline bool Position::has_position_accuracy() const {
1798  return _internal_has_position_accuracy();
1799 }
1800 inline void Position::clear_position_accuracy() {
1801  position_accuracy_ = 0;
1802  _has_bits_[0] &= ~0x00000020u;
1803 }
1804 inline ::goby::util::ais::protobuf::Position_PositionAccuracy Position::_internal_position_accuracy() const {
1805  return static_cast< ::goby::util::ais::protobuf::Position_PositionAccuracy >(position_accuracy_);
1806 }
1807 inline ::goby::util::ais::protobuf::Position_PositionAccuracy Position::position_accuracy() const {
1808  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.position_accuracy)
1809  return _internal_position_accuracy();
1810 }
1811 inline void Position::_internal_set_position_accuracy(::goby::util::ais::protobuf::Position_PositionAccuracy value) {
1813  _has_bits_[0] |= 0x00000020u;
1814  position_accuracy_ = value;
1815 }
1816 inline void Position::set_position_accuracy(::goby::util::ais::protobuf::Position_PositionAccuracy value) {
1817  _internal_set_position_accuracy(value);
1818  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.position_accuracy)
1819 }
1820 
1821 // optional double lat = 9 [(.dccl.field) = {
1822 inline bool Position::_internal_has_lat() const {
1823  bool value = (_has_bits_[0] & 0x00000010u) != 0;
1824  return value;
1825 }
1826 inline bool Position::has_lat() const {
1827  return _internal_has_lat();
1828 }
1829 inline void Position::clear_lat() {
1830  lat_ = 0;
1831  _has_bits_[0] &= ~0x00000010u;
1832 }
1833 inline double Position::_internal_lat() const {
1834  return lat_;
1835 }
1836 inline double Position::lat() const {
1837  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.lat)
1838  return _internal_lat();
1839 }
1840 inline void Position::_internal_set_lat(double value) {
1841  _has_bits_[0] |= 0x00000010u;
1842  lat_ = value;
1843 }
1844 inline void Position::set_lat(double value) {
1845  _internal_set_lat(value);
1846  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.lat)
1847 }
1848 
1849 // optional double lon = 10 [(.dccl.field) = {
1850 inline bool Position::_internal_has_lon() const {
1851  bool value = (_has_bits_[0] & 0x00000080u) != 0;
1852  return value;
1853 }
1854 inline bool Position::has_lon() const {
1855  return _internal_has_lon();
1856 }
1857 inline void Position::clear_lon() {
1858  lon_ = 0;
1859  _has_bits_[0] &= ~0x00000080u;
1860 }
1861 inline double Position::_internal_lon() const {
1862  return lon_;
1863 }
1864 inline double Position::lon() const {
1865  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.lon)
1866  return _internal_lon();
1867 }
1868 inline void Position::_internal_set_lon(double value) {
1869  _has_bits_[0] |= 0x00000080u;
1870  lon_ = value;
1871 }
1872 inline void Position::set_lon(double value) {
1873  _internal_set_lon(value);
1874  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.lon)
1875 }
1876 
1877 // optional float course_over_ground = 11 [(.dccl.field) = {
1878 inline bool Position::_internal_has_course_over_ground() const {
1879  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1880  return value;
1881 }
1882 inline bool Position::has_course_over_ground() const {
1883  return _internal_has_course_over_ground();
1884 }
1885 inline void Position::clear_course_over_ground() {
1886  course_over_ground_ = 0;
1887  _has_bits_[0] &= ~0x00000040u;
1888 }
1889 inline float Position::_internal_course_over_ground() const {
1890  return course_over_ground_;
1891 }
1892 inline float Position::course_over_ground() const {
1893  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.course_over_ground)
1894  return _internal_course_over_ground();
1895 }
1896 inline void Position::_internal_set_course_over_ground(float value) {
1897  _has_bits_[0] |= 0x00000040u;
1898  course_over_ground_ = value;
1899 }
1900 inline void Position::set_course_over_ground(float value) {
1901  _internal_set_course_over_ground(value);
1902  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.course_over_ground)
1903 }
1904 
1905 // optional float true_heading = 12 [(.dccl.field) = {
1906 inline bool Position::_internal_has_true_heading() const {
1907  bool value = (_has_bits_[0] & 0x00000100u) != 0;
1908  return value;
1909 }
1910 inline bool Position::has_true_heading() const {
1911  return _internal_has_true_heading();
1912 }
1913 inline void Position::clear_true_heading() {
1914  true_heading_ = 0;
1915  _has_bits_[0] &= ~0x00000100u;
1916 }
1917 inline float Position::_internal_true_heading() const {
1918  return true_heading_;
1919 }
1920 inline float Position::true_heading() const {
1921  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.true_heading)
1922  return _internal_true_heading();
1923 }
1924 inline void Position::_internal_set_true_heading(float value) {
1925  _has_bits_[0] |= 0x00000100u;
1926  true_heading_ = value;
1927 }
1928 inline void Position::set_true_heading(float value) {
1929  _internal_set_true_heading(value);
1930  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.true_heading)
1931 }
1932 
1933 // optional int32 report_second = 13 [(.dccl.field) = {
1934 inline bool Position::_internal_has_report_second() const {
1935  bool value = (_has_bits_[0] & 0x00000200u) != 0;
1936  return value;
1937 }
1938 inline bool Position::has_report_second() const {
1939  return _internal_has_report_second();
1940 }
1941 inline void Position::clear_report_second() {
1942  report_second_ = 0;
1943  _has_bits_[0] &= ~0x00000200u;
1944 }
1945 inline ::PROTOBUF_NAMESPACE_ID::int32 Position::_internal_report_second() const {
1946  return report_second_;
1947 }
1948 inline ::PROTOBUF_NAMESPACE_ID::int32 Position::report_second() const {
1949  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.report_second)
1950  return _internal_report_second();
1951 }
1952 inline void Position::_internal_set_report_second(::PROTOBUF_NAMESPACE_ID::int32 value) {
1953  _has_bits_[0] |= 0x00000200u;
1954  report_second_ = value;
1955 }
1956 inline void Position::set_report_second(::PROTOBUF_NAMESPACE_ID::int32 value) {
1957  _internal_set_report_second(value);
1958  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.report_second)
1959 }
1960 
1961 // optional bool raim = 14 [(.dccl.field) = {
1962 inline bool Position::_internal_has_raim() const {
1963  bool value = (_has_bits_[0] & 0x00000400u) != 0;
1964  return value;
1965 }
1966 inline bool Position::has_raim() const {
1967  return _internal_has_raim();
1968 }
1969 inline void Position::clear_raim() {
1970  raim_ = false;
1971  _has_bits_[0] &= ~0x00000400u;
1972 }
1973 inline bool Position::_internal_raim() const {
1974  return raim_;
1975 }
1976 inline bool Position::raim() const {
1977  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Position.raim)
1978  return _internal_raim();
1979 }
1980 inline void Position::_internal_set_raim(bool value) {
1981  _has_bits_[0] |= 0x00000400u;
1982  raim_ = value;
1983 }
1984 inline void Position::set_raim(bool value) {
1985  _internal_set_raim(value);
1986  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Position.raim)
1987 }
1988 
1989 // -------------------------------------------------------------------
1990 
1991 // Voyage
1992 
1993 // optional int32 message_id = 2 [default = 0, (.dccl.field) = {
1994 inline bool Voyage::_internal_has_message_id() const {
1995  bool value = (_has_bits_[0] & 0x00000008u) != 0;
1996  return value;
1997 }
1998 inline bool Voyage::has_message_id() const {
1999  return _internal_has_message_id();
2000 }
2001 inline void Voyage::clear_message_id() {
2002  message_id_ = 0;
2003  _has_bits_[0] &= ~0x00000008u;
2004 }
2005 inline ::PROTOBUF_NAMESPACE_ID::int32 Voyage::_internal_message_id() const {
2006  return message_id_;
2007 }
2008 inline ::PROTOBUF_NAMESPACE_ID::int32 Voyage::message_id() const {
2009  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.message_id)
2010  return _internal_message_id();
2011 }
2012 inline void Voyage::_internal_set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
2013  _has_bits_[0] |= 0x00000008u;
2014  message_id_ = value;
2015 }
2016 inline void Voyage::set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
2017  _internal_set_message_id(value);
2018  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.message_id)
2019 }
2020 
2021 // optional int32 mmsi = 3 [(.dccl.field) = {
2022 inline bool Voyage::_internal_has_mmsi() const {
2023  bool value = (_has_bits_[0] & 0x00000010u) != 0;
2024  return value;
2025 }
2026 inline bool Voyage::has_mmsi() const {
2027  return _internal_has_mmsi();
2028 }
2029 inline void Voyage::clear_mmsi() {
2030  mmsi_ = 0;
2031  _has_bits_[0] &= ~0x00000010u;
2032 }
2033 inline ::PROTOBUF_NAMESPACE_ID::int32 Voyage::_internal_mmsi() const {
2034  return mmsi_;
2035 }
2036 inline ::PROTOBUF_NAMESPACE_ID::int32 Voyage::mmsi() const {
2037  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.mmsi)
2038  return _internal_mmsi();
2039 }
2040 inline void Voyage::_internal_set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value) {
2041  _has_bits_[0] |= 0x00000010u;
2042  mmsi_ = value;
2043 }
2044 inline void Voyage::set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value) {
2045  _internal_set_mmsi(value);
2046  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.mmsi)
2047 }
2048 
2049 // optional int32 imo = 4 [(.dccl.field) = {
2050 inline bool Voyage::_internal_has_imo() const {
2051  bool value = (_has_bits_[0] & 0x00000020u) != 0;
2052  return value;
2053 }
2054 inline bool Voyage::has_imo() const {
2055  return _internal_has_imo();
2056 }
2057 inline void Voyage::clear_imo() {
2058  imo_ = 0;
2059  _has_bits_[0] &= ~0x00000020u;
2060 }
2061 inline ::PROTOBUF_NAMESPACE_ID::int32 Voyage::_internal_imo() const {
2062  return imo_;
2063 }
2064 inline ::PROTOBUF_NAMESPACE_ID::int32 Voyage::imo() const {
2065  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.imo)
2066  return _internal_imo();
2067 }
2068 inline void Voyage::_internal_set_imo(::PROTOBUF_NAMESPACE_ID::int32 value) {
2069  _has_bits_[0] |= 0x00000020u;
2070  imo_ = value;
2071 }
2072 inline void Voyage::set_imo(::PROTOBUF_NAMESPACE_ID::int32 value) {
2073  _internal_set_imo(value);
2074  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.imo)
2075 }
2076 
2077 // optional string callsign = 5 [(.dccl.field) = {
2078 inline bool Voyage::_internal_has_callsign() const {
2079  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2080  return value;
2081 }
2082 inline bool Voyage::has_callsign() const {
2083  return _internal_has_callsign();
2084 }
2085 inline void Voyage::clear_callsign() {
2086  callsign_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2087  _has_bits_[0] &= ~0x00000001u;
2088 }
2089 inline const std::string& Voyage::callsign() const {
2090  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.callsign)
2091  return _internal_callsign();
2092 }
2093 inline void Voyage::set_callsign(const std::string& value) {
2094  _internal_set_callsign(value);
2095  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.callsign)
2096 }
2097 inline std::string* Voyage::mutable_callsign() {
2098  // @@protoc_insertion_point(field_mutable:goby.util.ais.protobuf.Voyage.callsign)
2099  return _internal_mutable_callsign();
2100 }
2101 inline const std::string& Voyage::_internal_callsign() const {
2102  return callsign_.Get();
2103 }
2104 inline void Voyage::_internal_set_callsign(const std::string& value) {
2105  _has_bits_[0] |= 0x00000001u;
2106  callsign_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
2107 }
2108 inline void Voyage::set_callsign(std::string&& value) {
2109  _has_bits_[0] |= 0x00000001u;
2110  callsign_.Set(
2111  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
2112  // @@protoc_insertion_point(field_set_rvalue:goby.util.ais.protobuf.Voyage.callsign)
2113 }
2114 inline void Voyage::set_callsign(const char* value) {
2115  GOOGLE_DCHECK(value != nullptr);
2116  _has_bits_[0] |= 0x00000001u;
2117  callsign_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
2118  GetArena());
2119  // @@protoc_insertion_point(field_set_char:goby.util.ais.protobuf.Voyage.callsign)
2120 }
2121 inline void Voyage::set_callsign(const char* value,
2122  size_t size) {
2123  _has_bits_[0] |= 0x00000001u;
2124  callsign_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
2125  reinterpret_cast<const char*>(value), size), GetArena());
2126  // @@protoc_insertion_point(field_set_pointer:goby.util.ais.protobuf.Voyage.callsign)
2127 }
2128 inline std::string* Voyage::_internal_mutable_callsign() {
2129  _has_bits_[0] |= 0x00000001u;
2130  return callsign_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2131 }
2132 inline std::string* Voyage::release_callsign() {
2133  // @@protoc_insertion_point(field_release:goby.util.ais.protobuf.Voyage.callsign)
2134  if (!_internal_has_callsign()) {
2135  return nullptr;
2136  }
2137  _has_bits_[0] &= ~0x00000001u;
2138  return callsign_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2139 }
2140 inline void Voyage::set_allocated_callsign(std::string* callsign) {
2141  if (callsign != nullptr) {
2142  _has_bits_[0] |= 0x00000001u;
2143  } else {
2144  _has_bits_[0] &= ~0x00000001u;
2145  }
2146  callsign_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), callsign,
2147  GetArena());
2148  // @@protoc_insertion_point(field_set_allocated:goby.util.ais.protobuf.Voyage.callsign)
2149 }
2150 inline std::string* Voyage::unsafe_arena_release_callsign() {
2151  // @@protoc_insertion_point(field_unsafe_arena_release:goby.util.ais.protobuf.Voyage.callsign)
2152  GOOGLE_DCHECK(GetArena() != nullptr);
2153  _has_bits_[0] &= ~0x00000001u;
2154  return callsign_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2155  GetArena());
2156 }
2157 inline void Voyage::unsafe_arena_set_allocated_callsign(
2158  std::string* callsign) {
2159  GOOGLE_DCHECK(GetArena() != nullptr);
2160  if (callsign != nullptr) {
2161  _has_bits_[0] |= 0x00000001u;
2162  } else {
2163  _has_bits_[0] &= ~0x00000001u;
2164  }
2165  callsign_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2166  callsign, GetArena());
2167  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.util.ais.protobuf.Voyage.callsign)
2168 }
2169 
2170 // optional string name = 6 [(.dccl.field) = {
2171 inline bool Voyage::_internal_has_name() const {
2172  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2173  return value;
2174 }
2175 inline bool Voyage::has_name() const {
2176  return _internal_has_name();
2177 }
2178 inline void Voyage::clear_name() {
2179  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2180  _has_bits_[0] &= ~0x00000002u;
2181 }
2182 inline const std::string& Voyage::name() const {
2183  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.name)
2184  return _internal_name();
2185 }
2186 inline void Voyage::set_name(const std::string& value) {
2187  _internal_set_name(value);
2188  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.name)
2189 }
2190 inline std::string* Voyage::mutable_name() {
2191  // @@protoc_insertion_point(field_mutable:goby.util.ais.protobuf.Voyage.name)
2192  return _internal_mutable_name();
2193 }
2194 inline const std::string& Voyage::_internal_name() const {
2195  return name_.Get();
2196 }
2197 inline void Voyage::_internal_set_name(const std::string& value) {
2198  _has_bits_[0] |= 0x00000002u;
2199  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
2200 }
2201 inline void Voyage::set_name(std::string&& value) {
2202  _has_bits_[0] |= 0x00000002u;
2203  name_.Set(
2204  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
2205  // @@protoc_insertion_point(field_set_rvalue:goby.util.ais.protobuf.Voyage.name)
2206 }
2207 inline void Voyage::set_name(const char* value) {
2208  GOOGLE_DCHECK(value != nullptr);
2209  _has_bits_[0] |= 0x00000002u;
2210  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
2211  GetArena());
2212  // @@protoc_insertion_point(field_set_char:goby.util.ais.protobuf.Voyage.name)
2213 }
2214 inline void Voyage::set_name(const char* value,
2215  size_t size) {
2216  _has_bits_[0] |= 0x00000002u;
2218  reinterpret_cast<const char*>(value), size), GetArena());
2219  // @@protoc_insertion_point(field_set_pointer:goby.util.ais.protobuf.Voyage.name)
2220 }
2221 inline std::string* Voyage::_internal_mutable_name() {
2222  _has_bits_[0] |= 0x00000002u;
2223  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2224 }
2225 inline std::string* Voyage::release_name() {
2226  // @@protoc_insertion_point(field_release:goby.util.ais.protobuf.Voyage.name)
2227  if (!_internal_has_name()) {
2228  return nullptr;
2229  }
2230  _has_bits_[0] &= ~0x00000002u;
2231  return name_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2232 }
2233 inline void Voyage::set_allocated_name(std::string* name) {
2234  if (name != nullptr) {
2235  _has_bits_[0] |= 0x00000002u;
2236  } else {
2237  _has_bits_[0] &= ~0x00000002u;
2238  }
2240  GetArena());
2241  // @@protoc_insertion_point(field_set_allocated:goby.util.ais.protobuf.Voyage.name)
2242 }
2243 inline std::string* Voyage::unsafe_arena_release_name() {
2244  // @@protoc_insertion_point(field_unsafe_arena_release:goby.util.ais.protobuf.Voyage.name)
2245  GOOGLE_DCHECK(GetArena() != nullptr);
2246  _has_bits_[0] &= ~0x00000002u;
2247  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2248  GetArena());
2249 }
2250 inline void Voyage::unsafe_arena_set_allocated_name(
2251  std::string* name) {
2252  GOOGLE_DCHECK(GetArena() != nullptr);
2253  if (name != nullptr) {
2254  _has_bits_[0] |= 0x00000002u;
2255  } else {
2256  _has_bits_[0] &= ~0x00000002u;
2257  }
2258  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2259  name, GetArena());
2260  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.util.ais.protobuf.Voyage.name)
2261 }
2262 
2263 // optional .goby.util.ais.protobuf.Voyage.ShipType type = 7 [default = TYPE__NOT_AVAILABLE];
2264 inline bool Voyage::_internal_has_type() const {
2265  bool value = (_has_bits_[0] & 0x00000040u) != 0;
2266  return value;
2267 }
2268 inline bool Voyage::has_type() const {
2269  return _internal_has_type();
2270 }
2271 inline void Voyage::clear_type() {
2272  type_ = 0;
2273  _has_bits_[0] &= ~0x00000040u;
2274 }
2275 inline ::goby::util::ais::protobuf::Voyage_ShipType Voyage::_internal_type() const {
2276  return static_cast< ::goby::util::ais::protobuf::Voyage_ShipType >(type_);
2277 }
2279  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.type)
2280  return _internal_type();
2281 }
2282 inline void Voyage::_internal_set_type(::goby::util::ais::protobuf::Voyage_ShipType value) {
2284  _has_bits_[0] |= 0x00000040u;
2285  type_ = value;
2286 }
2287 inline void Voyage::set_type(::goby::util::ais::protobuf::Voyage_ShipType value) {
2288  _internal_set_type(value);
2289  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.type)
2290 }
2291 
2292 // optional uint32 to_bow = 8 [(.dccl.field) = {
2293 inline bool Voyage::_internal_has_to_bow() const {
2294  bool value = (_has_bits_[0] & 0x00000080u) != 0;
2295  return value;
2296 }
2297 inline bool Voyage::has_to_bow() const {
2298  return _internal_has_to_bow();
2299 }
2300 inline void Voyage::clear_to_bow() {
2301  to_bow_ = 0u;
2302  _has_bits_[0] &= ~0x00000080u;
2303 }
2304 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_to_bow() const {
2305  return to_bow_;
2306 }
2307 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::to_bow() const {
2308  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.to_bow)
2309  return _internal_to_bow();
2310 }
2311 inline void Voyage::_internal_set_to_bow(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2312  _has_bits_[0] |= 0x00000080u;
2313  to_bow_ = value;
2314 }
2315 inline void Voyage::set_to_bow(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2316  _internal_set_to_bow(value);
2317  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.to_bow)
2318 }
2319 
2320 // optional uint32 to_stern = 9 [(.dccl.field) = {
2321 inline bool Voyage::_internal_has_to_stern() const {
2322  bool value = (_has_bits_[0] & 0x00000100u) != 0;
2323  return value;
2324 }
2325 inline bool Voyage::has_to_stern() const {
2326  return _internal_has_to_stern();
2327 }
2328 inline void Voyage::clear_to_stern() {
2329  to_stern_ = 0u;
2330  _has_bits_[0] &= ~0x00000100u;
2331 }
2332 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_to_stern() const {
2333  return to_stern_;
2334 }
2335 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::to_stern() const {
2336  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.to_stern)
2337  return _internal_to_stern();
2338 }
2339 inline void Voyage::_internal_set_to_stern(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2340  _has_bits_[0] |= 0x00000100u;
2341  to_stern_ = value;
2342 }
2343 inline void Voyage::set_to_stern(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2344  _internal_set_to_stern(value);
2345  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.to_stern)
2346 }
2347 
2348 // optional uint32 to_port = 10 [(.dccl.field) = {
2349 inline bool Voyage::_internal_has_to_port() const {
2350  bool value = (_has_bits_[0] & 0x00000200u) != 0;
2351  return value;
2352 }
2353 inline bool Voyage::has_to_port() const {
2354  return _internal_has_to_port();
2355 }
2356 inline void Voyage::clear_to_port() {
2357  to_port_ = 0u;
2358  _has_bits_[0] &= ~0x00000200u;
2359 }
2360 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_to_port() const {
2361  return to_port_;
2362 }
2363 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::to_port() const {
2364  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.to_port)
2365  return _internal_to_port();
2366 }
2367 inline void Voyage::_internal_set_to_port(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2368  _has_bits_[0] |= 0x00000200u;
2369  to_port_ = value;
2370 }
2371 inline void Voyage::set_to_port(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2372  _internal_set_to_port(value);
2373  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.to_port)
2374 }
2375 
2376 // optional uint32 to_starboard = 11 [(.dccl.field) = {
2377 inline bool Voyage::_internal_has_to_starboard() const {
2378  bool value = (_has_bits_[0] & 0x00000400u) != 0;
2379  return value;
2380 }
2381 inline bool Voyage::has_to_starboard() const {
2382  return _internal_has_to_starboard();
2383 }
2384 inline void Voyage::clear_to_starboard() {
2385  to_starboard_ = 0u;
2386  _has_bits_[0] &= ~0x00000400u;
2387 }
2388 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_to_starboard() const {
2389  return to_starboard_;
2390 }
2391 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::to_starboard() const {
2392  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.to_starboard)
2393  return _internal_to_starboard();
2394 }
2395 inline void Voyage::_internal_set_to_starboard(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2396  _has_bits_[0] |= 0x00000400u;
2397  to_starboard_ = value;
2398 }
2399 inline void Voyage::set_to_starboard(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2400  _internal_set_to_starboard(value);
2401  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.to_starboard)
2402 }
2403 
2404 // optional .goby.util.ais.protobuf.Voyage.FixType fix_type = 12 [default = FIX__UNDEFINED];
2405 inline bool Voyage::_internal_has_fix_type() const {
2406  bool value = (_has_bits_[0] & 0x00000800u) != 0;
2407  return value;
2408 }
2409 inline bool Voyage::has_fix_type() const {
2410  return _internal_has_fix_type();
2411 }
2412 inline void Voyage::clear_fix_type() {
2413  fix_type_ = 0;
2414  _has_bits_[0] &= ~0x00000800u;
2415 }
2416 inline ::goby::util::ais::protobuf::Voyage_FixType Voyage::_internal_fix_type() const {
2417  return static_cast< ::goby::util::ais::protobuf::Voyage_FixType >(fix_type_);
2418 }
2419 inline ::goby::util::ais::protobuf::Voyage_FixType Voyage::fix_type() const {
2420  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.fix_type)
2421  return _internal_fix_type();
2422 }
2423 inline void Voyage::_internal_set_fix_type(::goby::util::ais::protobuf::Voyage_FixType value) {
2425  _has_bits_[0] |= 0x00000800u;
2426  fix_type_ = value;
2427 }
2428 inline void Voyage::set_fix_type(::goby::util::ais::protobuf::Voyage_FixType value) {
2429  _internal_set_fix_type(value);
2430  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.fix_type)
2431 }
2432 
2433 // optional uint32 eta_month = 13 [(.dccl.field) = {
2434 inline bool Voyage::_internal_has_eta_month() const {
2435  bool value = (_has_bits_[0] & 0x00001000u) != 0;
2436  return value;
2437 }
2438 inline bool Voyage::has_eta_month() const {
2439  return _internal_has_eta_month();
2440 }
2441 inline void Voyage::clear_eta_month() {
2442  eta_month_ = 0u;
2443  _has_bits_[0] &= ~0x00001000u;
2444 }
2445 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_eta_month() const {
2446  return eta_month_;
2447 }
2448 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::eta_month() const {
2449  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.eta_month)
2450  return _internal_eta_month();
2451 }
2452 inline void Voyage::_internal_set_eta_month(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2453  _has_bits_[0] |= 0x00001000u;
2454  eta_month_ = value;
2455 }
2456 inline void Voyage::set_eta_month(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2457  _internal_set_eta_month(value);
2458  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.eta_month)
2459 }
2460 
2461 // optional uint32 eta_day = 14 [(.dccl.field) = {
2462 inline bool Voyage::_internal_has_eta_day() const {
2463  bool value = (_has_bits_[0] & 0x00002000u) != 0;
2464  return value;
2465 }
2466 inline bool Voyage::has_eta_day() const {
2467  return _internal_has_eta_day();
2468 }
2469 inline void Voyage::clear_eta_day() {
2470  eta_day_ = 0u;
2471  _has_bits_[0] &= ~0x00002000u;
2472 }
2473 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_eta_day() const {
2474  return eta_day_;
2475 }
2476 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::eta_day() const {
2477  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.eta_day)
2478  return _internal_eta_day();
2479 }
2480 inline void Voyage::_internal_set_eta_day(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2481  _has_bits_[0] |= 0x00002000u;
2482  eta_day_ = value;
2483 }
2484 inline void Voyage::set_eta_day(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2485  _internal_set_eta_day(value);
2486  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.eta_day)
2487 }
2488 
2489 // optional uint32 eta_hour = 15 [(.dccl.field) = {
2490 inline bool Voyage::_internal_has_eta_hour() const {
2491  bool value = (_has_bits_[0] & 0x00004000u) != 0;
2492  return value;
2493 }
2494 inline bool Voyage::has_eta_hour() const {
2495  return _internal_has_eta_hour();
2496 }
2497 inline void Voyage::clear_eta_hour() {
2498  eta_hour_ = 0u;
2499  _has_bits_[0] &= ~0x00004000u;
2500 }
2501 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_eta_hour() const {
2502  return eta_hour_;
2503 }
2504 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::eta_hour() const {
2505  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.eta_hour)
2506  return _internal_eta_hour();
2507 }
2508 inline void Voyage::_internal_set_eta_hour(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2509  _has_bits_[0] |= 0x00004000u;
2510  eta_hour_ = value;
2511 }
2512 inline void Voyage::set_eta_hour(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2513  _internal_set_eta_hour(value);
2514  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.eta_hour)
2515 }
2516 
2517 // optional uint32 eta_minute = 16 [(.dccl.field) = {
2518 inline bool Voyage::_internal_has_eta_minute() const {
2519  bool value = (_has_bits_[0] & 0x00008000u) != 0;
2520  return value;
2521 }
2522 inline bool Voyage::has_eta_minute() const {
2523  return _internal_has_eta_minute();
2524 }
2525 inline void Voyage::clear_eta_minute() {
2526  eta_minute_ = 0u;
2527  _has_bits_[0] &= ~0x00008000u;
2528 }
2529 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::_internal_eta_minute() const {
2530  return eta_minute_;
2531 }
2532 inline ::PROTOBUF_NAMESPACE_ID::uint32 Voyage::eta_minute() const {
2533  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.eta_minute)
2534  return _internal_eta_minute();
2535 }
2536 inline void Voyage::_internal_set_eta_minute(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2537  _has_bits_[0] |= 0x00008000u;
2538  eta_minute_ = value;
2539 }
2540 inline void Voyage::set_eta_minute(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2541  _internal_set_eta_minute(value);
2542  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.eta_minute)
2543 }
2544 
2545 // optional float draught = 17 [(.dccl.field) = {
2546 inline bool Voyage::_internal_has_draught() const {
2547  bool value = (_has_bits_[0] & 0x00010000u) != 0;
2548  return value;
2549 }
2550 inline bool Voyage::has_draught() const {
2551  return _internal_has_draught();
2552 }
2553 inline void Voyage::clear_draught() {
2554  draught_ = 0;
2555  _has_bits_[0] &= ~0x00010000u;
2556 }
2557 inline float Voyage::_internal_draught() const {
2558  return draught_;
2559 }
2560 inline float Voyage::draught() const {
2561  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.draught)
2562  return _internal_draught();
2563 }
2564 inline void Voyage::_internal_set_draught(float value) {
2565  _has_bits_[0] |= 0x00010000u;
2566  draught_ = value;
2567 }
2568 inline void Voyage::set_draught(float value) {
2569  _internal_set_draught(value);
2570  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.draught)
2571 }
2572 
2573 // optional string destination = 18 [(.dccl.field) = {
2574 inline bool Voyage::_internal_has_destination() const {
2575  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2576  return value;
2577 }
2578 inline bool Voyage::has_destination() const {
2579  return _internal_has_destination();
2580 }
2581 inline void Voyage::clear_destination() {
2582  destination_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2583  _has_bits_[0] &= ~0x00000004u;
2584 }
2585 inline const std::string& Voyage::destination() const {
2586  // @@protoc_insertion_point(field_get:goby.util.ais.protobuf.Voyage.destination)
2587  return _internal_destination();
2588 }
2589 inline void Voyage::set_destination(const std::string& value) {
2590  _internal_set_destination(value);
2591  // @@protoc_insertion_point(field_set:goby.util.ais.protobuf.Voyage.destination)
2592 }
2593 inline std::string* Voyage::mutable_destination() {
2594  // @@protoc_insertion_point(field_mutable:goby.util.ais.protobuf.Voyage.destination)
2595  return _internal_mutable_destination();
2596 }
2597 inline const std::string& Voyage::_internal_destination() const {
2598  return destination_.Get();
2599 }
2600 inline void Voyage::_internal_set_destination(const std::string& value) {
2601  _has_bits_[0] |= 0x00000004u;
2602  destination_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
2603 }
2604 inline void Voyage::set_destination(std::string&& value) {
2605  _has_bits_[0] |= 0x00000004u;
2606  destination_.Set(
2607  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
2608  // @@protoc_insertion_point(field_set_rvalue:goby.util.ais.protobuf.Voyage.destination)
2609 }
2610 inline void Voyage::set_destination(const char* value) {
2611  GOOGLE_DCHECK(value != nullptr);
2612  _has_bits_[0] |= 0x00000004u;
2613  destination_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
2614  GetArena());
2615  // @@protoc_insertion_point(field_set_char:goby.util.ais.protobuf.Voyage.destination)
2616 }
2617 inline void Voyage::set_destination(const char* value,
2618  size_t size) {
2619  _has_bits_[0] |= 0x00000004u;
2620  destination_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
2621  reinterpret_cast<const char*>(value), size), GetArena());
2622  // @@protoc_insertion_point(field_set_pointer:goby.util.ais.protobuf.Voyage.destination)
2623 }
2624 inline std::string* Voyage::_internal_mutable_destination() {
2625  _has_bits_[0] |= 0x00000004u;
2626  return destination_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2627 }
2628 inline std::string* Voyage::release_destination() {
2629  // @@protoc_insertion_point(field_release:goby.util.ais.protobuf.Voyage.destination)
2630  if (!_internal_has_destination()) {
2631  return nullptr;
2632  }
2633  _has_bits_[0] &= ~0x00000004u;
2634  return destination_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2635 }
2636 inline void Voyage::set_allocated_destination(std::string* destination) {
2637  if (destination != nullptr) {
2638  _has_bits_[0] |= 0x00000004u;
2639  } else {
2640  _has_bits_[0] &= ~0x00000004u;
2641  }
2642  destination_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), destination,
2643  GetArena());
2644  // @@protoc_insertion_point(field_set_allocated:goby.util.ais.protobuf.Voyage.destination)
2645 }
2646 inline std::string* Voyage::unsafe_arena_release_destination() {
2647  // @@protoc_insertion_point(field_unsafe_arena_release:goby.util.ais.protobuf.Voyage.destination)
2648  GOOGLE_DCHECK(GetArena() != nullptr);
2649  _has_bits_[0] &= ~0x00000004u;
2650  return destination_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2651  GetArena());
2652 }
2653 inline void Voyage::unsafe_arena_set_allocated_destination(
2654  std::string* destination) {
2655  GOOGLE_DCHECK(GetArena() != nullptr);
2656  if (destination != nullptr) {
2657  _has_bits_[0] |= 0x00000004u;
2658  } else {
2659  _has_bits_[0] &= ~0x00000004u;
2660  }
2661  destination_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2662  destination, GetArena());
2663  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.util.ais.protobuf.Voyage.destination)
2664 }
2665 
2666 #ifdef __GNUC__
2667  #pragma GCC diagnostic pop
2668 #endif // __GNUC__
2669 // -------------------------------------------------------------------
2670 
2671 
2672 // @@protoc_insertion_point(namespace_scope)
2673 
2674 } // namespace protobuf
2675 } // namespace ais
2676 } // namespace util
2677 } // namespace goby
2678 
2679 PROTOBUF_NAMESPACE_OPEN
2680 
2681 template <> struct is_proto_enum< ::goby::util::ais::protobuf::Position_TurnInfo> : ::std::true_type {};
2682 template <>
2683 inline const EnumDescriptor* GetEnumDescriptor< ::goby::util::ais::protobuf::Position_TurnInfo>() {
2685 }
2686 template <> struct is_proto_enum< ::goby::util::ais::protobuf::Position_PositionAccuracy> : ::std::true_type {};
2687 template <>
2688 inline const EnumDescriptor* GetEnumDescriptor< ::goby::util::ais::protobuf::Position_PositionAccuracy>() {
2690 }
2691 template <> struct is_proto_enum< ::goby::util::ais::protobuf::Voyage_ShipType> : ::std::true_type {};
2692 template <>
2693 inline const EnumDescriptor* GetEnumDescriptor< ::goby::util::ais::protobuf::Voyage_ShipType>() {
2695 }
2696 template <> struct is_proto_enum< ::goby::util::ais::protobuf::Voyage_FixType> : ::std::true_type {};
2697 template <>
2698 inline const EnumDescriptor* GetEnumDescriptor< ::goby::util::ais::protobuf::Voyage_FixType>() {
2700 }
2701 template <> struct is_proto_enum< ::goby::util::ais::protobuf::Status> : ::std::true_type {};
2702 template <>
2703 inline const EnumDescriptor* GetEnumDescriptor< ::goby::util::ais::protobuf::Status>() {
2705 }
2706 
2707 PROTOBUF_NAMESPACE_CLOSE
2708 
2709 // @@protoc_insertion_point(global_scope)
2710 
2711 #include <google/protobuf/port_undef.inc>
2712 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_goby_2futil_2fprotobuf_2fais_2eproto
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_goby_2futil_2fprotobuf_2fais_2eproto
::PROTOBUF_NAMESPACE_ID::int32 message_id() const
boost::units::angular_velocity_dimension turn_rate_dimension
Definition: ais.pb.h:699
Quantity true_heading_with_units() const
Definition: ais.pb.h:783
void UnsafeArenaSwap(Position *other)
Definition: ais.pb.h:391
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
Definition: ais.pb.h:361
::PROTOBUF_NAMESPACE_ID::int32 report_second() const
void set_to_starboard_with_units(Quantity value_w_units)
Definition: ais.pb.h:1558
const std::string & callsign() const
Voyage & operator=(Voyage &&from) noexcept
Definition: ais.pb.h:846
boost::units::quantity< turn_rate_unit, float > turn_rate_with_units() const
Definition: ais.pb.h:711
static bool ShipType_Parse(const std::string &name, ShipType *value)
Definition: ais.pb.h:1168
static const std::string & ShipType_Name(T enum_t_value)
Definition: ais.pb.h:1162
boost::units::length_dimension draught_dimension
Definition: ais.pb.h:1566
Position * New() const final
Definition: ais.pb.h:399
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
Definition: ais.pb.h:364
Position & operator=(Position &&from) noexcept
Definition: ais.pb.h:345
void set_lon_with_units(Quantity value_w_units)
Definition: ais.pb.h:749
void set_lat_with_units(Quantity value_w_units)
Definition: ais.pb.h:734
friend void swap(Position &a, Position &b)
Definition: ais.pb.h:380
static const Position * internal_default_instance()
Definition: ais.pb.h:373
boost::units::length_dimension to_starboard_dimension
Definition: ais.pb.h:1551
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * FixType_descriptor()
Definition: ais.pb.h:1202
static const std::string & TurnInfo_Name(T enum_t_value)
Definition: ais.pb.h:471
Position(Position &&from) noexcept
Definition: ais.pb.h:336
boost::units::unit< to_starboard_dimension, boost::units::si::system > to_starboard_unit
Definition: ais.pb.h:1555
Voyage & operator=(const Voyage &from)
Definition: ais.pb.h:842
void UnsafeArenaSwap(Voyage *other)
Definition: ais.pb.h:892
Position * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: ais.pb.h:403
boost::units::plane_angle_dimension course_over_ground_dimension
Definition: ais.pb.h:757
void set_position_accuracy(::goby::util::ais::protobuf::Position_PositionAccuracy value)
boost::units::quantity< to_starboard_unit, google::protobuf::uint32 > to_starboard_with_units() const
Definition: ais.pb.h:1565
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
Definition: ais.pb.h:367
::goby::util::ais::protobuf::Position_PositionAccuracy position_accuracy() const
boost::units::plane_angle_dimension lat_dimension
Definition: ais.pb.h:727
Quantity speed_over_ground_with_units() const
Definition: ais.pb.h:723
void set_to_port_with_units(Quantity value_w_units)
Definition: ais.pb.h:1543
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * TurnInfo_descriptor()
Definition: ais.pb.h:467
void MergeFrom(const Position &from)
boost::units::quantity< to_bow_unit, google::protobuf::uint32 > to_bow_with_units() const
Definition: ais.pb.h:1520
Voyage(Voyage &&from) noexcept
Definition: ais.pb.h:837
boost::units::quantity< lon_unit, double > lon_with_units() const
Definition: ais.pb.h:756
void set_speed_over_ground_with_units(Quantity value_w_units)
Definition: ais.pb.h:719
boost::units::quantity< true_heading_unit, float > true_heading_with_units() const
Definition: ais.pb.h:786
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
static bool TurnInfo_IsValid(int value)
Definition: ais.pb.h:457
boost::units::quantity< to_port_unit, google::protobuf::uint32 > to_port_with_units() const
Definition: ais.pb.h:1550
boost::units::unit< to_bow_dimension, boost::units::si::system > to_bow_unit
Definition: ais.pb.h:1510
::PROTOBUF_NAMESPACE_ID::int32 mmsi() const
void set_to_bow_with_units(Quantity value_w_units)
Definition: ais.pb.h:1513
void set_nav_status(::goby::util::ais::protobuf::Status value)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
Quantity course_over_ground_with_units() const
Definition: ais.pb.h:768
boost::units::quantity< course_over_ground_unit, float > course_over_ground_with_units() const
Definition: ais.pb.h:771
boost::units::unit< lat_dimension, boost::units::degree::system > lat_unit
Definition: ais.pb.h:731
boost::units::unit< to_stern_dimension, boost::units::si::system > to_stern_unit
Definition: ais.pb.h:1525
void set_mmsi(::PROTOBUF_NAMESPACE_ID::int32 value)
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
Quantity report_second_with_units() const
Definition: ais.pb.h:798
void set_report_second_with_units(Quantity value_w_units)
Definition: ais.pb.h:794
boost::units::quantity< draught_unit, float > draught_with_units() const
Definition: ais.pb.h:1580
void set_callsign(const char *value, size_t size)
boost::units::unit< speed_over_ground_dimension, boost::units::si::system > speed_over_ground_unit
Definition: ais.pb.h:716
static const std::string & PositionAccuracy_Name(T enum_t_value)
Definition: ais.pb.h:501
void set_message_id(::PROTOBUF_NAMESPACE_ID::int32 value)
static const Voyage & default_instance()
boost::units::unit< draught_dimension, boost::units::si::system > draught_unit
Definition: ais.pb.h:1570
Position(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::unit< turn_rate_dimension, boost::units::si::system > turn_rate_unit
Definition: ais.pb.h:701
static bool PositionAccuracy_IsValid(int value)
Definition: ais.pb.h:487
Voyage(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::quantity< speed_over_ground_unit, float > speed_over_ground_with_units() const
Definition: ais.pb.h:726
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
boost::units::plane_angle_dimension true_heading_dimension
Definition: ais.pb.h:772
void set_draught_with_units(Quantity value_w_units)
Definition: ais.pb.h:1573
friend void swap(Voyage &a, Voyage &b)
Definition: ais.pb.h:881
void set_allocated_callsign(std::string *callsign)
Position_PositionAccuracy PositionAccuracy
Definition: ais.pb.h:482
boost::units::plane_angle_dimension lon_dimension
Definition: ais.pb.h:742
boost::units::length_dimension to_port_dimension
Definition: ais.pb.h:1536
static bool FixType_Parse(const std::string &name, FixType *value)
Definition: ais.pb.h:1212
boost::units::unit< course_over_ground_dimension, boost::units::degree::system > course_over_ground_unit
Definition: ais.pb.h:761
static bool ShipType_IsValid(int value)
Definition: ais.pb.h:1148
void set_turn_rate_with_units(Quantity value_w_units)
Definition: ais.pb.h:704
boost::units::unit< report_second_dimension, boost::units::si::system > report_second_unit
Definition: ais.pb.h:791
Position & operator=(const Position &from)
Definition: ais.pb.h:341
::goby::util::ais::protobuf::Status nav_status() const
boost::units::unit< true_heading_dimension, boost::units::degree::system > true_heading_unit
Definition: ais.pb.h:776
static bool TurnInfo_Parse(const std::string &name, TurnInfo *value)
Definition: ais.pb.h:477
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
Definition: ais.pb.h:354
boost::units::quantity< report_second_unit, google::protobuf::int32 > report_second_with_units() const
Definition: ais.pb.h:801
static const Voyage * internal_default_instance()
Definition: ais.pb.h:874
void set_true_heading_with_units(Quantity value_w_units)
Definition: ais.pb.h:779
boost::units::velocity_dimension speed_over_ground_dimension
Definition: ais.pb.h:712
void set_turn_info(::goby::util::ais::protobuf::Position_TurnInfo value)
boost::units::length_dimension to_stern_dimension
Definition: ais.pb.h:1521
void set_callsign(std::string &&value)
boost::units::quantity< lat_unit, double > lat_with_units() const
Definition: ais.pb.h:741
void CopyFrom(const Position &from)
void set_callsign(const std::string &value)
void set_to_stern_with_units(Quantity value_w_units)
Definition: ais.pb.h:1528
static const Position & default_instance()
static bool FixType_IsValid(int value)
Definition: ais.pb.h:1192
void set_report_second(::PROTOBUF_NAMESPACE_ID::int32 value)
boost::units::unit< to_port_dimension, boost::units::si::system > to_port_unit
Definition: ais.pb.h:1540
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * PositionAccuracy_descriptor()
Definition: ais.pb.h:497
Voyage * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: ais.pb.h:904
boost::units::unit< lon_dimension, boost::units::degree::system > lon_unit
Definition: ais.pb.h:746
boost::units::length_dimension to_bow_dimension
Definition: ais.pb.h:1508
void set_course_over_ground_with_units(Quantity value_w_units)
Definition: ais.pb.h:764
boost::units::time_dimension report_second_dimension
Definition: ais.pb.h:787
::goby::util::ais::protobuf::Position_TurnInfo turn_info() const
boost::units::quantity< to_stern_unit, google::protobuf::uint32 > to_stern_with_units() const
Definition: ais.pb.h:1535
static const std::string & FixType_Name(T enum_t_value)
Definition: ais.pb.h:1206
static bool PositionAccuracy_Parse(const std::string &name, PositionAccuracy *value)
Definition: ais.pb.h:507
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
Definition: ais.pb.h:357
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * ShipType_descriptor()
Definition: ais.pb.h:1158
@ value
the parser finished reading a JSON value
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Voyage_ShipType_descriptor()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Position_PositionAccuracy_descriptor()
constexpr Position_TurnInfo Position_TurnInfo_TurnInfo_MIN
Definition: ais.pb.h:98
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Position_TurnInfo_descriptor()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Voyage_FixType_descriptor()
constexpr Status Status_MAX
Definition: ais.pb.h:310
bool Status_Parse(const std::string &name, Status *value)
Definition: ais.pb.h:322
constexpr int Voyage_ShipType_ShipType_ARRAYSIZE
Definition: ais.pb.h:244
constexpr int Status_ARRAYSIZE
Definition: ais.pb.h:311
bool Voyage_FixType_IsValid(int value)
@ Position_PositionAccuracy_ACCURACY__HIGH__BELOW_10_METERS
Definition: ais.pb.h:118
@ Position_PositionAccuracy_ACCURACY__LOW__ABOVE_10_METERS
Definition: ais.pb.h:117
bool Status_IsValid(int value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Status_descriptor()
bool Voyage_ShipType_Parse(const std::string &name, Voyage_ShipType *value)
Definition: ais.pb.h:255
const std::string & Position_PositionAccuracy_Name(T enum_t_value)
Definition: ais.pb.h:127
bool Position_PositionAccuracy_Parse(const std::string &name, Position_PositionAccuracy *value)
Definition: ais.pb.h:134
@ Position_TurnInfo_TURN_INFO__NOT_TURNING
Definition: ais.pb.h:91
@ Position_TurnInfo_TURN_INFO__NO_TURN_INFORMATION
Definition: ais.pb.h:95
@ Position_TurnInfo_TURN_INFO__TURNING_RIGHT_AT_MORE_THAN_5_DEG_PER_30_SEC
Definition: ais.pb.h:93
@ Position_TurnInfo_TURN_INFO__TURNING_AT_GIVEN_RATE
Definition: ais.pb.h:92
@ Position_TurnInfo_TURN_INFO__TURNING_LEFT_AT_MORE_THAN_5_DEG_PER_30_SEC
Definition: ais.pb.h:94
constexpr Voyage_FixType Voyage_FixType_FixType_MAX
Definition: ais.pb.h:273
@ Voyage_FixType_FIX__COMBINED_GPS_AND_GLONASS
Definition: ais.pb.h:264
@ Voyage_FixType_FIX__INTEGRATED_NAVIGATION_SYSTEM
Definition: ais.pb.h:267
const std::string & Position_TurnInfo_Name(T enum_t_value)
Definition: ais.pb.h:104
constexpr int Position_PositionAccuracy_PositionAccuracy_ARRAYSIZE
Definition: ais.pb.h:123
const std::string & Voyage_ShipType_Name(T enum_t_value)
Definition: ais.pb.h:248
constexpr int Position_TurnInfo_TurnInfo_ARRAYSIZE
Definition: ais.pb.h:100
const std::string & Status_Name(T enum_t_value)
Definition: ais.pb.h:315
bool Position_TurnInfo_IsValid(int value)
@ AIS_STATUS__CONSTRAINED_BY_HER_DRAUGHT
Definition: ais.pb.h:295
@ AIS_STATUS__RESERVED_FOR_WING_IN_GROUND
Definition: ais.pb.h:301
@ AIS_STATUS__RESERVED_FOR_HIGH_SPEED_CRAFT
Definition: ais.pb.h:300
@ AIS_STATUS__RESTRICTED_MANOEUVERABILITY
Definition: ais.pb.h:294
constexpr Voyage_FixType Voyage_FixType_FixType_MIN
Definition: ais.pb.h:272
constexpr Voyage_ShipType Voyage_ShipType_ShipType_MIN
Definition: ais.pb.h:242
bool Position_TurnInfo_Parse(const std::string &name, Position_TurnInfo *value)
Definition: ais.pb.h:111
PositionDefaultTypeInternal _Position_default_instance_
constexpr Position_TurnInfo Position_TurnInfo_TurnInfo_MAX
Definition: ais.pb.h:99
bool Voyage_FixType_Parse(const std::string &name, Voyage_FixType *value)
Definition: ais.pb.h:285
@ Voyage_ShipType_TYPE__TOWING_LENGTH_EXCEEDS_200M_OR_BREADTH_EXCEEDS_25M
Definition: ais.pb.h:172
@ Voyage_ShipType_TYPE__CARGO_HAZARDOUS_CATEGORY_B
Definition: ais.pb.h:212
@ Voyage_ShipType_TYPE__TANKER_HAZARDOUS_CATEGORY_A
Definition: ais.pb.h:221
@ Voyage_ShipType_TYPE__OTHER_HAZARDOUS_CATEGORY_A
Definition: ais.pb.h:231
@ Voyage_ShipType_TYPE__OTHER_RESERVED_67
Definition: ais.pb.h:237
@ Voyage_ShipType_TYPE__TANKER_RESERVED_68
Definition: ais.pb.h:228
@ Voyage_ShipType_TYPE__CARGO_NO_ADDITIONAL_INFORMATION
Definition: ais.pb.h:219
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_B
Definition: ais.pb.h:182
@ Voyage_ShipType_TYPE__WING_IN_GROUND_RESERVED_26
Definition: ais.pb.h:166
@ Voyage_ShipType_TYPE__PASSENGER_RESERVED_65
Definition: ais.pb.h:205
@ Voyage_ShipType_TYPE__PASSENGER_RESERVED_67
Definition: ais.pb.h:207
@ Voyage_ShipType_TYPE__TANKER_RESERVED_67
Definition: ais.pb.h:227
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT
Definition: ais.pb.h:180
@ Voyage_ShipType_TYPE__OTHER_RESERVED_65
Definition: ais.pb.h:235
@ Voyage_ShipType_TYPE__PASSENGER_HAZARDOUS_CATEGORY_D
Definition: ais.pb.h:204
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_RESERVED_47
Definition: ais.pb.h:187
@ Voyage_ShipType_TYPE__CARGO_RESERVED_65
Definition: ais.pb.h:215
@ Voyage_ShipType_TYPE__TANKER_RESERVED_66
Definition: ais.pb.h:226
@ Voyage_ShipType_TYPE__CARGO_HAZARDOUS_CATEGORY_D
Definition: ais.pb.h:214
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_A
Definition: ais.pb.h:181
@ Voyage_ShipType_TYPE__PASSENGER_HAZARDOUS_CATEGORY_C
Definition: ais.pb.h:203
@ Voyage_ShipType_TYPE__PASSENGER_NO_ADDITIONAL_INFORMATION
Definition: ais.pb.h:209
@ Voyage_ShipType_TYPE__WING_IN_GROUND_RESERVED_27
Definition: ais.pb.h:167
@ Voyage_ShipType_TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_A
Definition: ais.pb.h:161
@ Voyage_ShipType_TYPE__OTHER_NO_ADDITIONAL_INFORMATION
Definition: ais.pb.h:239
@ Voyage_ShipType_TYPE__WING_IN_GROUND_RESERVED_28
Definition: ais.pb.h:168
@ Voyage_ShipType_TYPE__TANKER_NO_ADDITIONAL_INFORMATION
Definition: ais.pb.h:229
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_C
Definition: ais.pb.h:183
@ Voyage_ShipType_TYPE__CARGO_RESERVED_68
Definition: ais.pb.h:218
@ Voyage_ShipType_TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_D
Definition: ais.pb.h:164
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_NO_ADDITIONAL_INFORMATION
Definition: ais.pb.h:189
@ Voyage_ShipType_TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_C
Definition: ais.pb.h:163
@ Voyage_ShipType_TYPE__DREDGING_OR_UNDERWATER_OPS
Definition: ais.pb.h:173
@ Voyage_ShipType_TYPE__TANKER_RESERVED_65
Definition: ais.pb.h:225
@ Voyage_ShipType_TYPE__TANKER_HAZARDOUS_CATEGORY_B
Definition: ais.pb.h:222
@ Voyage_ShipType_TYPE__WING_IN_GROUND
Definition: ais.pb.h:160
@ Voyage_ShipType_TYPE__WING_IN_GROUND_HAZARDOUS_CATEGORY_B
Definition: ais.pb.h:162
@ Voyage_ShipType_TYPE__OTHER_RESERVED_68
Definition: ais.pb.h:238
@ Voyage_ShipType_TYPE__PASSENGER_HAZARDOUS_CATEGORY_B
Definition: ais.pb.h:202
@ Voyage_ShipType_TYPE__WING_IN_GROUND_RESERVED_29
Definition: ais.pb.h:169
@ Voyage_ShipType_TYPE__NONCOMBATANT_SHIP_ACCORDING_TO_RR_RESOLUTION_NO_18
Definition: ais.pb.h:199
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_HAZARDOUS_CATEGORY_D
Definition: ais.pb.h:184
@ Voyage_ShipType_TYPE__LAW_ENFORCEMENT
Definition: ais.pb.h:195
@ Voyage_ShipType_TYPE__OTHER_HAZARDOUS_CATEGORY_D
Definition: ais.pb.h:234
@ Voyage_ShipType_TYPE__PASSENGER_RESERVED_68
Definition: ais.pb.h:208
@ Voyage_ShipType_TYPE__SPARE57_LOCAL_VESSEL
Definition: ais.pb.h:197
@ Voyage_ShipType_TYPE__PASSENGER_RESERVED_66
Definition: ais.pb.h:206
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_RESERVED_48
Definition: ais.pb.h:188
@ Voyage_ShipType_TYPE__CARGO_RESERVED_66
Definition: ais.pb.h:216
@ Voyage_ShipType_TYPE__OTHER_HAZARDOUS_CATEGORY_C
Definition: ais.pb.h:233
@ Voyage_ShipType_TYPE__CARGO_HAZARDOUS_CATEGORY_C
Definition: ais.pb.h:213
@ Voyage_ShipType_TYPE__OTHER_RESERVED_66
Definition: ais.pb.h:236
@ Voyage_ShipType_TYPE__PASSENGER_HAZARDOUS_CATEGORY_A
Definition: ais.pb.h:201
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_RESERVED_46
Definition: ais.pb.h:186
@ Voyage_ShipType_TYPE__OTHER_HAZARDOUS_CATEGORY_B
Definition: ais.pb.h:232
@ Voyage_ShipType_TYPE__TANKER_HAZARDOUS_CATEGORY_D
Definition: ais.pb.h:224
@ Voyage_ShipType_TYPE__SPARE56_LOCAL_VESSEL
Definition: ais.pb.h:196
@ Voyage_ShipType_TYPE__PLEASURE_CRAFT
Definition: ais.pb.h:177
@ Voyage_ShipType_TYPE__HIGH_SPEED_CRAFT_RESERVED_45
Definition: ais.pb.h:185
@ Voyage_ShipType_TYPE__ANTI_POLLUTION_EQUIPMENT
Definition: ais.pb.h:194
@ Voyage_ShipType_TYPE__CARGO_HAZARDOUS_CATEGORY_A
Definition: ais.pb.h:211
@ Voyage_ShipType_TYPE__WING_IN_GROUND_RESERVED_25
Definition: ais.pb.h:165
@ Voyage_ShipType_TYPE__MEDICAL_TRANSPORT
Definition: ais.pb.h:198
@ Voyage_ShipType_TYPE__CARGO_RESERVED_67
Definition: ais.pb.h:217
@ Voyage_ShipType_TYPE__SEARCH_AND_RESCUE_VESSEL
Definition: ais.pb.h:191
@ Voyage_ShipType_TYPE__TANKER_HAZARDOUS_CATEGORY_C
Definition: ais.pb.h:223
constexpr Position_PositionAccuracy Position_PositionAccuracy_PositionAccuracy_MAX
Definition: ais.pb.h:122
bool Voyage_ShipType_IsValid(int value)
bool Position_PositionAccuracy_IsValid(int value)
constexpr int Voyage_FixType_FixType_ARRAYSIZE
Definition: ais.pb.h:274
constexpr Position_PositionAccuracy Position_PositionAccuracy_PositionAccuracy_MIN
Definition: ais.pb.h:121
constexpr Status Status_MIN
Definition: ais.pb.h:309
VoyageDefaultTypeInternal _Voyage_default_instance_
const std::string & Voyage_FixType_Name(T enum_t_value)
Definition: ais.pb.h:278
constexpr Voyage_ShipType Voyage_ShipType_ShipType_MAX
Definition: ais.pb.h:243
The global namespace for the Goby project.
std::int32_t int32
std::uint32_t uint32
PROTOBUF_EXPORT const std::string & GetEmptyStringAlreadyInited()
Definition: message_lite.h:154
type
Generic JSON types used in JWTs.
Definition: jwt.h:2072
#define ByteSizeLong
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
Definition: ais.pb.h:62
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
Definition: ais.pb.h:63
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: ais.pb.h:64
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)