OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  16.1.0
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 
24 
25 namespace OnixS
26 {
27  namespace Eurex
28  {
29  namespace MarketData
30  {
31  /// Abstract watch service.
32  class ONIXS_EUREX_EMDI_API WatchService
33  {
34  public:
35  /// Returns current UTC time.
36  Timestamp now();
37 
38  /// Identifies watch service.
39  const char* id() const;
40 
41  ///
42  virtual ~WatchService();
43 
44  protected:
46 
47  private:
48  void* const impl_;
49  friend struct FeHelper;
50  };
51 
52  /// UTC watch.
53  class ONIXS_EUREX_EMDI_API UtcWatch : public WatchService
54  {
55  public:
56  /// Returns watch service
57  static UtcWatch& service();
58 
59  ///
61 
62  private:
63  UtcWatch();
64  };
65 
66  /// Local Watch.
67  class ONIXS_EUREX_EMDI_API LocalWatch : public WatchService
68  {
69  public:
70  /// Returns watch service
71  static LocalWatch& service();
72 
73  ///
75 
76  private:
77  LocalWatch();
78  };
79 
80 
81  /// The network interface watch.
82  ///
83  /// This class is designed to use the network adapter's watch if the capability is supported.
84  /// When an instance of the class is linked to a feed engine supporting hardware timestamps retrieval,
85  /// the feed engine extracts hardware timestamps and assigns them to the incoming multicast packets.
86  ///
87  /// An ordinary system (UTC) clock is used in all other cases.
88  class ONIXS_EUREX_EMDI_API NicWatch : public WatchService
89  {
90  public:
91  /// Returns watch service
92  static NicWatch& service();
93 
94  ///
96 
97  private:
98  NicWatch();
99  };
100  }
101  }
102 }
#define ONIXS_EUREX_EMDI_NOEXCEPT
Definition: Compiler.h:122
#define ONIXS_EUREX_EMDI_OVERRIDE
Definition: Compiler.h:126
Definition: Defines.h:30
Represents timestamp without time-zone information.
Definition: Timestamp.h:87