nx_metadata_sdk  1.0
Metadata SDK
vehicles.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2 
3 #pragma once
4 
5 #include "abstract_object.h"
6 
7 namespace nx {
8 namespace vms_server_plugins {
9 namespace analytics {
10 namespace stub {
11 
12 const std::string kCarObjectType = "nx.stub.car";
13 const std::string kTruckObjectType = "nx.stub.truck";
14 const std::string kVehicleObjectType = "nx.stub.vehicle";
15 
16 class Vehicle: public AbstractObject
17 {
18  using base_type = AbstractObject;
19 public:
20  Vehicle(const std::string& typeId, Attributes attributes);
21  virtual void update() override;
22 protected:
23  void updateDistanceAttributeIfItExists();
24 };
25 
26 class Car: public Vehicle
27 {
28 public:
29  Car();
30 };
31 
32 class Truck: public Vehicle
33 {
34 public:
35  Truck();
36 };
37 
38 } // namespace stub
39 } // namespace analytics
40 } // namespace vms_server_plugins
41 } // namespace nx
Definition: apple_utils.h:6