Goby3  3.1.5
2024.05.14
frontseat_data.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: goby/middleware/protobuf/frontseat_data.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_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"
38 #include <boost/units/quantity.hpp>
39 #include <boost/units/absolute.hpp>
40 #include <boost/units/dimensionless_type.hpp>
41 #include <boost/units/make_scaled_unit.hpp>
42 
43 #include <boost/units/systems/angle/degrees.hpp>
44 
45 #include <boost/units/systems/temperature/celsius.hpp>
46 
47 #include <boost/units/systems/si.hpp>
48 // @@protoc_insertion_point(includes)
49 #include <google/protobuf/port_def.inc>
50 #define PROTOBUF_INTERNAL_EXPORT_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto
51 PROTOBUF_NAMESPACE_OPEN
52 namespace internal {
53 class AnyMetadata;
54 } // namespace internal
55 PROTOBUF_NAMESPACE_CLOSE
56 
57 // Internal implementation detail -- do not use these members.
59  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
60  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
61  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
62  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
63  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[8]
64  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
65  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
66  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
68 };
69 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
70 namespace goby {
71 namespace middleware {
72 namespace frontseat {
73 namespace protobuf {
74 class CTDSample;
75 class CTDSampleDefaultTypeInternal;
76 extern CTDSampleDefaultTypeInternal _CTDSample_default_instance_;
77 class CartesianCoordinate;
78 class CartesianCoordinateDefaultTypeInternal;
79 extern CartesianCoordinateDefaultTypeInternal _CartesianCoordinate_default_instance_;
80 class DatumUpdate;
81 class DatumUpdateDefaultTypeInternal;
82 extern DatumUpdateDefaultTypeInternal _DatumUpdate_default_instance_;
83 class DesiredCourse;
84 class DesiredCourseDefaultTypeInternal;
85 extern DesiredCourseDefaultTypeInternal _DesiredCourse_default_instance_;
86 class EulerAngles;
87 class EulerAnglesDefaultTypeInternal;
88 extern EulerAnglesDefaultTypeInternal _EulerAngles_default_instance_;
89 class NodeStatus;
90 class NodeStatusDefaultTypeInternal;
91 extern NodeStatusDefaultTypeInternal _NodeStatus_default_instance_;
92 class Source;
93 class SourceDefaultTypeInternal;
94 extern SourceDefaultTypeInternal _Source_default_instance_;
95 class Speed;
96 class SpeedDefaultTypeInternal;
97 extern SpeedDefaultTypeInternal _Speed_default_instance_;
98 } // namespace protobuf
99 } // namespace frontseat
100 } // namespace middleware
101 } // namespace goby
102 PROTOBUF_NAMESPACE_OPEN
103 template<> ::goby::middleware::frontseat::protobuf::CTDSample* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::CTDSample>(Arena*);
104 template<> ::goby::middleware::frontseat::protobuf::CartesianCoordinate* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::CartesianCoordinate>(Arena*);
105 template<> ::goby::middleware::frontseat::protobuf::DatumUpdate* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::DatumUpdate>(Arena*);
106 template<> ::goby::middleware::frontseat::protobuf::DesiredCourse* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::DesiredCourse>(Arena*);
107 template<> ::goby::middleware::frontseat::protobuf::EulerAngles* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::EulerAngles>(Arena*);
108 template<> ::goby::middleware::frontseat::protobuf::NodeStatus* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::NodeStatus>(Arena*);
109 template<> ::goby::middleware::frontseat::protobuf::Source* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::Source>(Arena*);
110 template<> ::goby::middleware::frontseat::protobuf::Speed* Arena::CreateMaybeMessage<::goby::middleware::frontseat::protobuf::Speed>(Arena*);
111 PROTOBUF_NAMESPACE_CLOSE
112 namespace goby {
113 namespace middleware {
114 namespace frontseat {
115 namespace protobuf {
116 
117 enum Source_Sensor : int {
126 };
127 bool Source_Sensor_IsValid(int value);
131 
132 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* Source_Sensor_descriptor();
133 template<typename T>
134 inline const std::string& Source_Sensor_Name(T enum_t_value) {
135  static_assert(::std::is_same<T, Source_Sensor>::value ||
136  ::std::is_integral<T>::value,
137  "Incorrect type passed to function Source_Sensor_Name.");
138  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
139  Source_Sensor_descriptor(), enum_t_value);
140 }
142  const std::string& name, Source_Sensor* value) {
143  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<Source_Sensor>(
144  Source_Sensor_descriptor(), name, value);
145 }
149 };
154 
155 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CTDSample_SalinityAlgorithm_descriptor();
156 template<typename T>
157 inline const std::string& CTDSample_SalinityAlgorithm_Name(T enum_t_value) {
158  static_assert(::std::is_same<T, CTDSample_SalinityAlgorithm>::value ||
159  ::std::is_integral<T>::value,
160  "Incorrect type passed to function CTDSample_SalinityAlgorithm_Name.");
161  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
163 }
165  const std::string& name, CTDSample_SalinityAlgorithm* value) {
166  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CTDSample_SalinityAlgorithm>(
168 }
174 };
179 
180 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CTDSample_SoundSpeedAlgorithm_descriptor();
181 template<typename T>
182 inline const std::string& CTDSample_SoundSpeedAlgorithm_Name(T enum_t_value) {
183  static_assert(::std::is_same<T, CTDSample_SoundSpeedAlgorithm>::value ||
184  ::std::is_integral<T>::value,
185  "Incorrect type passed to function CTDSample_SoundSpeedAlgorithm_Name.");
186  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
188 }
190  const std::string& name, CTDSample_SoundSpeedAlgorithm* value) {
191  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CTDSample_SoundSpeedAlgorithm>(
193 }
197 };
202 
203 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CTDSample_DensityAlgorithm_descriptor();
204 template<typename T>
205 inline const std::string& CTDSample_DensityAlgorithm_Name(T enum_t_value) {
206  static_assert(::std::is_same<T, CTDSample_DensityAlgorithm>::value ||
207  ::std::is_integral<T>::value,
208  "Incorrect type passed to function CTDSample_DensityAlgorithm_Name.");
209  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
210  CTDSample_DensityAlgorithm_descriptor(), enum_t_value);
211 }
213  const std::string& name, CTDSample_DensityAlgorithm* value) {
214  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CTDSample_DensityAlgorithm>(
216 }
217 enum VehicleType : int {
218  UNKNOWN = 0,
219  AUV = 10,
220  GLIDER = 11,
221  USV = 20,
224  ROV = 30,
225  TARGET = 50,
226  BUOY = 60,
227  MOORING = 61,
230  SHIP = 100,
231  OTHER = -1
232 };
233 bool VehicleType_IsValid(int value);
237 
238 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* VehicleType_descriptor();
239 template<typename T>
240 inline const std::string& VehicleType_Name(T enum_t_value) {
241  static_assert(::std::is_same<T, VehicleType>::value ||
242  ::std::is_integral<T>::value,
243  "Incorrect type passed to function VehicleType_Name.");
244  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
245  VehicleType_descriptor(), enum_t_value);
246 }
247 inline bool VehicleType_Parse(
248  const std::string& name, VehicleType* value) {
249  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<VehicleType>(
250  VehicleType_descriptor(), name, value);
251 }
252 // ===================================================================
253 
254 class NodeStatus PROTOBUF_FINAL :
255  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.NodeStatus) */ {
256  public:
257  inline NodeStatus() : NodeStatus(nullptr) {};
258  virtual ~NodeStatus();
259 
260  NodeStatus(const NodeStatus& from);
261  NodeStatus(NodeStatus&& from) noexcept
262  : NodeStatus() {
263  *this = ::std::move(from);
264  }
265 
266  inline NodeStatus& operator=(const NodeStatus& from) {
267  CopyFrom(from);
268  return *this;
269  }
270  inline NodeStatus& operator=(NodeStatus&& from) noexcept {
271  if (GetArena() == from.GetArena()) {
272  if (this != &from) InternalSwap(&from);
273  } else {
274  CopyFrom(from);
275  }
276  return *this;
277  }
278 
279  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
280  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
281  }
282  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
283  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
284  }
285 
286  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
287  return GetDescriptor();
288  }
289  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
290  return GetMetadataStatic().descriptor;
291  }
292  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
293  return GetMetadataStatic().reflection;
294  }
295  static const NodeStatus& default_instance();
296 
297  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
298  static inline const NodeStatus* internal_default_instance() {
299  return reinterpret_cast<const NodeStatus*>(
301  }
302  static constexpr int kIndexInFileMessages =
303  0;
304 
305  friend void swap(NodeStatus& a, NodeStatus& b) {
306  a.Swap(&b);
307  }
308  inline void Swap(NodeStatus* other) {
309  if (other == this) return;
310  if (GetArena() == other->GetArena()) {
311  InternalSwap(other);
312  } else {
313  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
314  }
315  }
316  void UnsafeArenaSwap(NodeStatus* other) {
317  if (other == this) return;
318  GOOGLE_DCHECK(GetArena() == other->GetArena());
319  InternalSwap(other);
320  }
321 
322  // implements Message ----------------------------------------------
323 
324  inline NodeStatus* New() const final {
325  return CreateMaybeMessage<NodeStatus>(nullptr);
326  }
327 
328  NodeStatus* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
329  return CreateMaybeMessage<NodeStatus>(arena);
330  }
331  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
332  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
333  void CopyFrom(const NodeStatus& from);
334  void MergeFrom(const NodeStatus& from);
335  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
336  bool IsInitialized() const final;
337 
338  size_t ByteSizeLong() const final;
339  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
340  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
341  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
342  int GetCachedSize() const final { return _cached_size_.Get(); }
343 
344  private:
345  inline void SharedCtor();
346  inline void SharedDtor();
347  void SetCachedSize(int size) const final;
348  void InternalSwap(NodeStatus* other);
349  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
350  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
351  return "goby.middleware.frontseat.protobuf.NodeStatus";
352  }
353  protected:
354  explicit NodeStatus(::PROTOBUF_NAMESPACE_ID::Arena* arena);
355  private:
356  static void ArenaDtor(void* object);
357  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
358  public:
359 
360  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
361  private:
362  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
363  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
365  }
366 
367  public:
368 
369  // nested types ----------------------------------------------------
370 
371  // accessors -------------------------------------------------------
372 
373  enum : int {
374  kNameFieldNumber = 2,
375  kGlobalFixFieldNumber = 10,
376  kLocalFixFieldNumber = 11,
377  kPoseFieldNumber = 20,
378  kSpeedFieldNumber = 30,
379  kSourceFieldNumber = 40,
380  kTimeFieldNumber = 1,
381  kTypeFieldNumber = 3,
382  };
383  // optional string name = 2;
384  bool has_name() const;
385  private:
386  bool _internal_has_name() const;
387  public:
388  void clear_name();
389  const std::string& name() const;
390  void set_name(const std::string& value);
391  void set_name(std::string&& value);
392  void set_name(const char* value);
393  void set_name(const char* value, size_t size);
394  std::string* mutable_name();
395  std::string* release_name();
396  void set_allocated_name(std::string* name);
397  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
398  " string fields are deprecated and will be removed in a"
399  " future release.")
400  std::string* unsafe_arena_release_name();
401  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
402  " string fields are deprecated and will be removed in a"
403  " future release.")
404  void unsafe_arena_set_allocated_name(
405  std::string* name);
406  private:
407  const std::string& _internal_name() const;
408  void _internal_set_name(const std::string& value);
409  std::string* _internal_mutable_name();
410  public:
411 
412  // required .goby.middleware.protobuf.LatLonPoint global_fix = 10;
413  bool has_global_fix() const;
414  private:
415  bool _internal_has_global_fix() const;
416  public:
417  void clear_global_fix();
418  const ::goby::middleware::protobuf::LatLonPoint& global_fix() const;
419  ::goby::middleware::protobuf::LatLonPoint* release_global_fix();
420  ::goby::middleware::protobuf::LatLonPoint* mutable_global_fix();
421  void set_allocated_global_fix(::goby::middleware::protobuf::LatLonPoint* global_fix);
422  private:
423  const ::goby::middleware::protobuf::LatLonPoint& _internal_global_fix() const;
424  ::goby::middleware::protobuf::LatLonPoint* _internal_mutable_global_fix();
425  public:
426  void unsafe_arena_set_allocated_global_fix(
427  ::goby::middleware::protobuf::LatLonPoint* global_fix);
428  ::goby::middleware::protobuf::LatLonPoint* unsafe_arena_release_global_fix();
429 
430  // optional .goby.middleware.frontseat.protobuf.CartesianCoordinate local_fix = 11;
431  bool has_local_fix() const;
432  private:
433  bool _internal_has_local_fix() const;
434  public:
435  void clear_local_fix();
436  const ::goby::middleware::frontseat::protobuf::CartesianCoordinate& local_fix() const;
437  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* release_local_fix();
438  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* mutable_local_fix();
439  void set_allocated_local_fix(::goby::middleware::frontseat::protobuf::CartesianCoordinate* local_fix);
440  private:
441  const ::goby::middleware::frontseat::protobuf::CartesianCoordinate& _internal_local_fix() const;
442  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* _internal_mutable_local_fix();
443  public:
444  void unsafe_arena_set_allocated_local_fix(
445  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* local_fix);
446  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* unsafe_arena_release_local_fix();
447 
448  // required .goby.middleware.frontseat.protobuf.EulerAngles pose = 20;
449  bool has_pose() const;
450  private:
451  bool _internal_has_pose() const;
452  public:
453  void clear_pose();
454  const ::goby::middleware::frontseat::protobuf::EulerAngles& pose() const;
455  ::goby::middleware::frontseat::protobuf::EulerAngles* release_pose();
456  ::goby::middleware::frontseat::protobuf::EulerAngles* mutable_pose();
457  void set_allocated_pose(::goby::middleware::frontseat::protobuf::EulerAngles* pose);
458  private:
459  const ::goby::middleware::frontseat::protobuf::EulerAngles& _internal_pose() const;
460  ::goby::middleware::frontseat::protobuf::EulerAngles* _internal_mutable_pose();
461  public:
462  void unsafe_arena_set_allocated_pose(
463  ::goby::middleware::frontseat::protobuf::EulerAngles* pose);
464  ::goby::middleware::frontseat::protobuf::EulerAngles* unsafe_arena_release_pose();
465 
466  // required .goby.middleware.frontseat.protobuf.Speed speed = 30;
467  bool has_speed() const;
468  private:
469  bool _internal_has_speed() const;
470  public:
471  void clear_speed();
472  const ::goby::middleware::frontseat::protobuf::Speed& speed() const;
473  ::goby::middleware::frontseat::protobuf::Speed* release_speed();
474  ::goby::middleware::frontseat::protobuf::Speed* mutable_speed();
475  void set_allocated_speed(::goby::middleware::frontseat::protobuf::Speed* speed);
476  private:
477  const ::goby::middleware::frontseat::protobuf::Speed& _internal_speed() const;
478  ::goby::middleware::frontseat::protobuf::Speed* _internal_mutable_speed();
479  public:
480  void unsafe_arena_set_allocated_speed(
481  ::goby::middleware::frontseat::protobuf::Speed* speed);
482  ::goby::middleware::frontseat::protobuf::Speed* unsafe_arena_release_speed();
483 
484  // optional .goby.middleware.frontseat.protobuf.Source source = 40;
485  bool has_source() const;
486  private:
487  bool _internal_has_source() const;
488  public:
489  void clear_source();
490  const ::goby::middleware::frontseat::protobuf::Source& source() const;
491  ::goby::middleware::frontseat::protobuf::Source* release_source();
492  ::goby::middleware::frontseat::protobuf::Source* mutable_source();
493  void set_allocated_source(::goby::middleware::frontseat::protobuf::Source* source);
494  private:
495  const ::goby::middleware::frontseat::protobuf::Source& _internal_source() const;
496  ::goby::middleware::frontseat::protobuf::Source* _internal_mutable_source();
497  public:
498  void unsafe_arena_set_allocated_source(
499  ::goby::middleware::frontseat::protobuf::Source* source);
500  ::goby::middleware::frontseat::protobuf::Source* unsafe_arena_release_source();
501 
502  // required double time = 1 [(.dccl.field) = {
503  bool has_time() const;
504  private:
505  bool _internal_has_time() const;
506  public:
507  void clear_time();
508  double time() const;
509  void set_time(double value);
510  private:
511  double _internal_time() const;
512  void _internal_set_time(double value);
513  public:
514 
515  // optional .goby.middleware.frontseat.protobuf.VehicleType type = 3;
516  bool has_type() const;
517  private:
518  bool _internal_has_type() const;
519  public:
520  void clear_type();
521  ::goby::middleware::frontseat::protobuf::VehicleType type() const;
522  void set_type(::goby::middleware::frontseat::protobuf::VehicleType value);
523  private:
524  ::goby::middleware::frontseat::protobuf::VehicleType _internal_type() const;
525  void _internal_set_type(::goby::middleware::frontseat::protobuf::VehicleType value);
526  public:
527 
528  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(NodeStatus)
530 
531  typedef boost::units::unit<time_dimension,boost::units::si::system> time_unit;
532 
533  template<typename Quantity >
534  void set_time_with_units(Quantity value_w_units)
535  { set_time(boost::units::quantity<time_unit,double >(value_w_units).value() ); };
536 
537  template<typename Quantity >
538  Quantity time_with_units() const
539  { return Quantity(time() * time_unit()); };
540 
541  boost::units::quantity< time_unit,double > time_with_units() const
542  { return time_with_units<boost::units::quantity< time_unit,double > >(); };
543 
544  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.NodeStatus)
545  private:
546  class _Internal;
547 
548  // helper for ByteSizeLong()
549  size_t RequiredFieldsByteSizeFallback() const;
550 
551  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
552 
553  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
554  typedef void InternalArenaConstructable_;
555  typedef void DestructorSkippable_;
556  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
557  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
558  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_;
559  ::goby::middleware::protobuf::LatLonPoint* global_fix_;
560  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* local_fix_;
561  ::goby::middleware::frontseat::protobuf::EulerAngles* pose_;
562  ::goby::middleware::frontseat::protobuf::Speed* speed_;
563  ::goby::middleware::frontseat::protobuf::Source* source_;
564  double time_;
565  int type_;
566  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
567 };
568 // -------------------------------------------------------------------
569 
570 class DesiredCourse PROTOBUF_FINAL :
571  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.DesiredCourse) */ {
572  public:
573  inline DesiredCourse() : DesiredCourse(nullptr) {};
574  virtual ~DesiredCourse();
575 
576  DesiredCourse(const DesiredCourse& from);
577  DesiredCourse(DesiredCourse&& from) noexcept
578  : DesiredCourse() {
579  *this = ::std::move(from);
580  }
581 
582  inline DesiredCourse& operator=(const DesiredCourse& from) {
583  CopyFrom(from);
584  return *this;
585  }
586  inline DesiredCourse& operator=(DesiredCourse&& from) noexcept {
587  if (GetArena() == from.GetArena()) {
588  if (this != &from) InternalSwap(&from);
589  } else {
590  CopyFrom(from);
591  }
592  return *this;
593  }
594 
595  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
596  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
597  }
598  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
599  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
600  }
601 
602  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
603  return GetDescriptor();
604  }
605  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
606  return GetMetadataStatic().descriptor;
607  }
608  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
609  return GetMetadataStatic().reflection;
610  }
611  static const DesiredCourse& default_instance();
612 
613  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
614  static inline const DesiredCourse* internal_default_instance() {
615  return reinterpret_cast<const DesiredCourse*>(
617  }
618  static constexpr int kIndexInFileMessages =
619  1;
620 
621  friend void swap(DesiredCourse& a, DesiredCourse& b) {
622  a.Swap(&b);
623  }
624  inline void Swap(DesiredCourse* other) {
625  if (other == this) return;
626  if (GetArena() == other->GetArena()) {
627  InternalSwap(other);
628  } else {
629  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
630  }
631  }
632  void UnsafeArenaSwap(DesiredCourse* other) {
633  if (other == this) return;
634  GOOGLE_DCHECK(GetArena() == other->GetArena());
635  InternalSwap(other);
636  }
637 
638  // implements Message ----------------------------------------------
639 
640  inline DesiredCourse* New() const final {
641  return CreateMaybeMessage<DesiredCourse>(nullptr);
642  }
643 
644  DesiredCourse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
645  return CreateMaybeMessage<DesiredCourse>(arena);
646  }
647  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
648  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
649  void CopyFrom(const DesiredCourse& from);
650  void MergeFrom(const DesiredCourse& from);
651  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
652  bool IsInitialized() const final;
653 
654  size_t ByteSizeLong() const final;
655  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
656  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
657  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
658  int GetCachedSize() const final { return _cached_size_.Get(); }
659 
660  private:
661  inline void SharedCtor();
662  inline void SharedDtor();
663  void SetCachedSize(int size) const final;
664  void InternalSwap(DesiredCourse* other);
665  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
666  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
667  return "goby.middleware.frontseat.protobuf.DesiredCourse";
668  }
669  protected:
670  explicit DesiredCourse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
671  private:
672  static void ArenaDtor(void* object);
673  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
674  public:
675 
676  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
677  private:
678  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
679  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
681  }
682 
683  public:
684 
685  // nested types ----------------------------------------------------
686 
687  // accessors -------------------------------------------------------
688 
689  enum : int {
690  kTimeFieldNumber = 1,
691  kHeadingFieldNumber = 2,
692  kSpeedFieldNumber = 3,
693  kDepthFieldNumber = 4,
694  kPitchFieldNumber = 5,
695  kRollFieldNumber = 6,
696  kZRateFieldNumber = 7,
697  kAltitudeFieldNumber = 8,
698  };
699  // required double time = 1 [(.dccl.field) = {
700  bool has_time() const;
701  private:
702  bool _internal_has_time() const;
703  public:
704  void clear_time();
705  double time() const;
706  void set_time(double value);
707  private:
708  double _internal_time() const;
709  void _internal_set_time(double value);
710  public:
711 
712  // optional double heading = 2 [default = 0, (.dccl.field) = {
713  bool has_heading() const;
714  private:
715  bool _internal_has_heading() const;
716  public:
718  double heading() const;
719  void set_heading(double value);
720  private:
721  double _internal_heading() const;
722  void _internal_set_heading(double value);
723  public:
724 
725  // optional double speed = 3 [default = 0, (.dccl.field) = {
726  bool has_speed() const;
727  private:
728  bool _internal_has_speed() const;
729  public:
730  void clear_speed();
731  double speed() const;
732  void set_speed(double value);
733  private:
734  double _internal_speed() const;
735  void _internal_set_speed(double value);
736  public:
737 
738  // optional double depth = 4 [default = 0, (.dccl.field) = {
739  bool has_depth() const;
740  private:
741  bool _internal_has_depth() const;
742  public:
743  void clear_depth();
744  double depth() const;
745  void set_depth(double value);
746  private:
747  double _internal_depth() const;
748  void _internal_set_depth(double value);
749  public:
750 
751  // optional double pitch = 5 [default = 0, (.dccl.field) = {
752  bool has_pitch() const;
753  private:
754  bool _internal_has_pitch() const;
755  public:
756  void clear_pitch();
757  double pitch() const;
758  void set_pitch(double value);
759  private:
760  double _internal_pitch() const;
761  void _internal_set_pitch(double value);
762  public:
763 
764  // optional double roll = 6 [default = 0, (.dccl.field) = {
765  bool has_roll() const;
766  private:
767  bool _internal_has_roll() const;
768  public:
769  void clear_roll();
770  double roll() const;
771  void set_roll(double value);
772  private:
773  double _internal_roll() const;
774  void _internal_set_roll(double value);
775  public:
776 
777  // optional double z_rate = 7 [default = 0, (.dccl.field) = {
778  bool has_z_rate() const;
779  private:
780  bool _internal_has_z_rate() const;
781  public:
782  void clear_z_rate();
783  double z_rate() const;
784  void set_z_rate(double value);
785  private:
786  double _internal_z_rate() const;
787  void _internal_set_z_rate(double value);
788  public:
789 
790  // optional double altitude = 8 [default = 10, (.dccl.field) = {
791  bool has_altitude() const;
792  private:
793  bool _internal_has_altitude() const;
794  public:
796  double altitude() const;
797  void set_altitude(double value);
798  private:
799  double _internal_altitude() const;
800  void _internal_set_altitude(double value);
801  public:
802 
803  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(DesiredCourse)
805 
806  typedef boost::units::unit<time_dimension,boost::units::si::system> time_unit;
807 
808  template<typename Quantity >
809  void set_time_with_units(Quantity value_w_units)
810  { set_time(boost::units::quantity<time_unit,double >(value_w_units).value() ); };
811 
812  template<typename Quantity >
813  Quantity time_with_units() const
814  { return Quantity(time() * time_unit()); };
815 
816  boost::units::quantity< time_unit,double > time_with_units() const
817  { return time_with_units<boost::units::quantity< time_unit,double > >(); };
818 
819  typedef boost::units::plane_angle_dimension heading_dimension;
820 
821  typedef boost::units::unit<heading_dimension,boost::units::degree::system> heading_unit;
822 
823  template<typename Quantity >
824  void set_heading_with_units(Quantity value_w_units)
825  { set_heading(boost::units::quantity<heading_unit,double >(value_w_units).value() ); };
826 
827  template<typename Quantity >
828  Quantity heading_with_units() const
829  { return Quantity(heading() * heading_unit()); };
830 
831  boost::units::quantity< heading_unit,double > heading_with_units() const
832  { return heading_with_units<boost::units::quantity< heading_unit,double > >(); };
833 
835 
836  typedef boost::units::unit<speed_dimension,boost::units::si::system> speed_unit;
837 
838  template<typename Quantity >
839  void set_speed_with_units(Quantity value_w_units)
840  { set_speed(boost::units::quantity<speed_unit,double >(value_w_units).value() ); };
841 
842  template<typename Quantity >
843  Quantity speed_with_units() const
844  { return Quantity(speed() * speed_unit()); };
845 
846  boost::units::quantity< speed_unit,double > speed_with_units() const
847  { return speed_with_units<boost::units::quantity< speed_unit,double > >(); };
848 
849  typedef boost::units::length_dimension depth_dimension;
850 
851  typedef boost::units::unit<depth_dimension,boost::units::si::system> depth_unit;
852 
853  template<typename Quantity >
854  void set_depth_with_units(Quantity value_w_units)
855  { set_depth(boost::units::quantity<depth_unit,double >(value_w_units).value() ); };
856 
857  template<typename Quantity >
858  Quantity depth_with_units() const
859  { return Quantity(depth() * depth_unit()); };
860 
861  boost::units::quantity< depth_unit,double > depth_with_units() const
862  { return depth_with_units<boost::units::quantity< depth_unit,double > >(); };
863 
864  typedef boost::units::plane_angle_dimension pitch_dimension;
865 
866  typedef boost::units::unit<pitch_dimension,boost::units::degree::system> pitch_unit;
867 
868  template<typename Quantity >
869  void set_pitch_with_units(Quantity value_w_units)
870  { set_pitch(boost::units::quantity<pitch_unit,double >(value_w_units).value() ); };
871 
872  template<typename Quantity >
873  Quantity pitch_with_units() const
874  { return Quantity(pitch() * pitch_unit()); };
875 
876  boost::units::quantity< pitch_unit,double > pitch_with_units() const
877  { return pitch_with_units<boost::units::quantity< pitch_unit,double > >(); };
878 
879  typedef boost::units::plane_angle_dimension roll_dimension;
880 
881  typedef boost::units::unit<roll_dimension,boost::units::degree::system> roll_unit;
882 
883  template<typename Quantity >
884  void set_roll_with_units(Quantity value_w_units)
885  { set_roll(boost::units::quantity<roll_unit,double >(value_w_units).value() ); };
886 
887  template<typename Quantity >
888  Quantity roll_with_units() const
889  { return Quantity(roll() * roll_unit()); };
890 
891  boost::units::quantity< roll_unit,double > roll_with_units() const
892  { return roll_with_units<boost::units::quantity< roll_unit,double > >(); };
893 
895 
896  typedef boost::units::unit<z_rate_dimension,boost::units::si::system> z_rate_unit;
897 
898  template<typename Quantity >
899  void set_z_rate_with_units(Quantity value_w_units)
900  { set_z_rate(boost::units::quantity<z_rate_unit,double >(value_w_units).value() ); };
901 
902  template<typename Quantity >
903  Quantity z_rate_with_units() const
904  { return Quantity(z_rate() * z_rate_unit()); };
905 
906  boost::units::quantity< z_rate_unit,double > z_rate_with_units() const
907  { return z_rate_with_units<boost::units::quantity< z_rate_unit,double > >(); };
908 
909  typedef boost::units::length_dimension altitude_dimension;
910 
911  typedef boost::units::unit<altitude_dimension,boost::units::si::system> altitude_unit;
912 
913  template<typename Quantity >
914  void set_altitude_with_units(Quantity value_w_units)
915  { set_altitude(boost::units::quantity<altitude_unit,double >(value_w_units).value() ); };
916 
917  template<typename Quantity >
918  Quantity altitude_with_units() const
919  { return Quantity(altitude() * altitude_unit()); };
920 
921  boost::units::quantity< altitude_unit,double > altitude_with_units() const
922  { return altitude_with_units<boost::units::quantity< altitude_unit,double > >(); };
923 
924  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.DesiredCourse)
925  private:
926  class _Internal;
927 
928  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
929 
930  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
931  typedef void InternalArenaConstructable_;
932  typedef void DestructorSkippable_;
933  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
934  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
935  double time_;
936  double heading_;
937  double speed_;
938  double depth_;
939  double pitch_;
940  double roll_;
941  double z_rate_;
942  double altitude_;
943  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
944 };
945 // -------------------------------------------------------------------
946 
947 class Source PROTOBUF_FINAL :
948  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.Source) */ {
949  public:
950  inline Source() : Source(nullptr) {};
951  virtual ~Source();
952 
953  Source(const Source& from);
954  Source(Source&& from) noexcept
955  : Source() {
956  *this = ::std::move(from);
957  }
958 
959  inline Source& operator=(const Source& from) {
960  CopyFrom(from);
961  return *this;
962  }
963  inline Source& operator=(Source&& from) noexcept {
964  if (GetArena() == from.GetArena()) {
965  if (this != &from) InternalSwap(&from);
966  } else {
967  CopyFrom(from);
968  }
969  return *this;
970  }
971 
972  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
973  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
974  }
975  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
976  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
977  }
978 
979  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
980  return GetDescriptor();
981  }
982  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
983  return GetMetadataStatic().descriptor;
984  }
985  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
986  return GetMetadataStatic().reflection;
987  }
988  static const Source& default_instance();
989 
990  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
991  static inline const Source* internal_default_instance() {
992  return reinterpret_cast<const Source*>(
994  }
995  static constexpr int kIndexInFileMessages =
996  2;
997 
998  friend void swap(Source& a, Source& b) {
999  a.Swap(&b);
1000  }
1001  inline void Swap(Source* other) {
1002  if (other == this) return;
1003  if (GetArena() == other->GetArena()) {
1004  InternalSwap(other);
1005  } else {
1006  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1007  }
1008  }
1009  void UnsafeArenaSwap(Source* other) {
1010  if (other == this) return;
1011  GOOGLE_DCHECK(GetArena() == other->GetArena());
1012  InternalSwap(other);
1013  }
1014 
1015  // implements Message ----------------------------------------------
1016 
1017  inline Source* New() const final {
1018  return CreateMaybeMessage<Source>(nullptr);
1019  }
1020 
1021  Source* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1022  return CreateMaybeMessage<Source>(arena);
1023  }
1024  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1025  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1026  void CopyFrom(const Source& from);
1027  void MergeFrom(const Source& from);
1028  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1029  bool IsInitialized() const final;
1030 
1031  size_t ByteSizeLong() const final;
1032  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1033  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1034  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1035  int GetCachedSize() const final { return _cached_size_.Get(); }
1036 
1037  private:
1038  inline void SharedCtor();
1039  inline void SharedDtor();
1040  void SetCachedSize(int size) const final;
1041  void InternalSwap(Source* other);
1042  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1043  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1044  return "goby.middleware.frontseat.protobuf.Source";
1045  }
1046  protected:
1047  explicit Source(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1048  private:
1049  static void ArenaDtor(void* object);
1050  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1051  public:
1052 
1053  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1054  private:
1055  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1056  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
1058  }
1059 
1060  public:
1061 
1062  // nested types ----------------------------------------------------
1063 
1065  static constexpr Sensor GPS =
1067  static constexpr Sensor USBL =
1069  static constexpr Sensor LBL =
1071  static constexpr Sensor INERTIAL_NAVIGATION_SYSTEM =
1073  static constexpr Sensor PRESSURE =
1075  static constexpr Sensor DVL =
1077  static constexpr Sensor RPM_LOOKUP =
1079  static constexpr Sensor MAGNETIC_COMPASS =
1081  static inline bool Sensor_IsValid(int value) {
1082  return Source_Sensor_IsValid(value);
1083  }
1084  static constexpr Sensor Sensor_MIN =
1086  static constexpr Sensor Sensor_MAX =
1088  static constexpr int Sensor_ARRAYSIZE =
1090  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
1092  return Source_Sensor_descriptor();
1093  }
1094  template<typename T>
1095  static inline const std::string& Sensor_Name(T enum_t_value) {
1096  static_assert(::std::is_same<T, Sensor>::value ||
1097  ::std::is_integral<T>::value,
1098  "Incorrect type passed to function Sensor_Name.");
1099  return Source_Sensor_Name(enum_t_value);
1100  }
1101  static inline bool Sensor_Parse(const std::string& name,
1102  Sensor* value) {
1103  return Source_Sensor_Parse(name, value);
1104  }
1105 
1106  // accessors -------------------------------------------------------
1107 
1108  enum : int {
1109  kPositionFieldNumber = 1,
1110  kDepthFieldNumber = 2,
1111  kSpeedFieldNumber = 3,
1112  kHeadingFieldNumber = 4,
1113  };
1114  // optional .goby.middleware.frontseat.protobuf.Source.Sensor position = 1;
1115  bool has_position() const;
1116  private:
1117  bool _internal_has_position() const;
1118  public:
1122  private:
1123  ::goby::middleware::frontseat::protobuf::Source_Sensor _internal_position() const;
1124  void _internal_set_position(::goby::middleware::frontseat::protobuf::Source_Sensor value);
1125  public:
1126 
1127  // optional .goby.middleware.frontseat.protobuf.Source.Sensor depth = 2;
1128  bool has_depth() const;
1129  private:
1130  bool _internal_has_depth() const;
1131  public:
1132  void clear_depth();
1135  private:
1137  void _internal_set_depth(::goby::middleware::frontseat::protobuf::Source_Sensor value);
1138  public:
1139 
1140  // optional .goby.middleware.frontseat.protobuf.Source.Sensor speed = 3;
1141  bool has_speed() const;
1142  private:
1143  bool _internal_has_speed() const;
1144  public:
1145  void clear_speed();
1148  private:
1150  void _internal_set_speed(::goby::middleware::frontseat::protobuf::Source_Sensor value);
1151  public:
1152 
1153  // optional .goby.middleware.frontseat.protobuf.Source.Sensor heading = 4;
1154  bool has_heading() const;
1155  private:
1156  bool _internal_has_heading() const;
1157  public:
1161  private:
1163  void _internal_set_heading(::goby::middleware::frontseat::protobuf::Source_Sensor value);
1164  public:
1165 
1166  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(Source)
1167  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.Source)
1168  private:
1169  class _Internal;
1170 
1171  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
1172 
1173  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1174  typedef void InternalArenaConstructable_;
1175  typedef void DestructorSkippable_;
1176  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1177  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1178  int position_;
1179  int depth_;
1180  int speed_;
1181  int heading_;
1182  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
1183 };
1184 // -------------------------------------------------------------------
1185 
1186 class CartesianCoordinate PROTOBUF_FINAL :
1187  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.CartesianCoordinate) */ {
1188  public:
1189  inline CartesianCoordinate() : CartesianCoordinate(nullptr) {};
1191 
1192  CartesianCoordinate(const CartesianCoordinate& from);
1193  CartesianCoordinate(CartesianCoordinate&& from) noexcept
1194  : CartesianCoordinate() {
1195  *this = ::std::move(from);
1196  }
1197 
1198  inline CartesianCoordinate& operator=(const CartesianCoordinate& from) {
1199  CopyFrom(from);
1200  return *this;
1201  }
1202  inline CartesianCoordinate& operator=(CartesianCoordinate&& from) noexcept {
1203  if (GetArena() == from.GetArena()) {
1204  if (this != &from) InternalSwap(&from);
1205  } else {
1206  CopyFrom(from);
1207  }
1208  return *this;
1209  }
1210 
1211  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1212  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1213  }
1214  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1215  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1216  }
1217 
1218  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1219  return GetDescriptor();
1220  }
1221  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1222  return GetMetadataStatic().descriptor;
1223  }
1224  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1225  return GetMetadataStatic().reflection;
1226  }
1227  static const CartesianCoordinate& default_instance();
1228 
1229  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1230  static inline const CartesianCoordinate* internal_default_instance() {
1231  return reinterpret_cast<const CartesianCoordinate*>(
1233  }
1234  static constexpr int kIndexInFileMessages =
1235  3;
1236 
1237  friend void swap(CartesianCoordinate& a, CartesianCoordinate& b) {
1238  a.Swap(&b);
1239  }
1240  inline void Swap(CartesianCoordinate* other) {
1241  if (other == this) return;
1242  if (GetArena() == other->GetArena()) {
1243  InternalSwap(other);
1244  } else {
1245  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1246  }
1247  }
1248  void UnsafeArenaSwap(CartesianCoordinate* other) {
1249  if (other == this) return;
1250  GOOGLE_DCHECK(GetArena() == other->GetArena());
1251  InternalSwap(other);
1252  }
1253 
1254  // implements Message ----------------------------------------------
1255 
1256  inline CartesianCoordinate* New() const final {
1257  return CreateMaybeMessage<CartesianCoordinate>(nullptr);
1258  }
1259 
1260  CartesianCoordinate* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1261  return CreateMaybeMessage<CartesianCoordinate>(arena);
1262  }
1263  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1264  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1265  void CopyFrom(const CartesianCoordinate& from);
1266  void MergeFrom(const CartesianCoordinate& from);
1267  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1268  bool IsInitialized() const final;
1269 
1270  size_t ByteSizeLong() const final;
1271  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1272  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1273  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1274  int GetCachedSize() const final { return _cached_size_.Get(); }
1275 
1276  private:
1277  inline void SharedCtor();
1278  inline void SharedDtor();
1279  void SetCachedSize(int size) const final;
1280  void InternalSwap(CartesianCoordinate* other);
1281  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1282  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1283  return "goby.middleware.frontseat.protobuf.CartesianCoordinate";
1284  }
1285  protected:
1286  explicit CartesianCoordinate(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1287  private:
1288  static void ArenaDtor(void* object);
1289  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1290  public:
1291 
1292  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1293  private:
1294  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1295  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
1297  }
1298 
1299  public:
1300 
1301  // nested types ----------------------------------------------------
1302 
1303  // accessors -------------------------------------------------------
1304 
1305  enum : int {
1306  kXFieldNumber = 1,
1307  kYFieldNumber = 2,
1308  kZFieldNumber = 3,
1309  };
1310  // required double x = 1 [(.dccl.field) = {
1311  bool has_x() const;
1312  private:
1313  bool _internal_has_x() const;
1314  public:
1315  void clear_x();
1316  double x() const;
1317  void set_x(double value);
1318  private:
1319  double _internal_x() const;
1320  void _internal_set_x(double value);
1321  public:
1322 
1323  // required double y = 2 [(.dccl.field) = {
1324  bool has_y() const;
1325  private:
1326  bool _internal_has_y() const;
1327  public:
1328  void clear_y();
1329  double y() const;
1330  void set_y(double value);
1331  private:
1332  double _internal_y() const;
1333  void _internal_set_y(double value);
1334  public:
1335 
1336  // optional double z = 3 [default = 0, (.dccl.field) = {
1337  bool has_z() const;
1338  private:
1339  bool _internal_has_z() const;
1340  public:
1341  void clear_z();
1342  double z() const;
1343  void set_z(double value);
1344  private:
1345  double _internal_z() const;
1346  void _internal_set_z(double value);
1347  public:
1348 
1349  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(CartesianCoordinate)
1350  typedef boost::units::length_dimension x_dimension;
1351 
1352  typedef boost::units::unit<x_dimension,boost::units::si::system> x_unit;
1353 
1354  template<typename Quantity >
1355  void set_x_with_units(Quantity value_w_units)
1356  { set_x(boost::units::quantity<x_unit,double >(value_w_units).value() ); };
1357 
1358  template<typename Quantity >
1359  Quantity x_with_units() const
1360  { return Quantity(x() * x_unit()); };
1361 
1362  boost::units::quantity< x_unit,double > x_with_units() const
1363  { return x_with_units<boost::units::quantity< x_unit,double > >(); };
1364 
1365  typedef boost::units::length_dimension y_dimension;
1366 
1367  typedef boost::units::unit<y_dimension,boost::units::si::system> y_unit;
1368 
1369  template<typename Quantity >
1370  void set_y_with_units(Quantity value_w_units)
1371  { set_y(boost::units::quantity<y_unit,double >(value_w_units).value() ); };
1372 
1373  template<typename Quantity >
1374  Quantity y_with_units() const
1375  { return Quantity(y() * y_unit()); };
1376 
1377  boost::units::quantity< y_unit,double > y_with_units() const
1378  { return y_with_units<boost::units::quantity< y_unit,double > >(); };
1379 
1380  typedef boost::units::length_dimension z_dimension;
1381 
1382  typedef boost::units::unit<z_dimension,boost::units::si::system> z_unit;
1383 
1384  template<typename Quantity >
1385  void set_z_with_units(Quantity value_w_units)
1386  { set_z(boost::units::quantity<z_unit,double >(value_w_units).value() ); };
1387 
1388  template<typename Quantity >
1389  Quantity z_with_units() const
1390  { return Quantity(z() * z_unit()); };
1391 
1392  boost::units::quantity< z_unit,double > z_with_units() const
1393  { return z_with_units<boost::units::quantity< z_unit,double > >(); };
1394 
1395  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.CartesianCoordinate)
1396  private:
1397  class _Internal;
1398 
1399  // helper for ByteSizeLong()
1400  size_t RequiredFieldsByteSizeFallback() const;
1401 
1402  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
1403 
1404  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1405  typedef void InternalArenaConstructable_;
1406  typedef void DestructorSkippable_;
1407  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1408  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1409  double x_;
1410  double y_;
1411  double z_;
1412  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
1413 };
1414 // -------------------------------------------------------------------
1415 
1416 class EulerAngles PROTOBUF_FINAL :
1417  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.EulerAngles) */ {
1418  public:
1419  inline EulerAngles() : EulerAngles(nullptr) {};
1420  virtual ~EulerAngles();
1421 
1422  EulerAngles(const EulerAngles& from);
1423  EulerAngles(EulerAngles&& from) noexcept
1424  : EulerAngles() {
1425  *this = ::std::move(from);
1426  }
1427 
1428  inline EulerAngles& operator=(const EulerAngles& from) {
1429  CopyFrom(from);
1430  return *this;
1431  }
1432  inline EulerAngles& operator=(EulerAngles&& from) noexcept {
1433  if (GetArena() == from.GetArena()) {
1434  if (this != &from) InternalSwap(&from);
1435  } else {
1436  CopyFrom(from);
1437  }
1438  return *this;
1439  }
1440 
1441  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1442  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1443  }
1444  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1445  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1446  }
1447 
1448  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1449  return GetDescriptor();
1450  }
1451  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1452  return GetMetadataStatic().descriptor;
1453  }
1454  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1455  return GetMetadataStatic().reflection;
1456  }
1457  static const EulerAngles& default_instance();
1458 
1459  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1460  static inline const EulerAngles* internal_default_instance() {
1461  return reinterpret_cast<const EulerAngles*>(
1463  }
1464  static constexpr int kIndexInFileMessages =
1465  4;
1466 
1467  friend void swap(EulerAngles& a, EulerAngles& b) {
1468  a.Swap(&b);
1469  }
1470  inline void Swap(EulerAngles* other) {
1471  if (other == this) return;
1472  if (GetArena() == other->GetArena()) {
1473  InternalSwap(other);
1474  } else {
1475  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1476  }
1477  }
1478  void UnsafeArenaSwap(EulerAngles* other) {
1479  if (other == this) return;
1480  GOOGLE_DCHECK(GetArena() == other->GetArena());
1481  InternalSwap(other);
1482  }
1483 
1484  // implements Message ----------------------------------------------
1485 
1486  inline EulerAngles* New() const final {
1487  return CreateMaybeMessage<EulerAngles>(nullptr);
1488  }
1489 
1490  EulerAngles* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1491  return CreateMaybeMessage<EulerAngles>(arena);
1492  }
1493  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1494  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1495  void CopyFrom(const EulerAngles& from);
1496  void MergeFrom(const EulerAngles& from);
1497  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1498  bool IsInitialized() const final;
1499 
1500  size_t ByteSizeLong() const final;
1501  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1502  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1503  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1504  int GetCachedSize() const final { return _cached_size_.Get(); }
1505 
1506  private:
1507  inline void SharedCtor();
1508  inline void SharedDtor();
1509  void SetCachedSize(int size) const final;
1510  void InternalSwap(EulerAngles* other);
1511  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1512  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1513  return "goby.middleware.frontseat.protobuf.EulerAngles";
1514  }
1515  protected:
1516  explicit EulerAngles(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1517  private:
1518  static void ArenaDtor(void* object);
1519  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1520  public:
1521 
1522  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1523  private:
1524  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1525  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
1527  }
1528 
1529  public:
1530 
1531  // nested types ----------------------------------------------------
1532 
1533  // accessors -------------------------------------------------------
1534 
1535  enum : int {
1536  kRollFieldNumber = 1,
1537  kPitchFieldNumber = 2,
1538  kHeadingFieldNumber = 3,
1539  kCourseOverGroundFieldNumber = 4,
1540  kRollRateFieldNumber = 10,
1541  kPitchRateFieldNumber = 11,
1542  kHeadingRateFieldNumber = 12,
1543  };
1544  // optional double roll = 1 [(.dccl.field) = {
1545  bool has_roll() const;
1546  private:
1547  bool _internal_has_roll() const;
1548  public:
1549  void clear_roll();
1550  double roll() const;
1551  void set_roll(double value);
1552  private:
1553  double _internal_roll() const;
1554  void _internal_set_roll(double value);
1555  public:
1556 
1557  // optional double pitch = 2 [(.dccl.field) = {
1558  bool has_pitch() const;
1559  private:
1560  bool _internal_has_pitch() const;
1561  public:
1562  void clear_pitch();
1563  double pitch() const;
1564  void set_pitch(double value);
1565  private:
1566  double _internal_pitch() const;
1567  void _internal_set_pitch(double value);
1568  public:
1569 
1570  // optional double heading = 3 [(.dccl.field) = {
1571  bool has_heading() const;
1572  private:
1573  bool _internal_has_heading() const;
1574  public:
1576  double heading() const;
1577  void set_heading(double value);
1578  private:
1579  double _internal_heading() const;
1580  void _internal_set_heading(double value);
1581  public:
1582 
1583  // optional double course_over_ground = 4 [(.dccl.field) = {
1585  private:
1586  bool _internal_has_course_over_ground() const;
1587  public:
1589  double course_over_ground() const;
1590  void set_course_over_ground(double value);
1591  private:
1592  double _internal_course_over_ground() const;
1593  void _internal_set_course_over_ground(double value);
1594  public:
1595 
1596  // optional double roll_rate = 10 [(.dccl.field) = {
1597  bool has_roll_rate() const;
1598  private:
1599  bool _internal_has_roll_rate() const;
1600  public:
1602  double roll_rate() const;
1603  void set_roll_rate(double value);
1604  private:
1605  double _internal_roll_rate() const;
1606  void _internal_set_roll_rate(double value);
1607  public:
1608 
1609  // optional double pitch_rate = 11 [(.dccl.field) = {
1610  bool has_pitch_rate() const;
1611  private:
1612  bool _internal_has_pitch_rate() const;
1613  public:
1615  double pitch_rate() const;
1616  void set_pitch_rate(double value);
1617  private:
1618  double _internal_pitch_rate() const;
1619  void _internal_set_pitch_rate(double value);
1620  public:
1621 
1622  // optional double heading_rate = 12 [(.dccl.field) = {
1623  bool has_heading_rate() const;
1624  private:
1625  bool _internal_has_heading_rate() const;
1626  public:
1628  double heading_rate() const;
1629  void set_heading_rate(double value);
1630  private:
1631  double _internal_heading_rate() const;
1632  void _internal_set_heading_rate(double value);
1633  public:
1634 
1635  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(EulerAngles)
1636  typedef boost::units::plane_angle_dimension roll_dimension;
1637 
1638  typedef boost::units::unit<roll_dimension,boost::units::degree::system> roll_unit;
1639 
1640  template<typename Quantity >
1641  void set_roll_with_units(Quantity value_w_units)
1642  { set_roll(boost::units::quantity<roll_unit,double >(value_w_units).value() ); };
1643 
1644  template<typename Quantity >
1645  Quantity roll_with_units() const
1646  { return Quantity(roll() * roll_unit()); };
1647 
1648  boost::units::quantity< roll_unit,double > roll_with_units() const
1649  { return roll_with_units<boost::units::quantity< roll_unit,double > >(); };
1650 
1651  typedef boost::units::plane_angle_dimension pitch_dimension;
1652 
1653  typedef boost::units::unit<pitch_dimension,boost::units::degree::system> pitch_unit;
1654 
1655  template<typename Quantity >
1656  void set_pitch_with_units(Quantity value_w_units)
1657  { set_pitch(boost::units::quantity<pitch_unit,double >(value_w_units).value() ); };
1658 
1659  template<typename Quantity >
1660  Quantity pitch_with_units() const
1661  { return Quantity(pitch() * pitch_unit()); };
1662 
1663  boost::units::quantity< pitch_unit,double > pitch_with_units() const
1664  { return pitch_with_units<boost::units::quantity< pitch_unit,double > >(); };
1665 
1666  typedef boost::units::plane_angle_dimension heading_dimension;
1667 
1668  typedef boost::units::unit<heading_dimension,boost::units::degree::system> heading_unit;
1669 
1670  template<typename Quantity >
1671  void set_heading_with_units(Quantity value_w_units)
1672  { set_heading(boost::units::quantity<heading_unit,double >(value_w_units).value() ); };
1673 
1674  template<typename Quantity >
1675  Quantity heading_with_units() const
1676  { return Quantity(heading() * heading_unit()); };
1677 
1678  boost::units::quantity< heading_unit,double > heading_with_units() const
1679  { return heading_with_units<boost::units::quantity< heading_unit,double > >(); };
1680 
1681  typedef boost::units::plane_angle_dimension course_over_ground_dimension;
1682 
1683  typedef boost::units::unit<course_over_ground_dimension,boost::units::degree::system> course_over_ground_unit;
1684 
1685  template<typename Quantity >
1686  void set_course_over_ground_with_units(Quantity value_w_units)
1687  { set_course_over_ground(boost::units::quantity<course_over_ground_unit,double >(value_w_units).value() ); };
1688 
1689  template<typename Quantity >
1691  { return Quantity(course_over_ground() * course_over_ground_unit()); };
1692 
1693  boost::units::quantity< course_over_ground_unit,double > course_over_ground_with_units() const
1694  { return course_over_ground_with_units<boost::units::quantity< course_over_ground_unit,double > >(); };
1695 
1697 
1698  typedef boost::units::unit<roll_rate_dimension,boost::units::degree::system> roll_rate_unit;
1699 
1700  template<typename Quantity >
1701  void set_roll_rate_with_units(Quantity value_w_units)
1702  { set_roll_rate(boost::units::quantity<roll_rate_unit,double >(value_w_units).value() ); };
1703 
1704  template<typename Quantity >
1705  Quantity roll_rate_with_units() const
1706  { return Quantity(roll_rate() * roll_rate_unit()); };
1707 
1708  boost::units::quantity< roll_rate_unit,double > roll_rate_with_units() const
1709  { return roll_rate_with_units<boost::units::quantity< roll_rate_unit,double > >(); };
1710 
1712 
1713  typedef boost::units::unit<pitch_rate_dimension,boost::units::degree::system> pitch_rate_unit;
1714 
1715  template<typename Quantity >
1716  void set_pitch_rate_with_units(Quantity value_w_units)
1717  { set_pitch_rate(boost::units::quantity<pitch_rate_unit,double >(value_w_units).value() ); };
1718 
1719  template<typename Quantity >
1720  Quantity pitch_rate_with_units() const
1721  { return Quantity(pitch_rate() * pitch_rate_unit()); };
1722 
1723  boost::units::quantity< pitch_rate_unit,double > pitch_rate_with_units() const
1724  { return pitch_rate_with_units<boost::units::quantity< pitch_rate_unit,double > >(); };
1725 
1727 
1728  typedef boost::units::unit<heading_rate_dimension,boost::units::degree::system> heading_rate_unit;
1729 
1730  template<typename Quantity >
1731  void set_heading_rate_with_units(Quantity value_w_units)
1732  { set_heading_rate(boost::units::quantity<heading_rate_unit,double >(value_w_units).value() ); };
1733 
1734  template<typename Quantity >
1735  Quantity heading_rate_with_units() const
1736  { return Quantity(heading_rate() * heading_rate_unit()); };
1737 
1738  boost::units::quantity< heading_rate_unit,double > heading_rate_with_units() const
1739  { return heading_rate_with_units<boost::units::quantity< heading_rate_unit,double > >(); };
1740 
1741  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.EulerAngles)
1742  private:
1743  class _Internal;
1744 
1745  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
1746 
1747  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1748  typedef void InternalArenaConstructable_;
1749  typedef void DestructorSkippable_;
1750  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1751  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1752  double roll_;
1753  double pitch_;
1754  double heading_;
1755  double course_over_ground_;
1756  double roll_rate_;
1757  double pitch_rate_;
1758  double heading_rate_;
1759  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
1760 };
1761 // -------------------------------------------------------------------
1762 
1763 class Speed PROTOBUF_FINAL :
1764  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.Speed) */ {
1765  public:
1766  inline Speed() : Speed(nullptr) {};
1767  virtual ~Speed();
1768 
1769  Speed(const Speed& from);
1770  Speed(Speed&& from) noexcept
1771  : Speed() {
1772  *this = ::std::move(from);
1773  }
1774 
1775  inline Speed& operator=(const Speed& from) {
1776  CopyFrom(from);
1777  return *this;
1778  }
1779  inline Speed& operator=(Speed&& from) noexcept {
1780  if (GetArena() == from.GetArena()) {
1781  if (this != &from) InternalSwap(&from);
1782  } else {
1783  CopyFrom(from);
1784  }
1785  return *this;
1786  }
1787 
1788  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1789  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1790  }
1791  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1792  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1793  }
1794 
1795  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1796  return GetDescriptor();
1797  }
1798  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1799  return GetMetadataStatic().descriptor;
1800  }
1801  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1802  return GetMetadataStatic().reflection;
1803  }
1804  static const Speed& default_instance();
1805 
1806  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1807  static inline const Speed* internal_default_instance() {
1808  return reinterpret_cast<const Speed*>(
1810  }
1811  static constexpr int kIndexInFileMessages =
1812  5;
1813 
1814  friend void swap(Speed& a, Speed& b) {
1815  a.Swap(&b);
1816  }
1817  inline void Swap(Speed* other) {
1818  if (other == this) return;
1819  if (GetArena() == other->GetArena()) {
1820  InternalSwap(other);
1821  } else {
1822  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1823  }
1824  }
1825  void UnsafeArenaSwap(Speed* other) {
1826  if (other == this) return;
1827  GOOGLE_DCHECK(GetArena() == other->GetArena());
1828  InternalSwap(other);
1829  }
1830 
1831  // implements Message ----------------------------------------------
1832 
1833  inline Speed* New() const final {
1834  return CreateMaybeMessage<Speed>(nullptr);
1835  }
1836 
1837  Speed* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1838  return CreateMaybeMessage<Speed>(arena);
1839  }
1840  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1841  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1842  void CopyFrom(const Speed& from);
1843  void MergeFrom(const Speed& from);
1844  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1845  bool IsInitialized() const final;
1846 
1847  size_t ByteSizeLong() const final;
1848  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1849  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1850  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1851  int GetCachedSize() const final { return _cached_size_.Get(); }
1852 
1853  private:
1854  inline void SharedCtor();
1855  inline void SharedDtor();
1856  void SetCachedSize(int size) const final;
1857  void InternalSwap(Speed* other);
1858  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1859  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1860  return "goby.middleware.frontseat.protobuf.Speed";
1861  }
1862  protected:
1863  explicit Speed(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1864  private:
1865  static void ArenaDtor(void* object);
1866  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1867  public:
1868 
1869  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1870  private:
1871  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1872  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
1874  }
1875 
1876  public:
1877 
1878  // nested types ----------------------------------------------------
1879 
1880  // accessors -------------------------------------------------------
1881 
1882  enum : int {
1883  kOverGroundFieldNumber = 1,
1884  kOverWaterFieldNumber = 2,
1885  };
1886  // required double over_ground = 1 [(.dccl.field) = {
1887  bool has_over_ground() const;
1888  private:
1889  bool _internal_has_over_ground() const;
1890  public:
1892  double over_ground() const;
1893  void set_over_ground(double value);
1894  private:
1895  double _internal_over_ground() const;
1896  void _internal_set_over_ground(double value);
1897  public:
1898 
1899  // optional double over_water = 2 [(.dccl.field) = {
1900  bool has_over_water() const;
1901  private:
1902  bool _internal_has_over_water() const;
1903  public:
1905  double over_water() const;
1906  void set_over_water(double value);
1907  private:
1908  double _internal_over_water() const;
1909  void _internal_set_over_water(double value);
1910  public:
1911 
1912  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(Speed)
1913  typedef boost::mpl::divides<boost::units::length_dimension,boost::units::time_dimension>::type over_ground_dimension;
1914 
1915  typedef boost::units::unit<over_ground_dimension,boost::units::si::system> over_ground_unit;
1916 
1917  template<typename Quantity >
1918  void set_over_ground_with_units(Quantity value_w_units)
1919  { set_over_ground(boost::units::quantity<over_ground_unit,double >(value_w_units).value() ); };
1920 
1921  template<typename Quantity >
1922  Quantity over_ground_with_units() const
1923  { return Quantity(over_ground() * over_ground_unit()); };
1924 
1925  boost::units::quantity< over_ground_unit,double > over_ground_with_units() const
1926  { return over_ground_with_units<boost::units::quantity< over_ground_unit,double > >(); };
1927 
1929 
1930  typedef boost::units::unit<over_water_dimension,boost::units::si::system> over_water_unit;
1931 
1932  template<typename Quantity >
1933  void set_over_water_with_units(Quantity value_w_units)
1934  { set_over_water(boost::units::quantity<over_water_unit,double >(value_w_units).value() ); };
1935 
1936  template<typename Quantity >
1937  Quantity over_water_with_units() const
1938  { return Quantity(over_water() * over_water_unit()); };
1939 
1940  boost::units::quantity< over_water_unit,double > over_water_with_units() const
1941  { return over_water_with_units<boost::units::quantity< over_water_unit,double > >(); };
1942 
1943  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.Speed)
1944  private:
1945  class _Internal;
1946 
1947  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
1948 
1949  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1950  typedef void InternalArenaConstructable_;
1951  typedef void DestructorSkippable_;
1952  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1953  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1954  double over_ground_;
1955  double over_water_;
1956  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
1957 };
1958 // -------------------------------------------------------------------
1959 
1960 class CTDSample PROTOBUF_FINAL :
1961  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.CTDSample) */ {
1962  public:
1963  inline CTDSample() : CTDSample(nullptr) {};
1964  virtual ~CTDSample();
1965 
1966  CTDSample(const CTDSample& from);
1967  CTDSample(CTDSample&& from) noexcept
1968  : CTDSample() {
1969  *this = ::std::move(from);
1970  }
1971 
1972  inline CTDSample& operator=(const CTDSample& from) {
1973  CopyFrom(from);
1974  return *this;
1975  }
1976  inline CTDSample& operator=(CTDSample&& from) noexcept {
1977  if (GetArena() == from.GetArena()) {
1978  if (this != &from) InternalSwap(&from);
1979  } else {
1980  CopyFrom(from);
1981  }
1982  return *this;
1983  }
1984 
1985  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1986  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1987  }
1988  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1989  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1990  }
1991 
1992  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1993  return GetDescriptor();
1994  }
1995  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1996  return GetMetadataStatic().descriptor;
1997  }
1998  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1999  return GetMetadataStatic().reflection;
2000  }
2001  static const CTDSample& default_instance();
2002 
2003  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
2004  static inline const CTDSample* internal_default_instance() {
2005  return reinterpret_cast<const CTDSample*>(
2007  }
2008  static constexpr int kIndexInFileMessages =
2009  6;
2010 
2011  friend void swap(CTDSample& a, CTDSample& b) {
2012  a.Swap(&b);
2013  }
2014  inline void Swap(CTDSample* other) {
2015  if (other == this) return;
2016  if (GetArena() == other->GetArena()) {
2017  InternalSwap(other);
2018  } else {
2019  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
2020  }
2021  }
2022  void UnsafeArenaSwap(CTDSample* other) {
2023  if (other == this) return;
2024  GOOGLE_DCHECK(GetArena() == other->GetArena());
2025  InternalSwap(other);
2026  }
2027 
2028  // implements Message ----------------------------------------------
2029 
2030  inline CTDSample* New() const final {
2031  return CreateMaybeMessage<CTDSample>(nullptr);
2032  }
2033 
2034  CTDSample* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
2035  return CreateMaybeMessage<CTDSample>(arena);
2036  }
2037  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
2038  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
2039  void CopyFrom(const CTDSample& from);
2040  void MergeFrom(const CTDSample& from);
2041  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
2042  bool IsInitialized() const final;
2043 
2044  size_t ByteSizeLong() const final;
2045  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
2046  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
2047  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
2048  int GetCachedSize() const final { return _cached_size_.Get(); }
2049 
2050  private:
2051  inline void SharedCtor();
2052  inline void SharedDtor();
2053  void SetCachedSize(int size) const final;
2054  void InternalSwap(CTDSample* other);
2055  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
2056  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
2057  return "goby.middleware.frontseat.protobuf.CTDSample";
2058  }
2059  protected:
2060  explicit CTDSample(::PROTOBUF_NAMESPACE_ID::Arena* arena);
2061  private:
2062  static void ArenaDtor(void* object);
2063  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
2064  public:
2065 
2066  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
2067  private:
2068  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
2069  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
2071  }
2072 
2073  public:
2074 
2075  // nested types ----------------------------------------------------
2076 
2078  static constexpr SalinityAlgorithm SAL_ALGORITHM_UNKNOWN =
2080  static constexpr SalinityAlgorithm UNESCO_44_PREKIN_AND_LEWIS_1980 =
2082  static inline bool SalinityAlgorithm_IsValid(int value) {
2084  }
2085  static constexpr SalinityAlgorithm SalinityAlgorithm_MIN =
2087  static constexpr SalinityAlgorithm SalinityAlgorithm_MAX =
2089  static constexpr int SalinityAlgorithm_ARRAYSIZE =
2091  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
2094  }
2095  template<typename T>
2096  static inline const std::string& SalinityAlgorithm_Name(T enum_t_value) {
2097  static_assert(::std::is_same<T, SalinityAlgorithm>::value ||
2098  ::std::is_integral<T>::value,
2099  "Incorrect type passed to function SalinityAlgorithm_Name.");
2100  return CTDSample_SalinityAlgorithm_Name(enum_t_value);
2101  }
2102  static inline bool SalinityAlgorithm_Parse(const std::string& name,
2103  SalinityAlgorithm* value) {
2104  return CTDSample_SalinityAlgorithm_Parse(name, value);
2105  }
2106 
2108  static constexpr SoundSpeedAlgorithm SS_ALGORITHM_UNKNOWN =
2110  static constexpr SoundSpeedAlgorithm UNESCO_44_CHEN_AND_MILLERO_1977 =
2112  static constexpr SoundSpeedAlgorithm MACKENZIE_1981 =
2114  static constexpr SoundSpeedAlgorithm DEL_GROSSO_1974 =
2116  static inline bool SoundSpeedAlgorithm_IsValid(int value) {
2118  }
2119  static constexpr SoundSpeedAlgorithm SoundSpeedAlgorithm_MIN =
2121  static constexpr SoundSpeedAlgorithm SoundSpeedAlgorithm_MAX =
2123  static constexpr int SoundSpeedAlgorithm_ARRAYSIZE =
2125  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
2128  }
2129  template<typename T>
2130  static inline const std::string& SoundSpeedAlgorithm_Name(T enum_t_value) {
2131  static_assert(::std::is_same<T, SoundSpeedAlgorithm>::value ||
2132  ::std::is_integral<T>::value,
2133  "Incorrect type passed to function SoundSpeedAlgorithm_Name.");
2134  return CTDSample_SoundSpeedAlgorithm_Name(enum_t_value);
2135  }
2136  static inline bool SoundSpeedAlgorithm_Parse(const std::string& name,
2137  SoundSpeedAlgorithm* value) {
2138  return CTDSample_SoundSpeedAlgorithm_Parse(name, value);
2139  }
2140 
2142  static constexpr DensityAlgorithm DENSITY_ALGORITHM_UNKNOWN =
2144  static constexpr DensityAlgorithm UNESCO_38_MILLERO_AND_POISSON_1981 =
2146  static inline bool DensityAlgorithm_IsValid(int value) {
2147  return CTDSample_DensityAlgorithm_IsValid(value);
2148  }
2149  static constexpr DensityAlgorithm DensityAlgorithm_MIN =
2151  static constexpr DensityAlgorithm DensityAlgorithm_MAX =
2153  static constexpr int DensityAlgorithm_ARRAYSIZE =
2155  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
2158  }
2159  template<typename T>
2160  static inline const std::string& DensityAlgorithm_Name(T enum_t_value) {
2161  static_assert(::std::is_same<T, DensityAlgorithm>::value ||
2162  ::std::is_integral<T>::value,
2163  "Incorrect type passed to function DensityAlgorithm_Name.");
2164  return CTDSample_DensityAlgorithm_Name(enum_t_value);
2165  }
2166  static inline bool DensityAlgorithm_Parse(const std::string& name,
2167  DensityAlgorithm* value) {
2168  return CTDSample_DensityAlgorithm_Parse(name, value);
2169  }
2170 
2171  // accessors -------------------------------------------------------
2172 
2173  enum : int {
2174  kGlobalFixFieldNumber = 23,
2175  kTimeFieldNumber = 2,
2176  kConductivityFieldNumber = 10,
2177  kTemperatureFieldNumber = 11,
2178  kPressureFieldNumber = 12,
2179  kDensityAlgorithmFieldNumber = 32,
2180  kSalinityFieldNumber = 20,
2181  kSoundSpeedFieldNumber = 21,
2182  kDensityFieldNumber = 22,
2183  kSalinityAlgorithmFieldNumber = 30,
2184  kSoundSpeedAlgorithmFieldNumber = 31,
2185  };
2186  // required .goby.middleware.protobuf.LatLonPoint global_fix = 23;
2187  bool has_global_fix() const;
2188  private:
2189  bool _internal_has_global_fix() const;
2190  public:
2192  const ::goby::middleware::protobuf::LatLonPoint& global_fix() const;
2193  ::goby::middleware::protobuf::LatLonPoint* release_global_fix();
2194  ::goby::middleware::protobuf::LatLonPoint* mutable_global_fix();
2195  void set_allocated_global_fix(::goby::middleware::protobuf::LatLonPoint* global_fix);
2196  private:
2197  const ::goby::middleware::protobuf::LatLonPoint& _internal_global_fix() const;
2198  ::goby::middleware::protobuf::LatLonPoint* _internal_mutable_global_fix();
2199  public:
2201  ::goby::middleware::protobuf::LatLonPoint* global_fix);
2202  ::goby::middleware::protobuf::LatLonPoint* unsafe_arena_release_global_fix();
2203 
2204  // required double time = 2 [(.dccl.field) = {
2205  bool has_time() const;
2206  private:
2207  bool _internal_has_time() const;
2208  public:
2209  void clear_time();
2210  double time() const;
2211  void set_time(double value);
2212  private:
2213  double _internal_time() const;
2214  void _internal_set_time(double value);
2215  public:
2216 
2217  // optional double conductivity = 10 [(.dccl.field) = {
2218  bool has_conductivity() const;
2219  private:
2220  bool _internal_has_conductivity() const;
2221  public:
2223  double conductivity() const;
2224  void set_conductivity(double value);
2225  private:
2226  double _internal_conductivity() const;
2227  void _internal_set_conductivity(double value);
2228  public:
2229 
2230  // required double temperature = 11 [(.dccl.field) = {
2231  bool has_temperature() const;
2232  private:
2233  bool _internal_has_temperature() const;
2234  public:
2236  double temperature() const;
2237  void set_temperature(double value);
2238  private:
2239  double _internal_temperature() const;
2240  void _internal_set_temperature(double value);
2241  public:
2242 
2243  // required double pressure = 12 [(.dccl.field) = {
2244  bool has_pressure() const;
2245  private:
2246  bool _internal_has_pressure() const;
2247  public:
2249  double pressure() const;
2250  void set_pressure(double value);
2251  private:
2252  double _internal_pressure() const;
2253  void _internal_set_pressure(double value);
2254  public:
2255 
2256  // optional .goby.middleware.frontseat.protobuf.CTDSample.DensityAlgorithm density_algorithm = 32 [default = DENSITY_ALGORITHM_UNKNOWN];
2258  private:
2259  bool _internal_has_density_algorithm() const;
2260  public:
2264  private:
2265  ::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm _internal_density_algorithm() const;
2266  void _internal_set_density_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm value);
2267  public:
2268 
2269  // required double salinity = 20 [(.dccl.field) = {
2270  bool has_salinity() const;
2271  private:
2272  bool _internal_has_salinity() const;
2273  public:
2275  double salinity() const;
2276  void set_salinity(double value);
2277  private:
2278  double _internal_salinity() const;
2279  void _internal_set_salinity(double value);
2280  public:
2281 
2282  // required double sound_speed = 21 [(.dccl.field) = {
2283  bool has_sound_speed() const;
2284  private:
2285  bool _internal_has_sound_speed() const;
2286  public:
2288  double sound_speed() const;
2289  void set_sound_speed(double value);
2290  private:
2291  double _internal_sound_speed() const;
2292  void _internal_set_sound_speed(double value);
2293  public:
2294 
2295  // required double density = 22 [(.dccl.field) = {
2296  bool has_density() const;
2297  private:
2298  bool _internal_has_density() const;
2299  public:
2301  double density() const;
2302  void set_density(double value);
2303  private:
2304  double _internal_density() const;
2305  void _internal_set_density(double value);
2306  public:
2307 
2308  // optional .goby.middleware.frontseat.protobuf.CTDSample.SalinityAlgorithm salinity_algorithm = 30 [default = SAL_ALGORITHM_UNKNOWN];
2310  private:
2311  bool _internal_has_salinity_algorithm() const;
2312  public:
2316  private:
2317  ::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm _internal_salinity_algorithm() const;
2318  void _internal_set_salinity_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm value);
2319  public:
2320 
2321  // optional .goby.middleware.frontseat.protobuf.CTDSample.SoundSpeedAlgorithm sound_speed_algorithm = 31 [default = SS_ALGORITHM_UNKNOWN];
2323  private:
2324  bool _internal_has_sound_speed_algorithm() const;
2325  public:
2329  private:
2330  ::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm _internal_sound_speed_algorithm() const;
2331  void _internal_set_sound_speed_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm value);
2332  public:
2333 
2334  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(CTDSample)
2335  typedef boost::units::derived_dimension< boost::units::time_base_dimension,1 >::type time_dimension;
2336 
2337  typedef boost::units::unit<time_dimension,boost::units::si::system> time_unit;
2338 
2339  template<typename Quantity >
2340  void set_time_with_units(Quantity value_w_units)
2341  { set_time(boost::units::quantity<time_unit,double >(value_w_units).value() ); };
2342 
2343  template<typename Quantity >
2344  Quantity time_with_units() const
2345  { return Quantity(time() * time_unit()); };
2346 
2347  boost::units::quantity< time_unit,double > time_with_units() const
2348  { return time_with_units<boost::units::quantity< time_unit,double > >(); };
2349 
2350  typedef boost::units::conductivity_dimension conductivity_dimension;
2351 
2352  typedef boost::units::unit<conductivity_dimension,boost::units::si::system> conductivity_unit;
2353 
2354  template<typename Quantity >
2355  void set_conductivity_with_units(Quantity value_w_units)
2356  { set_conductivity(boost::units::quantity<conductivity_unit,double >(value_w_units).value() ); };
2357 
2358  template<typename Quantity >
2359  Quantity conductivity_with_units() const
2360  { return Quantity(conductivity() * conductivity_unit()); };
2361 
2362  boost::units::quantity< conductivity_unit,double > conductivity_with_units() const
2363  { return conductivity_with_units<boost::units::quantity< conductivity_unit,double > >(); };
2364 
2365  typedef boost::units::temperature_dimension temperature_dimension;
2366 
2367  typedef boost::units::absolute<boost::units::unit<temperature_dimension,boost::units::celsius::system> > temperature_unit;
2368 
2369  template<typename Quantity >
2370  void set_temperature_with_units(Quantity value_w_units)
2371  { set_temperature(boost::units::quantity<temperature_unit,double >(value_w_units).value() ); };
2372 
2373  template<typename Quantity >
2374  Quantity temperature_with_units() const
2375  { return Quantity(temperature() * temperature_unit()); };
2376 
2377  boost::units::quantity< temperature_unit,double > temperature_with_units() const
2378  { return temperature_with_units<boost::units::quantity< temperature_unit,double > >(); };
2379 
2380  typedef boost::units::derived_dimension< boost::units::mass_base_dimension,1, boost::units::length_base_dimension,-1, boost::units::time_base_dimension,-2 >::type pressure_dimension;
2381 
2382  typedef boost::units::unit<pressure_dimension,boost::units::si::system> pressure_unit;
2383 
2384  template<typename Quantity >
2385  void set_pressure_with_units(Quantity value_w_units)
2386  { set_pressure(boost::units::quantity<pressure_unit,double >(value_w_units).value() ); };
2387 
2388  template<typename Quantity >
2389  Quantity pressure_with_units() const
2390  { return Quantity(pressure() * pressure_unit()); };
2391 
2392  boost::units::quantity< pressure_unit,double > pressure_with_units() const
2393  { return pressure_with_units<boost::units::quantity< pressure_unit,double > >(); };
2394 
2395  typedef boost::units::dimensionless_type salinity_dimension;
2396 
2397  typedef boost::units::unit<salinity_dimension,boost::units::si::system> salinity_unit;
2398 
2399  template<typename Quantity >
2400  void set_salinity_with_units(Quantity value_w_units)
2401  { set_salinity(boost::units::quantity<salinity_unit,double >(value_w_units).value() ); };
2402 
2403  template<typename Quantity >
2404  Quantity salinity_with_units() const
2405  { return Quantity(salinity() * salinity_unit()); };
2406 
2407  boost::units::quantity< salinity_unit,double > salinity_with_units() const
2408  { return salinity_with_units<boost::units::quantity< salinity_unit,double > >(); };
2409 
2410  typedef boost::units::derived_dimension< boost::units::length_base_dimension,1, boost::units::time_base_dimension,-1 >::type sound_speed_dimension;
2411 
2412  typedef boost::units::unit<sound_speed_dimension,boost::units::si::system> sound_speed_unit;
2413 
2414  template<typename Quantity >
2415  void set_sound_speed_with_units(Quantity value_w_units)
2416  { set_sound_speed(boost::units::quantity<sound_speed_unit,double >(value_w_units).value() ); };
2417 
2418  template<typename Quantity >
2419  Quantity sound_speed_with_units() const
2420  { return Quantity(sound_speed() * sound_speed_unit()); };
2421 
2422  boost::units::quantity< sound_speed_unit,double > sound_speed_with_units() const
2423  { return sound_speed_with_units<boost::units::quantity< sound_speed_unit,double > >(); };
2424 
2425  typedef boost::units::derived_dimension< boost::units::mass_base_dimension,1, boost::units::length_base_dimension,-3 >::type density_dimension;
2426 
2427  typedef boost::units::unit<density_dimension,boost::units::si::system> density_unit;
2428 
2429  template<typename Quantity >
2430  void set_density_with_units(Quantity value_w_units)
2431  { set_density(boost::units::quantity<density_unit,double >(value_w_units).value() ); };
2432 
2433  template<typename Quantity >
2434  Quantity density_with_units() const
2435  { return Quantity(density() * density_unit()); };
2436 
2437  boost::units::quantity< density_unit,double > density_with_units() const
2438  { return density_with_units<boost::units::quantity< density_unit,double > >(); };
2439 
2440  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.CTDSample)
2441  private:
2442  class _Internal;
2443 
2444  // helper for ByteSizeLong()
2445  size_t RequiredFieldsByteSizeFallback() const;
2446 
2447  ::PROTOBUF_NAMESPACE_ID::internal::ExtensionSet _extensions_;
2448 
2449  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
2450  typedef void InternalArenaConstructable_;
2451  typedef void DestructorSkippable_;
2452  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
2453  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
2454  ::goby::middleware::protobuf::LatLonPoint* global_fix_;
2455  double time_;
2456  double conductivity_;
2457  double temperature_;
2458  double pressure_;
2459  int density_algorithm_;
2460  double salinity_;
2461  double sound_speed_;
2462  double density_;
2463  int salinity_algorithm_;
2464  int sound_speed_algorithm_;
2465  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
2466 };
2467 // -------------------------------------------------------------------
2468 
2469 class DatumUpdate PROTOBUF_FINAL :
2470  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:goby.middleware.frontseat.protobuf.DatumUpdate) */ {
2471  public:
2472  inline DatumUpdate() : DatumUpdate(nullptr) {};
2473  virtual ~DatumUpdate();
2474 
2475  DatumUpdate(const DatumUpdate& from);
2476  DatumUpdate(DatumUpdate&& from) noexcept
2477  : DatumUpdate() {
2478  *this = ::std::move(from);
2479  }
2480 
2481  inline DatumUpdate& operator=(const DatumUpdate& from) {
2482  CopyFrom(from);
2483  return *this;
2484  }
2485  inline DatumUpdate& operator=(DatumUpdate&& from) noexcept {
2486  if (GetArena() == from.GetArena()) {
2487  if (this != &from) InternalSwap(&from);
2488  } else {
2489  CopyFrom(from);
2490  }
2491  return *this;
2492  }
2493 
2494  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
2495  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
2496  }
2497  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
2498  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2499  }
2500 
2501  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
2502  return GetDescriptor();
2503  }
2504  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
2505  return GetMetadataStatic().descriptor;
2506  }
2507  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
2508  return GetMetadataStatic().reflection;
2509  }
2510  static const DatumUpdate& default_instance();
2511 
2512  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
2513  static inline const DatumUpdate* internal_default_instance() {
2514  return reinterpret_cast<const DatumUpdate*>(
2516  }
2517  static constexpr int kIndexInFileMessages =
2518  7;
2519 
2520  friend void swap(DatumUpdate& a, DatumUpdate& b) {
2521  a.Swap(&b);
2522  }
2523  inline void Swap(DatumUpdate* other) {
2524  if (other == this) return;
2525  if (GetArena() == other->GetArena()) {
2526  InternalSwap(other);
2527  } else {
2528  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
2529  }
2530  }
2531  void UnsafeArenaSwap(DatumUpdate* other) {
2532  if (other == this) return;
2533  GOOGLE_DCHECK(GetArena() == other->GetArena());
2534  InternalSwap(other);
2535  }
2536 
2537  // implements Message ----------------------------------------------
2538 
2539  inline DatumUpdate* New() const final {
2540  return CreateMaybeMessage<DatumUpdate>(nullptr);
2541  }
2542 
2543  DatumUpdate* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
2544  return CreateMaybeMessage<DatumUpdate>(arena);
2545  }
2546  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
2547  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
2548  void CopyFrom(const DatumUpdate& from);
2549  void MergeFrom(const DatumUpdate& from);
2550  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
2551  bool IsInitialized() const final;
2552 
2553  size_t ByteSizeLong() const final;
2554  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
2555  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
2556  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
2557  int GetCachedSize() const final { return _cached_size_.Get(); }
2558 
2559  private:
2560  inline void SharedCtor();
2561  inline void SharedDtor();
2562  void SetCachedSize(int size) const final;
2563  void InternalSwap(DatumUpdate* other);
2564  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
2565  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
2566  return "goby.middleware.frontseat.protobuf.DatumUpdate";
2567  }
2568  protected:
2569  explicit DatumUpdate(::PROTOBUF_NAMESPACE_ID::Arena* arena);
2570  private:
2571  static void ArenaDtor(void* object);
2572  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
2573  public:
2574 
2575  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
2576  private:
2577  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
2578  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto);
2580  }
2581 
2582  public:
2583 
2584  // nested types ----------------------------------------------------
2585 
2586  // accessors -------------------------------------------------------
2587 
2588  enum : int {
2589  kDatumFieldNumber = 1,
2590  };
2591  // required .goby.middleware.protobuf.LatLonPoint datum = 1;
2592  bool has_datum() const;
2593  private:
2594  bool _internal_has_datum() const;
2595  public:
2596  void clear_datum();
2597  const ::goby::middleware::protobuf::LatLonPoint& datum() const;
2598  ::goby::middleware::protobuf::LatLonPoint* release_datum();
2599  ::goby::middleware::protobuf::LatLonPoint* mutable_datum();
2600  void set_allocated_datum(::goby::middleware::protobuf::LatLonPoint* datum);
2601  private:
2602  const ::goby::middleware::protobuf::LatLonPoint& _internal_datum() const;
2603  ::goby::middleware::protobuf::LatLonPoint* _internal_mutable_datum();
2604  public:
2606  ::goby::middleware::protobuf::LatLonPoint* datum);
2607  ::goby::middleware::protobuf::LatLonPoint* unsafe_arena_release_datum();
2608 
2609  // @@protoc_insertion_point(class_scope:goby.middleware.frontseat.protobuf.DatumUpdate)
2610  private:
2611  class _Internal;
2612 
2613  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
2614  typedef void InternalArenaConstructable_;
2615  typedef void DestructorSkippable_;
2616  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
2617  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
2618  ::goby::middleware::protobuf::LatLonPoint* datum_;
2619  friend struct ::TableStruct_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto;
2620 };
2621 // ===================================================================
2622 
2623 
2624 // ===================================================================
2625 
2626 #ifdef __GNUC__
2627  #pragma GCC diagnostic push
2628  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
2629 #endif // __GNUC__
2630 // NodeStatus
2631 
2632 // required double time = 1 [(.dccl.field) = {
2633 inline bool NodeStatus::_internal_has_time() const {
2634  bool value = (_has_bits_[0] & 0x00000040u) != 0;
2635  return value;
2636 }
2637 inline bool NodeStatus::has_time() const {
2638  return _internal_has_time();
2639 }
2640 inline void NodeStatus::clear_time() {
2641  time_ = 0;
2642  _has_bits_[0] &= ~0x00000040u;
2643 }
2644 inline double NodeStatus::_internal_time() const {
2645  return time_;
2646 }
2647 inline double NodeStatus::time() const {
2648  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.time)
2649  return _internal_time();
2650 }
2651 inline void NodeStatus::_internal_set_time(double value) {
2652  _has_bits_[0] |= 0x00000040u;
2653  time_ = value;
2654 }
2655 inline void NodeStatus::set_time(double value) {
2656  _internal_set_time(value);
2657  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.NodeStatus.time)
2658 }
2659 
2660 // optional string name = 2;
2661 inline bool NodeStatus::_internal_has_name() const {
2662  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2663  return value;
2664 }
2665 inline bool NodeStatus::has_name() const {
2666  return _internal_has_name();
2667 }
2668 inline void NodeStatus::clear_name() {
2669  name_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2670  _has_bits_[0] &= ~0x00000001u;
2671 }
2672 inline const std::string& NodeStatus::name() const {
2673  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.name)
2674  return _internal_name();
2675 }
2676 inline void NodeStatus::set_name(const std::string& value) {
2677  _internal_set_name(value);
2678  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.NodeStatus.name)
2679 }
2680 inline std::string* NodeStatus::mutable_name() {
2681  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.NodeStatus.name)
2682  return _internal_mutable_name();
2683 }
2684 inline const std::string& NodeStatus::_internal_name() const {
2685  return name_.Get();
2686 }
2687 inline void NodeStatus::_internal_set_name(const std::string& value) {
2688  _has_bits_[0] |= 0x00000001u;
2689  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
2690 }
2691 inline void NodeStatus::set_name(std::string&& value) {
2692  _has_bits_[0] |= 0x00000001u;
2693  name_.Set(
2694  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
2695  // @@protoc_insertion_point(field_set_rvalue:goby.middleware.frontseat.protobuf.NodeStatus.name)
2696 }
2697 inline void NodeStatus::set_name(const char* value) {
2698  GOOGLE_DCHECK(value != nullptr);
2699  _has_bits_[0] |= 0x00000001u;
2700  name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
2701  GetArena());
2702  // @@protoc_insertion_point(field_set_char:goby.middleware.frontseat.protobuf.NodeStatus.name)
2703 }
2704 inline void NodeStatus::set_name(const char* value,
2705  size_t size) {
2706  _has_bits_[0] |= 0x00000001u;
2708  reinterpret_cast<const char*>(value), size), GetArena());
2709  // @@protoc_insertion_point(field_set_pointer:goby.middleware.frontseat.protobuf.NodeStatus.name)
2710 }
2711 inline std::string* NodeStatus::_internal_mutable_name() {
2712  _has_bits_[0] |= 0x00000001u;
2713  return name_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2714 }
2715 inline std::string* NodeStatus::release_name() {
2716  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.NodeStatus.name)
2717  if (!_internal_has_name()) {
2718  return nullptr;
2719  }
2720  _has_bits_[0] &= ~0x00000001u;
2721  return name_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
2722 }
2723 inline void NodeStatus::set_allocated_name(std::string* name) {
2724  if (name != nullptr) {
2725  _has_bits_[0] |= 0x00000001u;
2726  } else {
2727  _has_bits_[0] &= ~0x00000001u;
2728  }
2730  GetArena());
2731  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.name)
2732 }
2733 inline std::string* NodeStatus::unsafe_arena_release_name() {
2734  // @@protoc_insertion_point(field_unsafe_arena_release:goby.middleware.frontseat.protobuf.NodeStatus.name)
2735  GOOGLE_DCHECK(GetArena() != nullptr);
2736  _has_bits_[0] &= ~0x00000001u;
2737  return name_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2738  GetArena());
2739 }
2740 inline void NodeStatus::unsafe_arena_set_allocated_name(
2741  std::string* name) {
2742  GOOGLE_DCHECK(GetArena() != nullptr);
2743  if (name != nullptr) {
2744  _has_bits_[0] |= 0x00000001u;
2745  } else {
2746  _has_bits_[0] &= ~0x00000001u;
2747  }
2748  name_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
2749  name, GetArena());
2750  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.name)
2751 }
2752 
2753 // optional .goby.middleware.frontseat.protobuf.VehicleType type = 3;
2754 inline bool NodeStatus::_internal_has_type() const {
2755  bool value = (_has_bits_[0] & 0x00000080u) != 0;
2756  return value;
2757 }
2758 inline bool NodeStatus::has_type() const {
2759  return _internal_has_type();
2760 }
2761 inline void NodeStatus::clear_type() {
2762  type_ = 0;
2763  _has_bits_[0] &= ~0x00000080u;
2764 }
2765 inline ::goby::middleware::frontseat::protobuf::VehicleType NodeStatus::_internal_type() const {
2766  return static_cast< ::goby::middleware::frontseat::protobuf::VehicleType >(type_);
2767 }
2769  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.type)
2770  return _internal_type();
2771 }
2772 inline void NodeStatus::_internal_set_type(::goby::middleware::frontseat::protobuf::VehicleType value) {
2774  _has_bits_[0] |= 0x00000080u;
2775  type_ = value;
2776 }
2777 inline void NodeStatus::set_type(::goby::middleware::frontseat::protobuf::VehicleType value) {
2778  _internal_set_type(value);
2779  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.NodeStatus.type)
2780 }
2781 
2782 // required .goby.middleware.protobuf.LatLonPoint global_fix = 10;
2783 inline bool NodeStatus::_internal_has_global_fix() const {
2784  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2785  PROTOBUF_ASSUME(!value || global_fix_ != nullptr);
2786  return value;
2787 }
2788 inline bool NodeStatus::has_global_fix() const {
2789  return _internal_has_global_fix();
2790 }
2791 inline const ::goby::middleware::protobuf::LatLonPoint& NodeStatus::_internal_global_fix() const {
2792  const ::goby::middleware::protobuf::LatLonPoint* p = global_fix_;
2793  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::protobuf::LatLonPoint*>(
2795 }
2796 inline const ::goby::middleware::protobuf::LatLonPoint& NodeStatus::global_fix() const {
2797  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.global_fix)
2798  return _internal_global_fix();
2799 }
2800 inline void NodeStatus::unsafe_arena_set_allocated_global_fix(
2801  ::goby::middleware::protobuf::LatLonPoint* global_fix) {
2802  if (GetArena() == nullptr) {
2803  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(global_fix_);
2804  }
2805  global_fix_ = global_fix;
2806  if (global_fix) {
2807  _has_bits_[0] |= 0x00000002u;
2808  } else {
2809  _has_bits_[0] &= ~0x00000002u;
2810  }
2811  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.global_fix)
2812 }
2813 inline ::goby::middleware::protobuf::LatLonPoint* NodeStatus::release_global_fix() {
2814  auto temp = unsafe_arena_release_global_fix();
2815  if (GetArena() != nullptr) {
2816  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2817  }
2818  return temp;
2819 }
2820 inline ::goby::middleware::protobuf::LatLonPoint* NodeStatus::unsafe_arena_release_global_fix() {
2821  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.NodeStatus.global_fix)
2822  _has_bits_[0] &= ~0x00000002u;
2823  ::goby::middleware::protobuf::LatLonPoint* temp = global_fix_;
2824  global_fix_ = nullptr;
2825  return temp;
2826 }
2827 inline ::goby::middleware::protobuf::LatLonPoint* NodeStatus::_internal_mutable_global_fix() {
2828  _has_bits_[0] |= 0x00000002u;
2829  if (global_fix_ == nullptr) {
2830  auto* p = CreateMaybeMessage<::goby::middleware::protobuf::LatLonPoint>(GetArena());
2831  global_fix_ = p;
2832  }
2833  return global_fix_;
2834 }
2835 inline ::goby::middleware::protobuf::LatLonPoint* NodeStatus::mutable_global_fix() {
2836  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.NodeStatus.global_fix)
2837  return _internal_mutable_global_fix();
2838 }
2839 inline void NodeStatus::set_allocated_global_fix(::goby::middleware::protobuf::LatLonPoint* global_fix) {
2840  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2841  if (message_arena == nullptr) {
2842  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(global_fix_);
2843  }
2844  if (global_fix) {
2845  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2846  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(global_fix)->GetArena();
2847  if (message_arena != submessage_arena) {
2848  global_fix = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2849  message_arena, global_fix, submessage_arena);
2850  }
2851  _has_bits_[0] |= 0x00000002u;
2852  } else {
2853  _has_bits_[0] &= ~0x00000002u;
2854  }
2855  global_fix_ = global_fix;
2856  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.global_fix)
2857 }
2858 
2859 // optional .goby.middleware.frontseat.protobuf.CartesianCoordinate local_fix = 11;
2860 inline bool NodeStatus::_internal_has_local_fix() const {
2861  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2862  PROTOBUF_ASSUME(!value || local_fix_ != nullptr);
2863  return value;
2864 }
2865 inline bool NodeStatus::has_local_fix() const {
2866  return _internal_has_local_fix();
2867 }
2868 inline void NodeStatus::clear_local_fix() {
2869  if (local_fix_ != nullptr) local_fix_->Clear();
2870  _has_bits_[0] &= ~0x00000004u;
2871 }
2872 inline const ::goby::middleware::frontseat::protobuf::CartesianCoordinate& NodeStatus::_internal_local_fix() const {
2873  const ::goby::middleware::frontseat::protobuf::CartesianCoordinate* p = local_fix_;
2874  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::frontseat::protobuf::CartesianCoordinate*>(
2876 }
2877 inline const ::goby::middleware::frontseat::protobuf::CartesianCoordinate& NodeStatus::local_fix() const {
2878  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.local_fix)
2879  return _internal_local_fix();
2880 }
2881 inline void NodeStatus::unsafe_arena_set_allocated_local_fix(
2882  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* local_fix) {
2883  if (GetArena() == nullptr) {
2884  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(local_fix_);
2885  }
2886  local_fix_ = local_fix;
2887  if (local_fix) {
2888  _has_bits_[0] |= 0x00000004u;
2889  } else {
2890  _has_bits_[0] &= ~0x00000004u;
2891  }
2892  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.local_fix)
2893 }
2894 inline ::goby::middleware::frontseat::protobuf::CartesianCoordinate* NodeStatus::release_local_fix() {
2895  auto temp = unsafe_arena_release_local_fix();
2896  if (GetArena() != nullptr) {
2897  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2898  }
2899  return temp;
2900 }
2901 inline ::goby::middleware::frontseat::protobuf::CartesianCoordinate* NodeStatus::unsafe_arena_release_local_fix() {
2902  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.NodeStatus.local_fix)
2903  _has_bits_[0] &= ~0x00000004u;
2904  ::goby::middleware::frontseat::protobuf::CartesianCoordinate* temp = local_fix_;
2905  local_fix_ = nullptr;
2906  return temp;
2907 }
2908 inline ::goby::middleware::frontseat::protobuf::CartesianCoordinate* NodeStatus::_internal_mutable_local_fix() {
2909  _has_bits_[0] |= 0x00000004u;
2910  if (local_fix_ == nullptr) {
2911  auto* p = CreateMaybeMessage<::goby::middleware::frontseat::protobuf::CartesianCoordinate>(GetArena());
2912  local_fix_ = p;
2913  }
2914  return local_fix_;
2915 }
2916 inline ::goby::middleware::frontseat::protobuf::CartesianCoordinate* NodeStatus::mutable_local_fix() {
2917  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.NodeStatus.local_fix)
2918  return _internal_mutable_local_fix();
2919 }
2920 inline void NodeStatus::set_allocated_local_fix(::goby::middleware::frontseat::protobuf::CartesianCoordinate* local_fix) {
2921  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2922  if (message_arena == nullptr) {
2923  delete local_fix_;
2924  }
2925  if (local_fix) {
2926  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2927  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(local_fix);
2928  if (message_arena != submessage_arena) {
2929  local_fix = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2930  message_arena, local_fix, submessage_arena);
2931  }
2932  _has_bits_[0] |= 0x00000004u;
2933  } else {
2934  _has_bits_[0] &= ~0x00000004u;
2935  }
2936  local_fix_ = local_fix;
2937  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.local_fix)
2938 }
2939 
2940 // required .goby.middleware.frontseat.protobuf.EulerAngles pose = 20;
2941 inline bool NodeStatus::_internal_has_pose() const {
2942  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2943  PROTOBUF_ASSUME(!value || pose_ != nullptr);
2944  return value;
2945 }
2946 inline bool NodeStatus::has_pose() const {
2947  return _internal_has_pose();
2948 }
2949 inline void NodeStatus::clear_pose() {
2950  if (pose_ != nullptr) pose_->Clear();
2951  _has_bits_[0] &= ~0x00000008u;
2952 }
2953 inline const ::goby::middleware::frontseat::protobuf::EulerAngles& NodeStatus::_internal_pose() const {
2954  const ::goby::middleware::frontseat::protobuf::EulerAngles* p = pose_;
2955  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::frontseat::protobuf::EulerAngles*>(
2957 }
2958 inline const ::goby::middleware::frontseat::protobuf::EulerAngles& NodeStatus::pose() const {
2959  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.pose)
2960  return _internal_pose();
2961 }
2962 inline void NodeStatus::unsafe_arena_set_allocated_pose(
2963  ::goby::middleware::frontseat::protobuf::EulerAngles* pose) {
2964  if (GetArena() == nullptr) {
2965  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pose_);
2966  }
2967  pose_ = pose;
2968  if (pose) {
2969  _has_bits_[0] |= 0x00000008u;
2970  } else {
2971  _has_bits_[0] &= ~0x00000008u;
2972  }
2973  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.pose)
2974 }
2975 inline ::goby::middleware::frontseat::protobuf::EulerAngles* NodeStatus::release_pose() {
2976  auto temp = unsafe_arena_release_pose();
2977  if (GetArena() != nullptr) {
2978  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2979  }
2980  return temp;
2981 }
2982 inline ::goby::middleware::frontseat::protobuf::EulerAngles* NodeStatus::unsafe_arena_release_pose() {
2983  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.NodeStatus.pose)
2984  _has_bits_[0] &= ~0x00000008u;
2985  ::goby::middleware::frontseat::protobuf::EulerAngles* temp = pose_;
2986  pose_ = nullptr;
2987  return temp;
2988 }
2989 inline ::goby::middleware::frontseat::protobuf::EulerAngles* NodeStatus::_internal_mutable_pose() {
2990  _has_bits_[0] |= 0x00000008u;
2991  if (pose_ == nullptr) {
2992  auto* p = CreateMaybeMessage<::goby::middleware::frontseat::protobuf::EulerAngles>(GetArena());
2993  pose_ = p;
2994  }
2995  return pose_;
2996 }
2997 inline ::goby::middleware::frontseat::protobuf::EulerAngles* NodeStatus::mutable_pose() {
2998  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.NodeStatus.pose)
2999  return _internal_mutable_pose();
3000 }
3001 inline void NodeStatus::set_allocated_pose(::goby::middleware::frontseat::protobuf::EulerAngles* pose) {
3002  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3003  if (message_arena == nullptr) {
3004  delete pose_;
3005  }
3006  if (pose) {
3007  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3008  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(pose);
3009  if (message_arena != submessage_arena) {
3010  pose = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3011  message_arena, pose, submessage_arena);
3012  }
3013  _has_bits_[0] |= 0x00000008u;
3014  } else {
3015  _has_bits_[0] &= ~0x00000008u;
3016  }
3017  pose_ = pose;
3018  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.pose)
3019 }
3020 
3021 // required .goby.middleware.frontseat.protobuf.Speed speed = 30;
3022 inline bool NodeStatus::_internal_has_speed() const {
3023  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3024  PROTOBUF_ASSUME(!value || speed_ != nullptr);
3025  return value;
3026 }
3027 inline bool NodeStatus::has_speed() const {
3028  return _internal_has_speed();
3029 }
3030 inline void NodeStatus::clear_speed() {
3031  if (speed_ != nullptr) speed_->Clear();
3032  _has_bits_[0] &= ~0x00000010u;
3033 }
3034 inline const ::goby::middleware::frontseat::protobuf::Speed& NodeStatus::_internal_speed() const {
3035  const ::goby::middleware::frontseat::protobuf::Speed* p = speed_;
3036  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::frontseat::protobuf::Speed*>(
3038 }
3039 inline const ::goby::middleware::frontseat::protobuf::Speed& NodeStatus::speed() const {
3040  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.speed)
3041  return _internal_speed();
3042 }
3043 inline void NodeStatus::unsafe_arena_set_allocated_speed(
3044  ::goby::middleware::frontseat::protobuf::Speed* speed) {
3045  if (GetArena() == nullptr) {
3046  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(speed_);
3047  }
3048  speed_ = speed;
3049  if (speed) {
3050  _has_bits_[0] |= 0x00000010u;
3051  } else {
3052  _has_bits_[0] &= ~0x00000010u;
3053  }
3054  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.speed)
3055 }
3056 inline ::goby::middleware::frontseat::protobuf::Speed* NodeStatus::release_speed() {
3057  auto temp = unsafe_arena_release_speed();
3058  if (GetArena() != nullptr) {
3059  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3060  }
3061  return temp;
3062 }
3063 inline ::goby::middleware::frontseat::protobuf::Speed* NodeStatus::unsafe_arena_release_speed() {
3064  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.NodeStatus.speed)
3065  _has_bits_[0] &= ~0x00000010u;
3066  ::goby::middleware::frontseat::protobuf::Speed* temp = speed_;
3067  speed_ = nullptr;
3068  return temp;
3069 }
3070 inline ::goby::middleware::frontseat::protobuf::Speed* NodeStatus::_internal_mutable_speed() {
3071  _has_bits_[0] |= 0x00000010u;
3072  if (speed_ == nullptr) {
3073  auto* p = CreateMaybeMessage<::goby::middleware::frontseat::protobuf::Speed>(GetArena());
3074  speed_ = p;
3075  }
3076  return speed_;
3077 }
3078 inline ::goby::middleware::frontseat::protobuf::Speed* NodeStatus::mutable_speed() {
3079  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.NodeStatus.speed)
3080  return _internal_mutable_speed();
3081 }
3082 inline void NodeStatus::set_allocated_speed(::goby::middleware::frontseat::protobuf::Speed* speed) {
3083  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3084  if (message_arena == nullptr) {
3085  delete speed_;
3086  }
3087  if (speed) {
3088  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3089  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(speed);
3090  if (message_arena != submessage_arena) {
3091  speed = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3092  message_arena, speed, submessage_arena);
3093  }
3094  _has_bits_[0] |= 0x00000010u;
3095  } else {
3096  _has_bits_[0] &= ~0x00000010u;
3097  }
3098  speed_ = speed;
3099  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.speed)
3100 }
3101 
3102 // optional .goby.middleware.frontseat.protobuf.Source source = 40;
3103 inline bool NodeStatus::_internal_has_source() const {
3104  bool value = (_has_bits_[0] & 0x00000020u) != 0;
3105  PROTOBUF_ASSUME(!value || source_ != nullptr);
3106  return value;
3107 }
3108 inline bool NodeStatus::has_source() const {
3109  return _internal_has_source();
3110 }
3111 inline void NodeStatus::clear_source() {
3112  if (source_ != nullptr) source_->Clear();
3113  _has_bits_[0] &= ~0x00000020u;
3114 }
3115 inline const ::goby::middleware::frontseat::protobuf::Source& NodeStatus::_internal_source() const {
3116  const ::goby::middleware::frontseat::protobuf::Source* p = source_;
3117  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::frontseat::protobuf::Source*>(
3119 }
3120 inline const ::goby::middleware::frontseat::protobuf::Source& NodeStatus::source() const {
3121  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.NodeStatus.source)
3122  return _internal_source();
3123 }
3124 inline void NodeStatus::unsafe_arena_set_allocated_source(
3125  ::goby::middleware::frontseat::protobuf::Source* source) {
3126  if (GetArena() == nullptr) {
3127  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(source_);
3128  }
3129  source_ = source;
3130  if (source) {
3131  _has_bits_[0] |= 0x00000020u;
3132  } else {
3133  _has_bits_[0] &= ~0x00000020u;
3134  }
3135  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.source)
3136 }
3137 inline ::goby::middleware::frontseat::protobuf::Source* NodeStatus::release_source() {
3138  auto temp = unsafe_arena_release_source();
3139  if (GetArena() != nullptr) {
3140  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3141  }
3142  return temp;
3143 }
3144 inline ::goby::middleware::frontseat::protobuf::Source* NodeStatus::unsafe_arena_release_source() {
3145  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.NodeStatus.source)
3146  _has_bits_[0] &= ~0x00000020u;
3147  ::goby::middleware::frontseat::protobuf::Source* temp = source_;
3148  source_ = nullptr;
3149  return temp;
3150 }
3151 inline ::goby::middleware::frontseat::protobuf::Source* NodeStatus::_internal_mutable_source() {
3152  _has_bits_[0] |= 0x00000020u;
3153  if (source_ == nullptr) {
3154  auto* p = CreateMaybeMessage<::goby::middleware::frontseat::protobuf::Source>(GetArena());
3155  source_ = p;
3156  }
3157  return source_;
3158 }
3159 inline ::goby::middleware::frontseat::protobuf::Source* NodeStatus::mutable_source() {
3160  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.NodeStatus.source)
3161  return _internal_mutable_source();
3162 }
3163 inline void NodeStatus::set_allocated_source(::goby::middleware::frontseat::protobuf::Source* source) {
3164  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3165  if (message_arena == nullptr) {
3166  delete source_;
3167  }
3168  if (source) {
3169  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3170  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(source);
3171  if (message_arena != submessage_arena) {
3172  source = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3173  message_arena, source, submessage_arena);
3174  }
3175  _has_bits_[0] |= 0x00000020u;
3176  } else {
3177  _has_bits_[0] &= ~0x00000020u;
3178  }
3179  source_ = source;
3180  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.NodeStatus.source)
3181 }
3182 
3183 // -------------------------------------------------------------------
3184 
3185 // DesiredCourse
3186 
3187 // required double time = 1 [(.dccl.field) = {
3188 inline bool DesiredCourse::_internal_has_time() const {
3189  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3190  return value;
3191 }
3192 inline bool DesiredCourse::has_time() const {
3193  return _internal_has_time();
3194 }
3195 inline void DesiredCourse::clear_time() {
3196  time_ = 0;
3197  _has_bits_[0] &= ~0x00000001u;
3198 }
3199 inline double DesiredCourse::_internal_time() const {
3200  return time_;
3201 }
3202 inline double DesiredCourse::time() const {
3203  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.time)
3204  return _internal_time();
3205 }
3206 inline void DesiredCourse::_internal_set_time(double value) {
3207  _has_bits_[0] |= 0x00000001u;
3208  time_ = value;
3209 }
3210 inline void DesiredCourse::set_time(double value) {
3211  _internal_set_time(value);
3212  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.time)
3213 }
3214 
3215 // optional double heading = 2 [default = 0, (.dccl.field) = {
3216 inline bool DesiredCourse::_internal_has_heading() const {
3217  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3218  return value;
3219 }
3220 inline bool DesiredCourse::has_heading() const {
3221  return _internal_has_heading();
3222 }
3223 inline void DesiredCourse::clear_heading() {
3224  heading_ = 0;
3225  _has_bits_[0] &= ~0x00000002u;
3226 }
3227 inline double DesiredCourse::_internal_heading() const {
3228  return heading_;
3229 }
3230 inline double DesiredCourse::heading() const {
3231  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.heading)
3232  return _internal_heading();
3233 }
3234 inline void DesiredCourse::_internal_set_heading(double value) {
3235  _has_bits_[0] |= 0x00000002u;
3236  heading_ = value;
3237 }
3238 inline void DesiredCourse::set_heading(double value) {
3239  _internal_set_heading(value);
3240  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.heading)
3241 }
3242 
3243 // optional double speed = 3 [default = 0, (.dccl.field) = {
3244 inline bool DesiredCourse::_internal_has_speed() const {
3245  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3246  return value;
3247 }
3248 inline bool DesiredCourse::has_speed() const {
3249  return _internal_has_speed();
3250 }
3251 inline void DesiredCourse::clear_speed() {
3252  speed_ = 0;
3253  _has_bits_[0] &= ~0x00000004u;
3254 }
3255 inline double DesiredCourse::_internal_speed() const {
3256  return speed_;
3257 }
3258 inline double DesiredCourse::speed() const {
3259  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.speed)
3260  return _internal_speed();
3261 }
3262 inline void DesiredCourse::_internal_set_speed(double value) {
3263  _has_bits_[0] |= 0x00000004u;
3264  speed_ = value;
3265 }
3266 inline void DesiredCourse::set_speed(double value) {
3267  _internal_set_speed(value);
3268  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.speed)
3269 }
3270 
3271 // optional double depth = 4 [default = 0, (.dccl.field) = {
3272 inline bool DesiredCourse::_internal_has_depth() const {
3273  bool value = (_has_bits_[0] & 0x00000008u) != 0;
3274  return value;
3275 }
3276 inline bool DesiredCourse::has_depth() const {
3277  return _internal_has_depth();
3278 }
3279 inline void DesiredCourse::clear_depth() {
3280  depth_ = 0;
3281  _has_bits_[0] &= ~0x00000008u;
3282 }
3283 inline double DesiredCourse::_internal_depth() const {
3284  return depth_;
3285 }
3286 inline double DesiredCourse::depth() const {
3287  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.depth)
3288  return _internal_depth();
3289 }
3290 inline void DesiredCourse::_internal_set_depth(double value) {
3291  _has_bits_[0] |= 0x00000008u;
3292  depth_ = value;
3293 }
3294 inline void DesiredCourse::set_depth(double value) {
3295  _internal_set_depth(value);
3296  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.depth)
3297 }
3298 
3299 // optional double pitch = 5 [default = 0, (.dccl.field) = {
3300 inline bool DesiredCourse::_internal_has_pitch() const {
3301  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3302  return value;
3303 }
3304 inline bool DesiredCourse::has_pitch() const {
3305  return _internal_has_pitch();
3306 }
3307 inline void DesiredCourse::clear_pitch() {
3308  pitch_ = 0;
3309  _has_bits_[0] &= ~0x00000010u;
3310 }
3311 inline double DesiredCourse::_internal_pitch() const {
3312  return pitch_;
3313 }
3314 inline double DesiredCourse::pitch() const {
3315  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.pitch)
3316  return _internal_pitch();
3317 }
3318 inline void DesiredCourse::_internal_set_pitch(double value) {
3319  _has_bits_[0] |= 0x00000010u;
3320  pitch_ = value;
3321 }
3322 inline void DesiredCourse::set_pitch(double value) {
3323  _internal_set_pitch(value);
3324  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.pitch)
3325 }
3326 
3327 // optional double roll = 6 [default = 0, (.dccl.field) = {
3328 inline bool DesiredCourse::_internal_has_roll() const {
3329  bool value = (_has_bits_[0] & 0x00000020u) != 0;
3330  return value;
3331 }
3332 inline bool DesiredCourse::has_roll() const {
3333  return _internal_has_roll();
3334 }
3335 inline void DesiredCourse::clear_roll() {
3336  roll_ = 0;
3337  _has_bits_[0] &= ~0x00000020u;
3338 }
3339 inline double DesiredCourse::_internal_roll() const {
3340  return roll_;
3341 }
3342 inline double DesiredCourse::roll() const {
3343  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.roll)
3344  return _internal_roll();
3345 }
3346 inline void DesiredCourse::_internal_set_roll(double value) {
3347  _has_bits_[0] |= 0x00000020u;
3348  roll_ = value;
3349 }
3350 inline void DesiredCourse::set_roll(double value) {
3351  _internal_set_roll(value);
3352  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.roll)
3353 }
3354 
3355 // optional double z_rate = 7 [default = 0, (.dccl.field) = {
3356 inline bool DesiredCourse::_internal_has_z_rate() const {
3357  bool value = (_has_bits_[0] & 0x00000040u) != 0;
3358  return value;
3359 }
3360 inline bool DesiredCourse::has_z_rate() const {
3361  return _internal_has_z_rate();
3362 }
3363 inline void DesiredCourse::clear_z_rate() {
3364  z_rate_ = 0;
3365  _has_bits_[0] &= ~0x00000040u;
3366 }
3367 inline double DesiredCourse::_internal_z_rate() const {
3368  return z_rate_;
3369 }
3370 inline double DesiredCourse::z_rate() const {
3371  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.z_rate)
3372  return _internal_z_rate();
3373 }
3374 inline void DesiredCourse::_internal_set_z_rate(double value) {
3375  _has_bits_[0] |= 0x00000040u;
3376  z_rate_ = value;
3377 }
3378 inline void DesiredCourse::set_z_rate(double value) {
3379  _internal_set_z_rate(value);
3380  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.z_rate)
3381 }
3382 
3383 // optional double altitude = 8 [default = 10, (.dccl.field) = {
3384 inline bool DesiredCourse::_internal_has_altitude() const {
3385  bool value = (_has_bits_[0] & 0x00000080u) != 0;
3386  return value;
3387 }
3388 inline bool DesiredCourse::has_altitude() const {
3389  return _internal_has_altitude();
3390 }
3391 inline void DesiredCourse::clear_altitude() {
3392  altitude_ = 10;
3393  _has_bits_[0] &= ~0x00000080u;
3394 }
3395 inline double DesiredCourse::_internal_altitude() const {
3396  return altitude_;
3397 }
3398 inline double DesiredCourse::altitude() const {
3399  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DesiredCourse.altitude)
3400  return _internal_altitude();
3401 }
3402 inline void DesiredCourse::_internal_set_altitude(double value) {
3403  _has_bits_[0] |= 0x00000080u;
3404  altitude_ = value;
3405 }
3406 inline void DesiredCourse::set_altitude(double value) {
3407  _internal_set_altitude(value);
3408  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.DesiredCourse.altitude)
3409 }
3410 
3411 // -------------------------------------------------------------------
3412 
3413 // Source
3414 
3415 // optional .goby.middleware.frontseat.protobuf.Source.Sensor position = 1;
3416 inline bool Source::_internal_has_position() const {
3417  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3418  return value;
3419 }
3420 inline bool Source::has_position() const {
3421  return _internal_has_position();
3422 }
3423 inline void Source::clear_position() {
3424  position_ = 1;
3425  _has_bits_[0] &= ~0x00000001u;
3426 }
3427 inline ::goby::middleware::frontseat::protobuf::Source_Sensor Source::_internal_position() const {
3428  return static_cast< ::goby::middleware::frontseat::protobuf::Source_Sensor >(position_);
3429 }
3431  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.Source.position)
3432  return _internal_position();
3433 }
3434 inline void Source::_internal_set_position(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3436  _has_bits_[0] |= 0x00000001u;
3437  position_ = value;
3438 }
3439 inline void Source::set_position(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3440  _internal_set_position(value);
3441  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.Source.position)
3442 }
3443 
3444 // optional .goby.middleware.frontseat.protobuf.Source.Sensor depth = 2;
3445 inline bool Source::_internal_has_depth() const {
3446  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3447  return value;
3448 }
3449 inline bool Source::has_depth() const {
3450  return _internal_has_depth();
3451 }
3452 inline void Source::clear_depth() {
3453  depth_ = 1;
3454  _has_bits_[0] &= ~0x00000002u;
3455 }
3456 inline ::goby::middleware::frontseat::protobuf::Source_Sensor Source::_internal_depth() const {
3457  return static_cast< ::goby::middleware::frontseat::protobuf::Source_Sensor >(depth_);
3458 }
3460  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.Source.depth)
3461  return _internal_depth();
3462 }
3463 inline void Source::_internal_set_depth(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3465  _has_bits_[0] |= 0x00000002u;
3466  depth_ = value;
3467 }
3468 inline void Source::set_depth(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3469  _internal_set_depth(value);
3470  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.Source.depth)
3471 }
3472 
3473 // optional .goby.middleware.frontseat.protobuf.Source.Sensor speed = 3;
3474 inline bool Source::_internal_has_speed() const {
3475  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3476  return value;
3477 }
3478 inline bool Source::has_speed() const {
3479  return _internal_has_speed();
3480 }
3481 inline void Source::clear_speed() {
3482  speed_ = 1;
3483  _has_bits_[0] &= ~0x00000004u;
3484 }
3485 inline ::goby::middleware::frontseat::protobuf::Source_Sensor Source::_internal_speed() const {
3486  return static_cast< ::goby::middleware::frontseat::protobuf::Source_Sensor >(speed_);
3487 }
3489  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.Source.speed)
3490  return _internal_speed();
3491 }
3492 inline void Source::_internal_set_speed(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3494  _has_bits_[0] |= 0x00000004u;
3495  speed_ = value;
3496 }
3497 inline void Source::set_speed(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3498  _internal_set_speed(value);
3499  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.Source.speed)
3500 }
3501 
3502 // optional .goby.middleware.frontseat.protobuf.Source.Sensor heading = 4;
3503 inline bool Source::_internal_has_heading() const {
3504  bool value = (_has_bits_[0] & 0x00000008u) != 0;
3505  return value;
3506 }
3507 inline bool Source::has_heading() const {
3508  return _internal_has_heading();
3509 }
3510 inline void Source::clear_heading() {
3511  heading_ = 1;
3512  _has_bits_[0] &= ~0x00000008u;
3513 }
3514 inline ::goby::middleware::frontseat::protobuf::Source_Sensor Source::_internal_heading() const {
3515  return static_cast< ::goby::middleware::frontseat::protobuf::Source_Sensor >(heading_);
3516 }
3518  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.Source.heading)
3519  return _internal_heading();
3520 }
3521 inline void Source::_internal_set_heading(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3523  _has_bits_[0] |= 0x00000008u;
3524  heading_ = value;
3525 }
3526 inline void Source::set_heading(::goby::middleware::frontseat::protobuf::Source_Sensor value) {
3527  _internal_set_heading(value);
3528  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.Source.heading)
3529 }
3530 
3531 // -------------------------------------------------------------------
3532 
3533 // CartesianCoordinate
3534 
3535 // required double x = 1 [(.dccl.field) = {
3536 inline bool CartesianCoordinate::_internal_has_x() const {
3537  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3538  return value;
3539 }
3540 inline bool CartesianCoordinate::has_x() const {
3541  return _internal_has_x();
3542 }
3543 inline void CartesianCoordinate::clear_x() {
3544  x_ = 0;
3545  _has_bits_[0] &= ~0x00000001u;
3546 }
3547 inline double CartesianCoordinate::_internal_x() const {
3548  return x_;
3549 }
3550 inline double CartesianCoordinate::x() const {
3551  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CartesianCoordinate.x)
3552  return _internal_x();
3553 }
3554 inline void CartesianCoordinate::_internal_set_x(double value) {
3555  _has_bits_[0] |= 0x00000001u;
3556  x_ = value;
3557 }
3558 inline void CartesianCoordinate::set_x(double value) {
3559  _internal_set_x(value);
3560  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CartesianCoordinate.x)
3561 }
3562 
3563 // required double y = 2 [(.dccl.field) = {
3564 inline bool CartesianCoordinate::_internal_has_y() const {
3565  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3566  return value;
3567 }
3568 inline bool CartesianCoordinate::has_y() const {
3569  return _internal_has_y();
3570 }
3571 inline void CartesianCoordinate::clear_y() {
3572  y_ = 0;
3573  _has_bits_[0] &= ~0x00000002u;
3574 }
3575 inline double CartesianCoordinate::_internal_y() const {
3576  return y_;
3577 }
3578 inline double CartesianCoordinate::y() const {
3579  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CartesianCoordinate.y)
3580  return _internal_y();
3581 }
3582 inline void CartesianCoordinate::_internal_set_y(double value) {
3583  _has_bits_[0] |= 0x00000002u;
3584  y_ = value;
3585 }
3586 inline void CartesianCoordinate::set_y(double value) {
3587  _internal_set_y(value);
3588  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CartesianCoordinate.y)
3589 }
3590 
3591 // optional double z = 3 [default = 0, (.dccl.field) = {
3592 inline bool CartesianCoordinate::_internal_has_z() const {
3593  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3594  return value;
3595 }
3596 inline bool CartesianCoordinate::has_z() const {
3597  return _internal_has_z();
3598 }
3599 inline void CartesianCoordinate::clear_z() {
3600  z_ = 0;
3601  _has_bits_[0] &= ~0x00000004u;
3602 }
3603 inline double CartesianCoordinate::_internal_z() const {
3604  return z_;
3605 }
3606 inline double CartesianCoordinate::z() const {
3607  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CartesianCoordinate.z)
3608  return _internal_z();
3609 }
3610 inline void CartesianCoordinate::_internal_set_z(double value) {
3611  _has_bits_[0] |= 0x00000004u;
3612  z_ = value;
3613 }
3614 inline void CartesianCoordinate::set_z(double value) {
3615  _internal_set_z(value);
3616  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CartesianCoordinate.z)
3617 }
3618 
3619 // -------------------------------------------------------------------
3620 
3621 // EulerAngles
3622 
3623 // optional double roll = 1 [(.dccl.field) = {
3624 inline bool EulerAngles::_internal_has_roll() const {
3625  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3626  return value;
3627 }
3628 inline bool EulerAngles::has_roll() const {
3629  return _internal_has_roll();
3630 }
3631 inline void EulerAngles::clear_roll() {
3632  roll_ = 0;
3633  _has_bits_[0] &= ~0x00000001u;
3634 }
3635 inline double EulerAngles::_internal_roll() const {
3636  return roll_;
3637 }
3638 inline double EulerAngles::roll() const {
3639  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.roll)
3640  return _internal_roll();
3641 }
3642 inline void EulerAngles::_internal_set_roll(double value) {
3643  _has_bits_[0] |= 0x00000001u;
3644  roll_ = value;
3645 }
3646 inline void EulerAngles::set_roll(double value) {
3647  _internal_set_roll(value);
3648  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.roll)
3649 }
3650 
3651 // optional double pitch = 2 [(.dccl.field) = {
3652 inline bool EulerAngles::_internal_has_pitch() const {
3653  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3654  return value;
3655 }
3656 inline bool EulerAngles::has_pitch() const {
3657  return _internal_has_pitch();
3658 }
3659 inline void EulerAngles::clear_pitch() {
3660  pitch_ = 0;
3661  _has_bits_[0] &= ~0x00000002u;
3662 }
3663 inline double EulerAngles::_internal_pitch() const {
3664  return pitch_;
3665 }
3666 inline double EulerAngles::pitch() const {
3667  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.pitch)
3668  return _internal_pitch();
3669 }
3670 inline void EulerAngles::_internal_set_pitch(double value) {
3671  _has_bits_[0] |= 0x00000002u;
3672  pitch_ = value;
3673 }
3674 inline void EulerAngles::set_pitch(double value) {
3675  _internal_set_pitch(value);
3676  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.pitch)
3677 }
3678 
3679 // optional double heading = 3 [(.dccl.field) = {
3680 inline bool EulerAngles::_internal_has_heading() const {
3681  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3682  return value;
3683 }
3684 inline bool EulerAngles::has_heading() const {
3685  return _internal_has_heading();
3686 }
3687 inline void EulerAngles::clear_heading() {
3688  heading_ = 0;
3689  _has_bits_[0] &= ~0x00000004u;
3690 }
3691 inline double EulerAngles::_internal_heading() const {
3692  return heading_;
3693 }
3694 inline double EulerAngles::heading() const {
3695  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.heading)
3696  return _internal_heading();
3697 }
3698 inline void EulerAngles::_internal_set_heading(double value) {
3699  _has_bits_[0] |= 0x00000004u;
3700  heading_ = value;
3701 }
3702 inline void EulerAngles::set_heading(double value) {
3703  _internal_set_heading(value);
3704  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.heading)
3705 }
3706 
3707 // optional double course_over_ground = 4 [(.dccl.field) = {
3708 inline bool EulerAngles::_internal_has_course_over_ground() const {
3709  bool value = (_has_bits_[0] & 0x00000008u) != 0;
3710  return value;
3711 }
3712 inline bool EulerAngles::has_course_over_ground() const {
3713  return _internal_has_course_over_ground();
3714 }
3715 inline void EulerAngles::clear_course_over_ground() {
3716  course_over_ground_ = 0;
3717  _has_bits_[0] &= ~0x00000008u;
3718 }
3719 inline double EulerAngles::_internal_course_over_ground() const {
3720  return course_over_ground_;
3721 }
3722 inline double EulerAngles::course_over_ground() const {
3723  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.course_over_ground)
3724  return _internal_course_over_ground();
3725 }
3726 inline void EulerAngles::_internal_set_course_over_ground(double value) {
3727  _has_bits_[0] |= 0x00000008u;
3728  course_over_ground_ = value;
3729 }
3730 inline void EulerAngles::set_course_over_ground(double value) {
3731  _internal_set_course_over_ground(value);
3732  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.course_over_ground)
3733 }
3734 
3735 // optional double roll_rate = 10 [(.dccl.field) = {
3736 inline bool EulerAngles::_internal_has_roll_rate() const {
3737  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3738  return value;
3739 }
3740 inline bool EulerAngles::has_roll_rate() const {
3741  return _internal_has_roll_rate();
3742 }
3743 inline void EulerAngles::clear_roll_rate() {
3744  roll_rate_ = 0;
3745  _has_bits_[0] &= ~0x00000010u;
3746 }
3747 inline double EulerAngles::_internal_roll_rate() const {
3748  return roll_rate_;
3749 }
3750 inline double EulerAngles::roll_rate() const {
3751  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.roll_rate)
3752  return _internal_roll_rate();
3753 }
3754 inline void EulerAngles::_internal_set_roll_rate(double value) {
3755  _has_bits_[0] |= 0x00000010u;
3756  roll_rate_ = value;
3757 }
3758 inline void EulerAngles::set_roll_rate(double value) {
3759  _internal_set_roll_rate(value);
3760  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.roll_rate)
3761 }
3762 
3763 // optional double pitch_rate = 11 [(.dccl.field) = {
3764 inline bool EulerAngles::_internal_has_pitch_rate() const {
3765  bool value = (_has_bits_[0] & 0x00000020u) != 0;
3766  return value;
3767 }
3768 inline bool EulerAngles::has_pitch_rate() const {
3769  return _internal_has_pitch_rate();
3770 }
3771 inline void EulerAngles::clear_pitch_rate() {
3772  pitch_rate_ = 0;
3773  _has_bits_[0] &= ~0x00000020u;
3774 }
3775 inline double EulerAngles::_internal_pitch_rate() const {
3776  return pitch_rate_;
3777 }
3778 inline double EulerAngles::pitch_rate() const {
3779  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.pitch_rate)
3780  return _internal_pitch_rate();
3781 }
3782 inline void EulerAngles::_internal_set_pitch_rate(double value) {
3783  _has_bits_[0] |= 0x00000020u;
3784  pitch_rate_ = value;
3785 }
3786 inline void EulerAngles::set_pitch_rate(double value) {
3787  _internal_set_pitch_rate(value);
3788  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.pitch_rate)
3789 }
3790 
3791 // optional double heading_rate = 12 [(.dccl.field) = {
3792 inline bool EulerAngles::_internal_has_heading_rate() const {
3793  bool value = (_has_bits_[0] & 0x00000040u) != 0;
3794  return value;
3795 }
3796 inline bool EulerAngles::has_heading_rate() const {
3797  return _internal_has_heading_rate();
3798 }
3799 inline void EulerAngles::clear_heading_rate() {
3800  heading_rate_ = 0;
3801  _has_bits_[0] &= ~0x00000040u;
3802 }
3803 inline double EulerAngles::_internal_heading_rate() const {
3804  return heading_rate_;
3805 }
3806 inline double EulerAngles::heading_rate() const {
3807  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.EulerAngles.heading_rate)
3808  return _internal_heading_rate();
3809 }
3810 inline void EulerAngles::_internal_set_heading_rate(double value) {
3811  _has_bits_[0] |= 0x00000040u;
3812  heading_rate_ = value;
3813 }
3814 inline void EulerAngles::set_heading_rate(double value) {
3815  _internal_set_heading_rate(value);
3816  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.EulerAngles.heading_rate)
3817 }
3818 
3819 // -------------------------------------------------------------------
3820 
3821 // Speed
3822 
3823 // required double over_ground = 1 [(.dccl.field) = {
3824 inline bool Speed::_internal_has_over_ground() const {
3825  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3826  return value;
3827 }
3828 inline bool Speed::has_over_ground() const {
3829  return _internal_has_over_ground();
3830 }
3831 inline void Speed::clear_over_ground() {
3832  over_ground_ = 0;
3833  _has_bits_[0] &= ~0x00000001u;
3834 }
3835 inline double Speed::_internal_over_ground() const {
3836  return over_ground_;
3837 }
3838 inline double Speed::over_ground() const {
3839  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.Speed.over_ground)
3840  return _internal_over_ground();
3841 }
3842 inline void Speed::_internal_set_over_ground(double value) {
3843  _has_bits_[0] |= 0x00000001u;
3844  over_ground_ = value;
3845 }
3846 inline void Speed::set_over_ground(double value) {
3847  _internal_set_over_ground(value);
3848  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.Speed.over_ground)
3849 }
3850 
3851 // optional double over_water = 2 [(.dccl.field) = {
3852 inline bool Speed::_internal_has_over_water() const {
3853  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3854  return value;
3855 }
3856 inline bool Speed::has_over_water() const {
3857  return _internal_has_over_water();
3858 }
3859 inline void Speed::clear_over_water() {
3860  over_water_ = 0;
3861  _has_bits_[0] &= ~0x00000002u;
3862 }
3863 inline double Speed::_internal_over_water() const {
3864  return over_water_;
3865 }
3866 inline double Speed::over_water() const {
3867  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.Speed.over_water)
3868  return _internal_over_water();
3869 }
3870 inline void Speed::_internal_set_over_water(double value) {
3871  _has_bits_[0] |= 0x00000002u;
3872  over_water_ = value;
3873 }
3874 inline void Speed::set_over_water(double value) {
3875  _internal_set_over_water(value);
3876  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.Speed.over_water)
3877 }
3878 
3879 // -------------------------------------------------------------------
3880 
3881 // CTDSample
3882 
3883 // required double time = 2 [(.dccl.field) = {
3884 inline bool CTDSample::_internal_has_time() const {
3885  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3886  return value;
3887 }
3888 inline bool CTDSample::has_time() const {
3889  return _internal_has_time();
3890 }
3891 inline void CTDSample::clear_time() {
3892  time_ = 0;
3893  _has_bits_[0] &= ~0x00000002u;
3894 }
3895 inline double CTDSample::_internal_time() const {
3896  return time_;
3897 }
3898 inline double CTDSample::time() const {
3899  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.time)
3900  return _internal_time();
3901 }
3902 inline void CTDSample::_internal_set_time(double value) {
3903  _has_bits_[0] |= 0x00000002u;
3904  time_ = value;
3905 }
3906 inline void CTDSample::set_time(double value) {
3907  _internal_set_time(value);
3908  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.time)
3909 }
3910 
3911 // optional double conductivity = 10 [(.dccl.field) = {
3912 inline bool CTDSample::_internal_has_conductivity() const {
3913  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3914  return value;
3915 }
3916 inline bool CTDSample::has_conductivity() const {
3917  return _internal_has_conductivity();
3918 }
3919 inline void CTDSample::clear_conductivity() {
3920  conductivity_ = 0;
3921  _has_bits_[0] &= ~0x00000004u;
3922 }
3923 inline double CTDSample::_internal_conductivity() const {
3924  return conductivity_;
3925 }
3926 inline double CTDSample::conductivity() const {
3927  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.conductivity)
3928  return _internal_conductivity();
3929 }
3930 inline void CTDSample::_internal_set_conductivity(double value) {
3931  _has_bits_[0] |= 0x00000004u;
3932  conductivity_ = value;
3933 }
3934 inline void CTDSample::set_conductivity(double value) {
3935  _internal_set_conductivity(value);
3936  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.conductivity)
3937 }
3938 
3939 // required double temperature = 11 [(.dccl.field) = {
3940 inline bool CTDSample::_internal_has_temperature() const {
3941  bool value = (_has_bits_[0] & 0x00000008u) != 0;
3942  return value;
3943 }
3944 inline bool CTDSample::has_temperature() const {
3945  return _internal_has_temperature();
3946 }
3947 inline void CTDSample::clear_temperature() {
3948  temperature_ = 0;
3949  _has_bits_[0] &= ~0x00000008u;
3950 }
3951 inline double CTDSample::_internal_temperature() const {
3952  return temperature_;
3953 }
3954 inline double CTDSample::temperature() const {
3955  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.temperature)
3956  return _internal_temperature();
3957 }
3958 inline void CTDSample::_internal_set_temperature(double value) {
3959  _has_bits_[0] |= 0x00000008u;
3960  temperature_ = value;
3961 }
3962 inline void CTDSample::set_temperature(double value) {
3963  _internal_set_temperature(value);
3964  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.temperature)
3965 }
3966 
3967 // required double pressure = 12 [(.dccl.field) = {
3968 inline bool CTDSample::_internal_has_pressure() const {
3969  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3970  return value;
3971 }
3972 inline bool CTDSample::has_pressure() const {
3973  return _internal_has_pressure();
3974 }
3975 inline void CTDSample::clear_pressure() {
3976  pressure_ = 0;
3977  _has_bits_[0] &= ~0x00000010u;
3978 }
3979 inline double CTDSample::_internal_pressure() const {
3980  return pressure_;
3981 }
3982 inline double CTDSample::pressure() const {
3983  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.pressure)
3984  return _internal_pressure();
3985 }
3986 inline void CTDSample::_internal_set_pressure(double value) {
3987  _has_bits_[0] |= 0x00000010u;
3988  pressure_ = value;
3989 }
3990 inline void CTDSample::set_pressure(double value) {
3991  _internal_set_pressure(value);
3992  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.pressure)
3993 }
3994 
3995 // required double salinity = 20 [(.dccl.field) = {
3996 inline bool CTDSample::_internal_has_salinity() const {
3997  bool value = (_has_bits_[0] & 0x00000040u) != 0;
3998  return value;
3999 }
4000 inline bool CTDSample::has_salinity() const {
4001  return _internal_has_salinity();
4002 }
4003 inline void CTDSample::clear_salinity() {
4004  salinity_ = 0;
4005  _has_bits_[0] &= ~0x00000040u;
4006 }
4007 inline double CTDSample::_internal_salinity() const {
4008  return salinity_;
4009 }
4010 inline double CTDSample::salinity() const {
4011  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.salinity)
4012  return _internal_salinity();
4013 }
4014 inline void CTDSample::_internal_set_salinity(double value) {
4015  _has_bits_[0] |= 0x00000040u;
4016  salinity_ = value;
4017 }
4018 inline void CTDSample::set_salinity(double value) {
4019  _internal_set_salinity(value);
4020  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.salinity)
4021 }
4022 
4023 // required double sound_speed = 21 [(.dccl.field) = {
4024 inline bool CTDSample::_internal_has_sound_speed() const {
4025  bool value = (_has_bits_[0] & 0x00000080u) != 0;
4026  return value;
4027 }
4028 inline bool CTDSample::has_sound_speed() const {
4029  return _internal_has_sound_speed();
4030 }
4031 inline void CTDSample::clear_sound_speed() {
4032  sound_speed_ = 0;
4033  _has_bits_[0] &= ~0x00000080u;
4034 }
4035 inline double CTDSample::_internal_sound_speed() const {
4036  return sound_speed_;
4037 }
4038 inline double CTDSample::sound_speed() const {
4039  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.sound_speed)
4040  return _internal_sound_speed();
4041 }
4042 inline void CTDSample::_internal_set_sound_speed(double value) {
4043  _has_bits_[0] |= 0x00000080u;
4044  sound_speed_ = value;
4045 }
4046 inline void CTDSample::set_sound_speed(double value) {
4047  _internal_set_sound_speed(value);
4048  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.sound_speed)
4049 }
4050 
4051 // required double density = 22 [(.dccl.field) = {
4052 inline bool CTDSample::_internal_has_density() const {
4053  bool value = (_has_bits_[0] & 0x00000100u) != 0;
4054  return value;
4055 }
4056 inline bool CTDSample::has_density() const {
4057  return _internal_has_density();
4058 }
4059 inline void CTDSample::clear_density() {
4060  density_ = 0;
4061  _has_bits_[0] &= ~0x00000100u;
4062 }
4063 inline double CTDSample::_internal_density() const {
4064  return density_;
4065 }
4066 inline double CTDSample::density() const {
4067  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.density)
4068  return _internal_density();
4069 }
4070 inline void CTDSample::_internal_set_density(double value) {
4071  _has_bits_[0] |= 0x00000100u;
4072  density_ = value;
4073 }
4074 inline void CTDSample::set_density(double value) {
4075  _internal_set_density(value);
4076  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.density)
4077 }
4078 
4079 // required .goby.middleware.protobuf.LatLonPoint global_fix = 23;
4080 inline bool CTDSample::_internal_has_global_fix() const {
4081  bool value = (_has_bits_[0] & 0x00000001u) != 0;
4082  PROTOBUF_ASSUME(!value || global_fix_ != nullptr);
4083  return value;
4084 }
4085 inline bool CTDSample::has_global_fix() const {
4086  return _internal_has_global_fix();
4087 }
4088 inline const ::goby::middleware::protobuf::LatLonPoint& CTDSample::_internal_global_fix() const {
4089  const ::goby::middleware::protobuf::LatLonPoint* p = global_fix_;
4090  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::protobuf::LatLonPoint*>(
4092 }
4093 inline const ::goby::middleware::protobuf::LatLonPoint& CTDSample::global_fix() const {
4094  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.global_fix)
4095  return _internal_global_fix();
4096 }
4097 inline void CTDSample::unsafe_arena_set_allocated_global_fix(
4098  ::goby::middleware::protobuf::LatLonPoint* global_fix) {
4099  if (GetArena() == nullptr) {
4100  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(global_fix_);
4101  }
4102  global_fix_ = global_fix;
4103  if (global_fix) {
4104  _has_bits_[0] |= 0x00000001u;
4105  } else {
4106  _has_bits_[0] &= ~0x00000001u;
4107  }
4108  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.CTDSample.global_fix)
4109 }
4110 inline ::goby::middleware::protobuf::LatLonPoint* CTDSample::release_global_fix() {
4111  auto temp = unsafe_arena_release_global_fix();
4112  if (GetArena() != nullptr) {
4113  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
4114  }
4115  return temp;
4116 }
4117 inline ::goby::middleware::protobuf::LatLonPoint* CTDSample::unsafe_arena_release_global_fix() {
4118  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.CTDSample.global_fix)
4119  _has_bits_[0] &= ~0x00000001u;
4120  ::goby::middleware::protobuf::LatLonPoint* temp = global_fix_;
4121  global_fix_ = nullptr;
4122  return temp;
4123 }
4124 inline ::goby::middleware::protobuf::LatLonPoint* CTDSample::_internal_mutable_global_fix() {
4125  _has_bits_[0] |= 0x00000001u;
4126  if (global_fix_ == nullptr) {
4127  auto* p = CreateMaybeMessage<::goby::middleware::protobuf::LatLonPoint>(GetArena());
4128  global_fix_ = p;
4129  }
4130  return global_fix_;
4131 }
4132 inline ::goby::middleware::protobuf::LatLonPoint* CTDSample::mutable_global_fix() {
4133  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.CTDSample.global_fix)
4134  return _internal_mutable_global_fix();
4135 }
4136 inline void CTDSample::set_allocated_global_fix(::goby::middleware::protobuf::LatLonPoint* global_fix) {
4137  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
4138  if (message_arena == nullptr) {
4139  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(global_fix_);
4140  }
4141  if (global_fix) {
4142  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
4143  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(global_fix)->GetArena();
4144  if (message_arena != submessage_arena) {
4145  global_fix = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
4146  message_arena, global_fix, submessage_arena);
4147  }
4148  _has_bits_[0] |= 0x00000001u;
4149  } else {
4150  _has_bits_[0] &= ~0x00000001u;
4151  }
4152  global_fix_ = global_fix;
4153  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.CTDSample.global_fix)
4154 }
4155 
4156 // optional .goby.middleware.frontseat.protobuf.CTDSample.SalinityAlgorithm salinity_algorithm = 30 [default = SAL_ALGORITHM_UNKNOWN];
4157 inline bool CTDSample::_internal_has_salinity_algorithm() const {
4158  bool value = (_has_bits_[0] & 0x00000200u) != 0;
4159  return value;
4160 }
4161 inline bool CTDSample::has_salinity_algorithm() const {
4162  return _internal_has_salinity_algorithm();
4163 }
4164 inline void CTDSample::clear_salinity_algorithm() {
4165  salinity_algorithm_ = 0;
4166  _has_bits_[0] &= ~0x00000200u;
4167 }
4168 inline ::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm CTDSample::_internal_salinity_algorithm() const {
4169  return static_cast< ::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm >(salinity_algorithm_);
4170 }
4172  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.salinity_algorithm)
4173  return _internal_salinity_algorithm();
4174 }
4175 inline void CTDSample::_internal_set_salinity_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm value) {
4177  _has_bits_[0] |= 0x00000200u;
4178  salinity_algorithm_ = value;
4179 }
4180 inline void CTDSample::set_salinity_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm value) {
4181  _internal_set_salinity_algorithm(value);
4182  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.salinity_algorithm)
4183 }
4184 
4185 // optional .goby.middleware.frontseat.protobuf.CTDSample.SoundSpeedAlgorithm sound_speed_algorithm = 31 [default = SS_ALGORITHM_UNKNOWN];
4186 inline bool CTDSample::_internal_has_sound_speed_algorithm() const {
4187  bool value = (_has_bits_[0] & 0x00000400u) != 0;
4188  return value;
4189 }
4190 inline bool CTDSample::has_sound_speed_algorithm() const {
4191  return _internal_has_sound_speed_algorithm();
4192 }
4193 inline void CTDSample::clear_sound_speed_algorithm() {
4194  sound_speed_algorithm_ = 0;
4195  _has_bits_[0] &= ~0x00000400u;
4196 }
4197 inline ::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm CTDSample::_internal_sound_speed_algorithm() const {
4198  return static_cast< ::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm >(sound_speed_algorithm_);
4199 }
4201  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.sound_speed_algorithm)
4202  return _internal_sound_speed_algorithm();
4203 }
4204 inline void CTDSample::_internal_set_sound_speed_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm value) {
4206  _has_bits_[0] |= 0x00000400u;
4207  sound_speed_algorithm_ = value;
4208 }
4209 inline void CTDSample::set_sound_speed_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm value) {
4210  _internal_set_sound_speed_algorithm(value);
4211  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.sound_speed_algorithm)
4212 }
4213 
4214 // optional .goby.middleware.frontseat.protobuf.CTDSample.DensityAlgorithm density_algorithm = 32 [default = DENSITY_ALGORITHM_UNKNOWN];
4215 inline bool CTDSample::_internal_has_density_algorithm() const {
4216  bool value = (_has_bits_[0] & 0x00000020u) != 0;
4217  return value;
4218 }
4219 inline bool CTDSample::has_density_algorithm() const {
4220  return _internal_has_density_algorithm();
4221 }
4222 inline void CTDSample::clear_density_algorithm() {
4223  density_algorithm_ = 0;
4224  _has_bits_[0] &= ~0x00000020u;
4225 }
4226 inline ::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm CTDSample::_internal_density_algorithm() const {
4227  return static_cast< ::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm >(density_algorithm_);
4228 }
4230  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.CTDSample.density_algorithm)
4231  return _internal_density_algorithm();
4232 }
4233 inline void CTDSample::_internal_set_density_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm value) {
4235  _has_bits_[0] |= 0x00000020u;
4236  density_algorithm_ = value;
4237 }
4238 inline void CTDSample::set_density_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm value) {
4239  _internal_set_density_algorithm(value);
4240  // @@protoc_insertion_point(field_set:goby.middleware.frontseat.protobuf.CTDSample.density_algorithm)
4241 }
4242 
4243 // -------------------------------------------------------------------
4244 
4245 // DatumUpdate
4246 
4247 // required .goby.middleware.protobuf.LatLonPoint datum = 1;
4248 inline bool DatumUpdate::_internal_has_datum() const {
4249  bool value = (_has_bits_[0] & 0x00000001u) != 0;
4250  PROTOBUF_ASSUME(!value || datum_ != nullptr);
4251  return value;
4252 }
4253 inline bool DatumUpdate::has_datum() const {
4254  return _internal_has_datum();
4255 }
4256 inline const ::goby::middleware::protobuf::LatLonPoint& DatumUpdate::_internal_datum() const {
4257  const ::goby::middleware::protobuf::LatLonPoint* p = datum_;
4258  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::protobuf::LatLonPoint*>(
4260 }
4261 inline const ::goby::middleware::protobuf::LatLonPoint& DatumUpdate::datum() const {
4262  // @@protoc_insertion_point(field_get:goby.middleware.frontseat.protobuf.DatumUpdate.datum)
4263  return _internal_datum();
4264 }
4265 inline void DatumUpdate::unsafe_arena_set_allocated_datum(
4266  ::goby::middleware::protobuf::LatLonPoint* datum) {
4267  if (GetArena() == nullptr) {
4268  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(datum_);
4269  }
4270  datum_ = datum;
4271  if (datum) {
4272  _has_bits_[0] |= 0x00000001u;
4273  } else {
4274  _has_bits_[0] &= ~0x00000001u;
4275  }
4276  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:goby.middleware.frontseat.protobuf.DatumUpdate.datum)
4277 }
4278 inline ::goby::middleware::protobuf::LatLonPoint* DatumUpdate::release_datum() {
4279  auto temp = unsafe_arena_release_datum();
4280  if (GetArena() != nullptr) {
4281  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
4282  }
4283  return temp;
4284 }
4285 inline ::goby::middleware::protobuf::LatLonPoint* DatumUpdate::unsafe_arena_release_datum() {
4286  // @@protoc_insertion_point(field_release:goby.middleware.frontseat.protobuf.DatumUpdate.datum)
4287  _has_bits_[0] &= ~0x00000001u;
4288  ::goby::middleware::protobuf::LatLonPoint* temp = datum_;
4289  datum_ = nullptr;
4290  return temp;
4291 }
4292 inline ::goby::middleware::protobuf::LatLonPoint* DatumUpdate::_internal_mutable_datum() {
4293  _has_bits_[0] |= 0x00000001u;
4294  if (datum_ == nullptr) {
4295  auto* p = CreateMaybeMessage<::goby::middleware::protobuf::LatLonPoint>(GetArena());
4296  datum_ = p;
4297  }
4298  return datum_;
4299 }
4300 inline ::goby::middleware::protobuf::LatLonPoint* DatumUpdate::mutable_datum() {
4301  // @@protoc_insertion_point(field_mutable:goby.middleware.frontseat.protobuf.DatumUpdate.datum)
4302  return _internal_mutable_datum();
4303 }
4304 inline void DatumUpdate::set_allocated_datum(::goby::middleware::protobuf::LatLonPoint* datum) {
4305  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
4306  if (message_arena == nullptr) {
4307  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(datum_);
4308  }
4309  if (datum) {
4310  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
4311  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(datum)->GetArena();
4312  if (message_arena != submessage_arena) {
4313  datum = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
4314  message_arena, datum, submessage_arena);
4315  }
4316  _has_bits_[0] |= 0x00000001u;
4317  } else {
4318  _has_bits_[0] &= ~0x00000001u;
4319  }
4320  datum_ = datum;
4321  // @@protoc_insertion_point(field_set_allocated:goby.middleware.frontseat.protobuf.DatumUpdate.datum)
4322 }
4323 
4324 #ifdef __GNUC__
4325  #pragma GCC diagnostic pop
4326 #endif // __GNUC__
4327 // -------------------------------------------------------------------
4328 
4329 // -------------------------------------------------------------------
4330 
4331 // -------------------------------------------------------------------
4332 
4333 // -------------------------------------------------------------------
4334 
4335 // -------------------------------------------------------------------
4336 
4337 // -------------------------------------------------------------------
4338 
4339 // -------------------------------------------------------------------
4340 
4341 
4342 // @@protoc_insertion_point(namespace_scope)
4343 
4344 } // namespace protobuf
4345 } // namespace frontseat
4346 } // namespace middleware
4347 } // namespace goby
4348 
4349 PROTOBUF_NAMESPACE_OPEN
4350 
4351 template <> struct is_proto_enum< ::goby::middleware::frontseat::protobuf::Source_Sensor> : ::std::true_type {};
4352 template <>
4353 inline const EnumDescriptor* GetEnumDescriptor< ::goby::middleware::frontseat::protobuf::Source_Sensor>() {
4355 }
4356 template <> struct is_proto_enum< ::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm> : ::std::true_type {};
4357 template <>
4358 inline const EnumDescriptor* GetEnumDescriptor< ::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm>() {
4360 }
4361 template <> struct is_proto_enum< ::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm> : ::std::true_type {};
4362 template <>
4363 inline const EnumDescriptor* GetEnumDescriptor< ::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm>() {
4365 }
4366 template <> struct is_proto_enum< ::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm> : ::std::true_type {};
4367 template <>
4368 inline const EnumDescriptor* GetEnumDescriptor< ::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm>() {
4370 }
4371 template <> struct is_proto_enum< ::goby::middleware::frontseat::protobuf::VehicleType> : ::std::true_type {};
4372 template <>
4373 inline const EnumDescriptor* GetEnumDescriptor< ::goby::middleware::frontseat::protobuf::VehicleType>() {
4375 }
4376 
4377 PROTOBUF_NAMESPACE_CLOSE
4378 
4379 // @@protoc_insertion_point(global_scope)
4380 
4381 #include <google/protobuf/port_undef.inc>
4382 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto
boost::units::unit< z_rate_dimension, boost::units::si::system > z_rate_unit
boost::units::quantity< altitude_unit, double > altitude_with_units() const
::goby::middleware::protobuf::LatLonPoint * unsafe_arena_release_datum()
boost::units::plane_angle_dimension pitch_dimension
boost::units::plane_angle_dimension course_over_ground_dimension
boost::units::quantity< heading_unit, double > heading_with_units() const
void set_heading(::goby::middleware::frontseat::protobuf::Source_Sensor value)
boost::mpl::divides< boost::units::plane_angle_dimension, boost::units::time_dimension >::type pitch_rate_dimension
void unsafe_arena_set_allocated_datum(::goby::middleware::protobuf::LatLonPoint *datum)
void set_name(const char *value, size_t size)
EulerAngles(::PROTOBUF_NAMESPACE_ID::Arena *arena)
::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm density_algorithm() const
boost::units::unit< density_dimension, boost::units::si::system > density_unit
static bool SalinityAlgorithm_Parse(const std::string &name, SalinityAlgorithm *value)
Source * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
::goby::middleware::frontseat::protobuf::Source_Sensor speed() const
boost::units::unit< depth_dimension, boost::units::si::system > depth_unit
CartesianCoordinate & operator=(const CartesianCoordinate &from)
static const std::string & Sensor_Name(T enum_t_value)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Sensor_descriptor()
::goby::middleware::protobuf::LatLonPoint * unsafe_arena_release_global_fix()
boost::mpl::divides< boost::units::plane_angle_dimension, boost::units::time_dimension >::type roll_rate_dimension
void set_position(::goby::middleware::frontseat::protobuf::Source_Sensor value)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
boost::units::quantity< salinity_unit, double > salinity_with_units() const
static const std::string & SalinityAlgorithm_Name(T enum_t_value)
boost::units::unit< y_dimension, boost::units::si::system > y_unit
CTDSample(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::quantity< pitch_rate_unit, double > pitch_rate_with_units() const
EulerAngles & operator=(const EulerAngles &from)
boost::units::quantity< course_over_ground_unit, double > course_over_ground_with_units() const
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
::goby::middleware::protobuf::LatLonPoint * mutable_global_fix()
::goby::middleware::frontseat::protobuf::Source_Sensor position() const
boost::units::quantity< time_unit, double > time_with_units() const
boost::mpl::divides< boost::units::plane_angle_dimension, boost::units::time_dimension >::type heading_rate_dimension
boost::mpl::divides< boost::units::length_dimension, boost::units::time_dimension >::type z_rate_dimension
boost::units::unit< roll_dimension, boost::units::degree::system > roll_unit
boost::units::absolute< boost::units::unit< temperature_dimension, boost::units::celsius::system > > temperature_unit
boost::units::quantity< heading_rate_unit, double > heading_rate_with_units() const
void set_depth(::goby::middleware::frontseat::protobuf::Source_Sensor value)
boost::units::unit< pressure_dimension, boost::units::si::system > pressure_unit
boost::units::unit< x_dimension, boost::units::si::system > x_unit
void set_allocated_datum(::goby::middleware::protobuf::LatLonPoint *datum)
static bool SoundSpeedAlgorithm_Parse(const std::string &name, SoundSpeedAlgorithm *value)
boost::units::quantity< x_unit, double > x_with_units() const
boost::units::unit< heading_rate_dimension, boost::units::degree::system > heading_rate_unit
NodeStatus * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
Source(::PROTOBUF_NAMESPACE_ID::Arena *arena)
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
static const std::string & DensityAlgorithm_Name(T enum_t_value)
void CopyFrom(const CartesianCoordinate &from)
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
boost::units::quantity< sound_speed_unit, double > sound_speed_with_units() const
CTDSample * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void set_sound_speed_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm value)
CartesianCoordinate(const CartesianCoordinate &from)
void set_salinity_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm value)
::goby::middleware::frontseat::protobuf::CTDSample_SoundSpeedAlgorithm sound_speed_algorithm() const
boost::units::unit< roll_rate_dimension, boost::units::degree::system > roll_rate_unit
boost::units::plane_angle_dimension heading_dimension
void unsafe_arena_set_allocated_global_fix(::goby::middleware::protobuf::LatLonPoint *global_fix)
friend void swap(NodeStatus &a, NodeStatus &b)
boost::units::quantity< roll_rate_unit, double > roll_rate_with_units() const
::goby::middleware::frontseat::protobuf::Source_Sensor depth() const
CartesianCoordinate & operator=(CartesianCoordinate &&from) noexcept
EulerAngles & operator=(EulerAngles &&from) noexcept
DesiredCourse(::PROTOBUF_NAMESPACE_ID::Arena *arena)
CTDSample & operator=(CTDSample &&from) noexcept
boost::units::temperature_dimension temperature_dimension
::goby::middleware::frontseat::protobuf::CTDSample_SalinityAlgorithm salinity_algorithm() const
boost::mpl::divides< boost::units::length_dimension, boost::units::time_dimension >::type speed_dimension
DesiredCourse * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
boost::units::quantity< depth_unit, double > depth_with_units() const
boost::units::unit< z_dimension, boost::units::si::system > z_unit
CartesianCoordinate(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::quantity< over_water_unit, double > over_water_with_units() const
boost::units::quantity< pitch_unit, double > pitch_with_units() const
DesiredCourse & operator=(const DesiredCourse &from)
boost::units::unit< conductivity_dimension, boost::units::si::system > conductivity_unit
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
DesiredCourse & operator=(DesiredCourse &&from) noexcept
boost::units::unit< pitch_rate_dimension, boost::units::degree::system > pitch_rate_unit
DatumUpdate & operator=(DatumUpdate &&from) noexcept
boost::units::quantity< conductivity_unit, double > conductivity_with_units() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
boost::units::derived_dimension< boost::units::length_base_dimension, 1, boost::units::time_base_dimension,-1 >::type sound_speed_dimension
static const CartesianCoordinate & default_instance()
boost::mpl::divides< boost::units::length_dimension, boost::units::time_dimension >::type over_ground_dimension
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DensityAlgorithm_descriptor()
::goby::middleware::protobuf::LatLonPoint * release_global_fix()
boost::units::unit< salinity_dimension, boost::units::si::system > salinity_unit
static bool Sensor_Parse(const std::string &name, Sensor *value)
::goby::middleware::protobuf::LatLonPoint * release_datum()
boost::units::quantity< roll_unit, double > roll_with_units() const
boost::units::unit< course_over_ground_dimension, boost::units::degree::system > course_over_ground_unit
boost::units::unit< sound_speed_dimension, boost::units::si::system > sound_speed_unit
friend void swap(DesiredCourse &a, DesiredCourse &b)
boost::units::unit< altitude_dimension, boost::units::si::system > altitude_unit
void MergeFrom(const CartesianCoordinate &from)
NodeStatus & operator=(const NodeStatus &from)
const ::goby::middleware::protobuf::LatLonPoint & datum() const
boost::units::unit< time_dimension, boost::units::si::system > time_unit
Speed * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
static const std::string & SoundSpeedAlgorithm_Name(T enum_t_value)
DatumUpdate & operator=(const DatumUpdate &from)
boost::units::quantity< over_ground_unit, double > over_ground_with_units() const
boost::units::quantity< z_rate_unit, double > z_rate_with_units() const
friend void swap(DatumUpdate &a, DatumUpdate &b)
static const CartesianCoordinate * internal_default_instance()
const ::goby::middleware::protobuf::LatLonPoint & global_fix() const
Speed(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::plane_angle_dimension roll_dimension
boost::units::quantity< z_unit, double > z_with_units() const
::goby::middleware::frontseat::protobuf::Source_Sensor heading() const
static bool DensityAlgorithm_Parse(const std::string &name, DensityAlgorithm *value)
friend void swap(CTDSample &a, CTDSample &b)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SoundSpeedAlgorithm_descriptor()
boost::units::derived_dimension< boost::units::mass_base_dimension, 1, boost::units::length_base_dimension,-3 >::type density_dimension
boost::units::unit< pitch_dimension, boost::units::degree::system > pitch_unit
boost::mpl::divides< boost::units::length_dimension, boost::units::time_dimension >::type over_water_dimension
boost::units::unit< speed_dimension, boost::units::si::system > speed_unit
void set_speed(::goby::middleware::frontseat::protobuf::Source_Sensor value)
NodeStatus & operator=(NodeStatus &&from) noexcept
void set_density_algorithm(::goby::middleware::frontseat::protobuf::CTDSample_DensityAlgorithm value)
EulerAngles * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
friend void swap(CartesianCoordinate &a, CartesianCoordinate &b)
void set_allocated_global_fix(::goby::middleware::protobuf::LatLonPoint *global_fix)
CartesianCoordinate * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
boost::units::quantity< temperature_unit, double > temperature_with_units() const
boost::units::unit< heading_dimension, boost::units::degree::system > heading_unit
boost::units::derived_dimension< boost::units::mass_base_dimension, 1, boost::units::length_base_dimension,-1, boost::units::time_base_dimension,-2 >::type pressure_dimension
boost::units::quantity< speed_unit, double > speed_with_units() const
DatumUpdate(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::quantity< density_unit, double > density_with_units() const
boost::units::quantity< y_unit, double > y_with_units() const
CartesianCoordinate(CartesianCoordinate &&from) noexcept
boost::units::unit< over_water_dimension, boost::units::si::system > over_water_unit
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
boost::units::quantity< pressure_unit, double > pressure_with_units() const
friend void swap(EulerAngles &a, EulerAngles &b)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
NodeStatus(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::unit< over_ground_dimension, boost::units::si::system > over_ground_unit
::goby::middleware::protobuf::LatLonPoint * mutable_datum()
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SalinityAlgorithm_descriptor()
DatumUpdate * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
boost::units::conductivity_dimension conductivity_dimension
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_goby_2fmiddleware_2fprotobuf_2ffrontseat_5fdata_2eproto
unit< time_dimension, si::system > time
Definition: time.hpp:22
@ value
the parser finished reading a JSON value
bool CTDSample_DensityAlgorithm_Parse(const std::string &name, CTDSample_DensityAlgorithm *value)
constexpr CTDSample_SalinityAlgorithm CTDSample_SalinityAlgorithm_SalinityAlgorithm_MIN
bool VehicleType_Parse(const std::string &name, VehicleType *value)
EulerAnglesDefaultTypeInternal _EulerAngles_default_instance_
const std::string & VehicleType_Name(T enum_t_value)
CartesianCoordinateDefaultTypeInternal _CartesianCoordinate_default_instance_
constexpr CTDSample_SoundSpeedAlgorithm CTDSample_SoundSpeedAlgorithm_SoundSpeedAlgorithm_MIN
constexpr CTDSample_SalinityAlgorithm CTDSample_SalinityAlgorithm_SalinityAlgorithm_MAX
bool CTDSample_DensityAlgorithm_IsValid(int value)
constexpr Source_Sensor Source_Sensor_Sensor_MIN
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Source_Sensor_descriptor()
SourceDefaultTypeInternal _Source_default_instance_
bool CTDSample_SoundSpeedAlgorithm_Parse(const std::string &name, CTDSample_SoundSpeedAlgorithm *value)
DatumUpdateDefaultTypeInternal _DatumUpdate_default_instance_
constexpr int CTDSample_SoundSpeedAlgorithm_SoundSpeedAlgorithm_ARRAYSIZE
constexpr CTDSample_DensityAlgorithm CTDSample_DensityAlgorithm_DensityAlgorithm_MIN
NodeStatusDefaultTypeInternal _NodeStatus_default_instance_
constexpr int CTDSample_DensityAlgorithm_DensityAlgorithm_ARRAYSIZE
constexpr Source_Sensor Source_Sensor_Sensor_MAX
bool CTDSample_SalinityAlgorithm_IsValid(int value)
constexpr int CTDSample_SalinityAlgorithm_SalinityAlgorithm_ARRAYSIZE
bool Source_Sensor_Parse(const std::string &name, Source_Sensor *value)
constexpr CTDSample_SoundSpeedAlgorithm CTDSample_SoundSpeedAlgorithm_SoundSpeedAlgorithm_MAX
bool CTDSample_SalinityAlgorithm_Parse(const std::string &name, CTDSample_SalinityAlgorithm *value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CTDSample_SoundSpeedAlgorithm_descriptor()
const std::string & CTDSample_SoundSpeedAlgorithm_Name(T enum_t_value)
constexpr CTDSample_DensityAlgorithm CTDSample_DensityAlgorithm_DensityAlgorithm_MAX
SpeedDefaultTypeInternal _Speed_default_instance_
const std::string & CTDSample_SalinityAlgorithm_Name(T enum_t_value)
const std::string & CTDSample_DensityAlgorithm_Name(T enum_t_value)
DesiredCourseDefaultTypeInternal _DesiredCourse_default_instance_
bool CTDSample_SoundSpeedAlgorithm_IsValid(int value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CTDSample_SalinityAlgorithm_descriptor()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * VehicleType_descriptor()
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CTDSample_DensityAlgorithm_descriptor()
const std::string & Source_Sensor_Name(T enum_t_value)
CTDSampleDefaultTypeInternal _CTDSample_default_instance_
LatLonPointDefaultTypeInternal _LatLonPoint_default_instance_
boost::units::quantity< boost::units::si::dimensionless > salinity(boost::units::quantity< ConductivityUnit > conductivity, boost::units::quantity< boost::units::absolute< TemperatureUnit > > temperature, boost::units::quantity< PressureUnit > pressure)
Calculates salinity from conductivity, temperature, and pressure Adapted from "Algorithms for computa...
Definition: salinity.h:58
boost::units::quantity< decltype(milli_siemens_per_cm)> conductivity(boost::units::quantity< DimensionlessUnit > salinity, boost::units::quantity< boost::units::absolute< TemperatureUnit > > temperature, boost::units::quantity< PressureUnit > pressure)
Calculates conductivity from salinity, temperature, and pressure Adapted from "Algorithms for computa...
Definition: salinity.h:82
boost::units::quantity< decltype(boost::units::si::deci *bar)> pressure(boost::units::quantity< DepthUnit > depth, boost::units::quantity< LatitudeUnit > latitude)
Calculates pressure from depth and latitude.
Definition: pressure.h:55
boost::units::quantity< boost::units::si::length > depth(boost::units::quantity< PressureUnit > pressure, boost::units::quantity< LatitudeUnit > latitude)
Calculates depth from pressure and latitude Adapted from "Algorithms for computation of fundamental p...
Definition: depth.h:57
boost::units::make_system< boost::units::angle::revolution_base_unit, boost::units::metric::minute_base_unit >::type system
Definition: system.hpp:45
The global namespace for the Goby project.
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::uint32 offsets[]
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[8] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]