OnixS C++ CME Market Data Handler  5.4.0
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  LocalWatch(const LocalWatch&);
42  LocalWatch& operator =(const LocalWatch&);
43 
44 public:
45  /// Returns current local time.
46  static Timestamp now();
47 
48  /// Returns watch service implementing local watch.
49  static WatchService& service();
50 };
51 
52 /// UTC watch.
54 {
55  UtcWatch(const UtcWatch&);
56  UtcWatch& operator =(const UtcWatch&);
57 
58 public:
59  /// Returns current UTC time.
60  static Timestamp now();
61 
62  /// Returns watch service implementing UTC watch.
63  static WatchService& service();
64 };
65 
66 /// The network interface watch.
67 ///
68 /// The given class is designed to identify use
69 /// of the network adapter's watch if the capability
70 /// is supported. When an instance of the given class
71 /// is linked to a feed engine supporting hardware
72 /// timestamps retrieval, then the feed engine extracts
73 /// hardware timestamps assigns them to the incoming
74 /// multicast packets. In all other cases, an ordinary
75 /// system (UTC) clock is used.
77 {
78  NicWatch(const NicWatch&);
79  NicWatch& operator =(const NicWatch&);
80 
81 public:
82  /// Returns watch service implementing a NIC watch.
83  static WatchService& service();
84 };
85 
Represents time point without time-zone information.
Definition: Time.h:471
Abstract watch service.
Definition: Watch.h:29
char Char
Character type alias.
Definition: String.h:36
#define ONIXS_CMEMDH_EXPORTED_CLASS
Definition: Bootstrap.h:54
Local watch.
Definition: Watch.h:39
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition: Bootstrap.h:152
#define ONIXS_CMEMDH_EXPORTED_STRUCT
Definition: Bootstrap.h:58
#define ONIXS_CMEMDH_NAMESPACE_END
Definition: Bootstrap.h:156