B2BITS FIX Antenna HFT
1.0.15
|
#include "b2b_platform.h"
Classes | |
struct | CommMsgHeader |
struct | CommMsgReply |
struct | CommMsgRequest |
struct | MessageQueue |
struct | OrderKillSwitchMsg |
struct | SharedQueueData |
Macros | |
#define | MQ_ALIGN(x) ALIGNTO((x), MQ_ALIGN_SIZE) |
#define | MQ_ALIGN_SIZE 8 |
#define | MQ_ALIGNED ALIGNED(MQ_ALIGN_SIZE) |
#define | MQ_ALIGNTO_CACHELINE(x) ALIGNTO((x), MQ_CACHELINE_ALIGN_SIZE) |
#define | MQ_CACHELINE_ALIGN_SIZE CACHELINE_SIZE |
#define | MQ_CACHELINE_ALIGNED ALIGNED(MQ_CACHELINE_ALIGN_SIZE) |
#define | MQ_LEN_FIELD_SIZE sizeof(int) |
#define | MQD_MAGIC 0x1234321 |
#define | MQF_ALLOC_ON_HEAP 4 |
#define | MQF_ALWAYS_REINIT 128 |
#define | MQF_INITIATOR_SIDE 64 |
#define | MQF_READ_LOCK 2 |
#define | MQF_READ_SIDE 8 |
#define | MQF_THIS_SIDE_CONNECTED 32 |
#define | MQF_WRAP 0x80000000L |
#define | MQF_WRITE_LOCK 1 |
#define | MQF_WRITE_SIDE 16 |
#define | USE_SPINLOCK(_flags) (!!((_flags) & (MQF_WRITE_LOCK | MQF_READ_LOCK))) |
Typedefs | |
typedef struct MessageQueue | MessageQueue |
typedef struct SharedQueueData | SharedQueueData |
Enumerations | |
enum | CommMsgType { HEARTBEAT = 0, LOGON, REQUEST, REPLY, RISK_LIMITS, MARKET_DATA, SYMBOL_HALT, SECURITY_ETB, DEBUG_TERMINATE_PROCESS, DEBUG_CORRECTLY_TERMINATE_PROCESS, RISKCOMMON_REINIT, ORDER_KILL_SWITCH, DROPCOPY_REINIT } |
Functions | |
_Pragma ("pack(1)") | |
_Pragma ("pack()") | |
static void * | claimSendBuffer (short type, int size, MessageQueue *queue, int flags) |
template<typename MsgT > | |
static MsgT * | claimSendBuffer (MessageQueue *queue) |
static void | commitSendBuffer (MessageQueue *queue) |
static void * | message_data (CommMsgHeader *msg) |
static void * | message_queue_claim_space_for_push (MessageQueue *queue, int len) |
static void | message_queue_commit_peek (MessageQueue *queue) |
static void | message_queue_commit_push (MessageQueue *queue) |
static void | message_queue_commit_push (MessageQueue *queue, int len) |
static MessageQueue * | message_queue_create (void *buffer, int size, unsigned flags) |
static void | message_queue_dispose (MessageQueue *queue) |
static int | message_queue_is_empty (MessageQueue *queue) |
static int | message_queue_is_full (MessageQueue *queue, int len) |
static int | message_queue_is_ready (MessageQueue *queue) |
static int | message_queue_peek (MessageQueue *queue, void **ptr) |
static int | message_queue_pop (MessageQueue *queue, char *message, int bufLen) |
static int | message_queue_push (MessageQueue *queue, const char *message, int len) |
static void | message_queue_reinit (MessageQueue *queue) |
#define MQ_ALIGN | ( | x | ) | ALIGNTO((x), MQ_ALIGN_SIZE) |
#define MQ_ALIGN_SIZE 8 |
#define MQ_ALIGNED ALIGNED(MQ_ALIGN_SIZE) |
#define MQ_ALIGNTO_CACHELINE | ( | x | ) | ALIGNTO((x), MQ_CACHELINE_ALIGN_SIZE) |
Referenced by fifo_create(), and message_queue_create().
#define MQ_CACHELINE_ALIGN_SIZE CACHELINE_SIZE |
Referenced by fifo_create(), and message_queue_create().
#define MQ_CACHELINE_ALIGNED ALIGNED(MQ_CACHELINE_ALIGN_SIZE) |
#define MQ_LEN_FIELD_SIZE sizeof(int) |
#define MQD_MAGIC 0x1234321 |
Referenced by fifo_create(), fifo_is_ready(), message_queue_create(), message_queue_is_ready(), and message_queue_reinit().
#define MQF_ALLOC_ON_HEAP 4 |
Referenced by fifo_create(), fifo_dispose(), inout_channel_create_on_heap(), message_queue_create(), and message_queue_dispose().
#define MQF_ALWAYS_REINIT 128 |
Referenced by fifo_create(), and message_queue_create().
#define MQF_INITIATOR_SIDE 64 |
Referenced by fifo_create(), and message_queue_create().
#define MQF_READ_LOCK 2 |
Referenced by fifo_peek_continuous_buf(), fifo_pop(), message_queue_peek(), and message_queue_pop().
#define MQF_READ_SIDE 8 |
#define MQF_THIS_SIDE_CONNECTED 32 |
Referenced by fifo_create(), fifo_is_ready(), message_queue_create(), message_queue_is_ready(), and message_queue_reinit().
#define MQF_WRAP 0x80000000L |
#define MQF_WRITE_LOCK 1 |
#define MQF_WRITE_SIDE 16 |
#define USE_SPINLOCK | ( | _flags | ) | (!!((_flags) & (MQF_WRITE_LOCK | MQF_READ_LOCK))) |
Referenced by fifo_create(), fifo_dispose(), message_queue_create(), and message_queue_dispose().
typedef struct MessageQueue MessageQueue |
typedef struct SharedQueueData SharedQueueData |
enum CommMsgType |
_Pragma | ( | "pack(1)" | ) |
_Pragma | ( | "pack()" | ) |
|
inlinestatic |
References likely, message_queue_claim_space_for_push(), CommMsgHeader::msgLen, and CommMsgHeader::msgType.
Referenced by claimSendBuffer().
|
inlinestatic |
References claimSendBuffer().
|
inlinestatic |
References message_queue_commit_push().
|
inlinestatic |
|
inlinestatic |
References atom_read, MessageQueue::buffer, MessageQueue::flags, MessageQueue::lock, message_queue_is_ready(), MQ_LEN_FIELD_SIZE, MQF_WRAP, MQF_WRITE_LOCK, MessageQueue::sh, MessageQueue::size, SPIN_LOCK, SPIN_UNLOCK, MessageQueue::uncommited_head, MessageQueue::uncommited_len_offs, and unlikely.
Referenced by claimSendBuffer().
|
inlinestatic |
References atom_set, MB, MessageQueue::sh, and MessageQueue::uncommited_tail.
|
inlinestatic |
References atom_set, MessageQueue::flags, MessageQueue::lock, MB, MQF_WRITE_LOCK, MessageQueue::sh, SPIN_UNLOCK, and MessageQueue::uncommited_head.
Referenced by commitSendBuffer().
|
inlinestatic |
|
static |
References MessageQueue::allocatedBuffer, atom_read, atom_set, MessageQueue::buffer, MessageQueue::flags, init(), MessageQueue::lock, MALLOC, MB, MEMSET, MQ_ALIGNTO_CACHELINE, MQ_CACHELINE_ALIGN_SIZE, MQ_LEN_FIELD_SIZE, MQD_MAGIC, MQF_ALLOC_ON_HEAP, MQF_ALWAYS_REINIT, MQF_INITIATOR_SIDE, MQF_THIS_SIDE_CONNECTED, MessageQueue::sh, MessageQueue::size, SPINLOCK_INIT, and USE_SPINLOCK.
|
static |
References MessageQueue::allocatedBuffer, MessageQueue::flags, FREE, MessageQueue::lock, MQF_ALLOC_ON_HEAP, SPINLOCK_FINI, and USE_SPINLOCK.
|
inlinestatic |
References atom_read, message_queue_is_ready(), and MessageQueue::sh.
|
inlinestatic |
|
inlinestatic |
References atom_read, MessageQueue::flags, likely, MQD_MAGIC, MQF_THIS_SIDE_CONNECTED, MessageQueue::sh, and MessageQueue::size.
Referenced by message_queue_claim_space_for_push(), message_queue_is_empty(), message_queue_is_full(), message_queue_peek(), message_queue_pop(), and message_queue_push().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
References atom_set, MessageQueue::flags, MB, MEMSET, MQD_MAGIC, MQF_THIS_SIDE_CONNECTED, MessageQueue::sh, and MessageQueue::size.