OnixS C++ CME MDP Premium Market Data Handler  5.8.3
API Documentation
Watch.h
Go to the documentation of this file.
1 // Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2 //
3 // This software owned by Onix Solutions Limited [OnixS] and is
4 // protected by copyright law and international copyright treaties.
5 //
6 // Access to and use of the software is governed by the terms of the applicable
7 // OnixS Software Services Agreement (the Agreement) and Customer end user license
8 // agreements granting a non-assignable, non-transferable and non-exclusive license
9 // to use the software for it's own data processing purposes under the terms defined
10 // in the Agreement.
11 //
12 // Except as otherwise granted within the terms of the Agreement, copying or
13 // reproduction of any part of this source code or associated reference material
14 // to any other location for further reproduction or redistribution, and any
15 // amendments to this copyright notice, are expressly prohibited.
16 //
17 // Any reproduction or redistribution for sale or hiring of the Software not in
18 // accordance with the terms of the Agreement is a violation of copyright law.
19 //
20 
21 #pragma once
22 
23 #include <OnixS/CME/MDH/String.h>
24 #include <OnixS/CME/MDH/Time.h>
25 
27 
28 /// Abstract watch service.
30 {
31  /// Identifies watch service.
32  virtual const Char* id() const = 0;
33 
34  /// Returns current time.
35  virtual Timestamp now() = 0;
36 };
37 
38 /// Local watch.
40 {
41 public:
42  /// Returns current local time.
43  static Timestamp now();
44 
45  /// Returns watch service implementing local watch.
46  static WatchService& service();
47 
48 private:
49  LocalWatch(const LocalWatch&);
50  LocalWatch& operator=(const LocalWatch&);
51 };
52 
53 /// UTC watch.
55 {
56 public:
57  /// Returns current UTC time.
58  static Timestamp now();
59 
60  /// Returns watch service implementing UTC watch.
61  static WatchService& service();
62 
63 private:
64  UtcWatch(const UtcWatch&);
65  UtcWatch& operator=(const UtcWatch&);
66 };
67 
68 /// The network interface watch.
69 ///
70 /// This class is designed to use the network adapter's watch if the capability is supported.
71 /// When an instance of the class is linked to a feed engine supporting hardware timestamps retrieval,
72 /// the feed engine extracts hardware timestamps and assigns them to the incoming multicast packets.
73 ///
74 /// An ordinary system (UTC) clock is used in all other cases.
76 {
77 public:
78  /// Returns the watch service instance reference.
79  static WatchService& service();
80 
81 private:
82  NicWatch(const NicWatch&);
83  NicWatch& operator=(const NicWatch&);
84 };
85 
The network interface watch.
Definition: Watch.h:75
Represents time point without time-zone information.
Definition: Time.h:387
Abstract watch service.
Definition: Watch.h:29
char Char
Character type alias.
Definition: String.h:36
Local watch.
Definition: Watch.h:39
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition: Bootstrap.h:67
#define ONIXS_CMEMDH_EXPORTED
Definition: Compiler.h:135
#define ONIXS_CMEMDH_NAMESPACE_END
Definition: Bootstrap.h:68