OnixS C++ Cboe CFE Multicast PITCH Market Data Handler  1.12.1
API documentation
WatchService.h
Go to the documentation of this file.
1 /*
2 * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3 *
4 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5 * and international copyright treaties.
6 *
7 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
8 * Services Agreement (the Agreement) and Customer end user license agreements granting
9 * a non-assignable, non-transferable and non-exclusive license to use the software
10 * for it's own data processing purposes under the terms defined in the Agreement.
11 *
12 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13 * of this source code or associated reference material to any other location for further reproduction
14 * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15 *
16 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17 * the terms of the Agreement is a violation of copyright law.
18  */
19 
20 #pragma once
21 
25 #include <OnixS/CboeCFE/MarketData/Pitch/CompilerDetection.h>
26 
27 #include <string>
28 
29 namespace OnixS
30 {
31  namespace CboeCFE
32  {
33  namespace MarketData
34  {
35  namespace Pitch
36  {
37  /// Abstract watch service.
38  class ONIXS_CBOECFE_PITCH_API WatchService
39  {
40  public:
41  /// Returns current UTC time.
42  Timestamp now();
43 
44  /// Identifies watch service.
45  const char* id() const;
46 
47  ///
48  virtual ~WatchService();
49 
50  protected:
52 
53  private:
54  void* const impl_;
55  friend struct FeHelper;
56  };
57 
58  /// UTC watch.
59  class ONIXS_CBOECFE_PITCH_API UtcWatch : public WatchService
60  {
61  public:
62  /// Returns watch service
63  static UtcWatch& service();
64 
65  ///
67 
68  private:
69  UtcWatch();
70  };
71 
72  /// The network interface watch.
73  ///
74  /// This class is designed to use the network adapter's watch if the capability is supported.
75  /// When an instance of the class is linked to a feed engine supporting hardware timestamps retrieval,
76  /// the feed engine extracts hardware timestamps and assigns them to the incoming multicast packets.
77  ///
78  /// An ordinary system (UTC) clock is used in all other cases.
79  class ONIXS_CBOECFE_PITCH_API NicWatch : public WatchService
80  {
81  public:
82  /// Returns watch service
83  static NicWatch& service();
84 
85  ///
87 
88  private:
89  NicWatch();
90  };
91  }
92  }
93  }
94 }
95 
#define ONIXS_BATS_PITCH_OVERRIDE
Definition: Compiler.h:112
#define ONIXS_BATS_PITCH_NOTHROW
Definition: Compiler.h:107
Represents time point without time-zone information.
Definition: Time.h:482