1 #ifndef __FECONSUMER_H__
2 #define __FECONSUMER_H__
8 #include "LogMessage.h"
9 #include "MD/MD_mInt.h"
13 struct FEConsumerImpl;
33 typedef void (*MessageCallback)(
const std::string& topic,
45 typedef void (*EventCallback)(
const Event& e,
void* closure);
55 typedef void(*LoggingCallback)(
const LogMessage *messages,
size_t count);
58 const static int NO_TIMEOUT = 0;
62 const static int HWM_UNLIMITED = 0;
87 static Error log_open(
const std::string& filename,
bool append);
91 static void log_close();
95 static void enable_verbose_logging();
99 static void disable_verbose_logging();
105 static void set_logging_callback(LoggingCallback callback);
118 bool connected()
const;
126 bool authenticated()
const;
134 bool logged_in()
const;
143 bool is_subscribed(
const std::string& topic)
const;
150 unsigned int timeout_sec()
const;
157 unsigned int snapshot_timeout_sec()
const;
164 unsigned int heartbeat_timeout_sec()
const;
171 unsigned int heartbeat_interval_sec()
const;
178 unsigned int max_snapshot_queue_size()
const;
187 void event_cb(EventCallback callback);
194 void event_cb(EventCallback callback,
void* closure);
203 void timeout_sec(
unsigned int seconds);
210 void snapshot_timeout_sec(
unsigned int seconds);
217 void heartbeat_timeout_sec(
unsigned int seconds);
223 void heartbeat_interval_sec(
unsigned int seconds);
233 void max_snapshot_queue_size(
unsigned int size);
266 void enable_latency_tracking(
unsigned int bucket_interval_sec);
272 void disable_latency_tracking();
297 Error register_callback(
const std::string& topic_prefix,
308 Error unregister_callback(
const std::string& topic_prefix);
315 Error unregister_callback(SocketType fd);
329 Error get_notify_socket(
const std::string& topic_prefix,
344 Error dispatch(
long timeout_ms);
357 Error dispatch_fd(SocketType fd);
369 void set_notify_queue_message_limit(
size_t limit);
377 size_t get_notify_queue_message_limit();
387 void set_notify_queue_time_limit_ms(
int limit);
395 int get_notify_queue_time_limit_ms();
424 FEConsumer(
int sub_count,
int worker_count,
int high_watermark);
473 Error authenticate(
const std::string& host,
474 const std::string& user,
475 const std::string& serial,
476 const std::string& key_id,
477 const std::string& key,
478 const std::string& counter,
479 const std::string& path,
497 Error authenticate(
const std::string& host,
498 const std::string& user,
499 const std::string& key_id,
500 const std::string& key,
501 const std::string& counter,
502 const std::string& path,
530 Error log_in(
bool request_files =
true);
559 Error subscribe(
const std::string& topic,
560 SnapshotMode snapshot_mode,
570 Error unsubscribe(
const std::string& topic);
579 Error request_file(
const std::string& filename, std::string& contents_out);
609 void authenticate_async(
const std::string& host,
610 const std::string& user,
611 const std::string& serial,
612 const std::string& key_id,
613 const std::string& key,
614 const std::string& counter,
615 const std::string& path,
622 void authenticate_async(
const std::string& host,
623 const std::string& user,
624 const std::string& key_id,
625 const std::string& key,
626 const std::string& counter,
627 const std::string& path,
632 void connect_async();
636 void disconnect_async();
640 void log_in_async(
bool request_files =
true);
644 void subscribe_async(
const std::string& topic,
645 SnapshotMode snapshot_mode,
650 void unsubscribe_async(
const std::string& topic);
654 void request_file_async(
const std::string& filename);
671 FEConsumerImpl* m_impl;
No snapshots will be requested.
Definition: FEConsumer.h:67
MD::MD_Message MsgType
Market data message type.
Definition: FEConsumer.h:24
void(* MessageCallback)(const std::string &topic, MsgType &msg, void *closure)
Callback signature for receiving market data messages.
Definition: FEConsumer.h:33
DataMode
Set of possible data modes when subscribing.
Definition: FEConsumer.h:73
Delayed market data will be requested.
Definition: FEConsumer.h:75
SnapshotMode
Set of possible snapshot modes when subscribing.
Definition: FEConsumer.h:66
Live realtime market data will be requested.
Definition: FEConsumer.h:74
Definition: LogMessage.h:11
FEConsumer is a class which serves as the primary interface for interacting with the broadcast server...
Definition: FEConsumer.h:18
int SocketType
Operating system file descriptor type.
Definition: FEConsumer.h:21