Commits on Feb 26, 2016
Commits on Feb 25, 2016
  1. @jvirtanen

    Add compatibility header to 'fix_common.c'

    'fix_common.c' uses 'clock_gettime' which is provided by the
    compatibility layer on Darwin.
    
    Signed-off-by: Jussi Virtanen <jussi.k.virtanen@gmail.com>
    jvirtanen committed Feb 25, 2016
  2. @jvirtanen

    Fix typo

    Signed-off-by: Jussi Virtanen <jussi.k.virtanen@gmail.com>
    jvirtanen committed Feb 25, 2016
Commits on Oct 21, 2015
  1. Merge "FIX: move redundant functionality out of scope" from Marat

    "Certain functionality could almost never be applied directly. It is
    either venue specific or brings so little value that it is very unlikely
    to be used at all. Keeping such functionality as a part of the library
    code is very confusing as it shadows another part which really brings
    the value and does all the vital job.
    
    This patch should introduce a series of changes that are supposed to
    restructure libtrading FIX code and make it clear.
    
    The general idea is to divide the whole functionality into two parts -
    the core, a higly optimized part applicable to everybody's needs as is
    i.e. without any modification; and the so called general part -
    functionality applicable to the general FIX engine i.e. the one which
    follows vanilla FIX specification.  One can think of the latter part in
    two different ways: either as an API to some ideal (not necessary
    existent) FIX engine or as a reference for anyone who wants to implement
    their own real application. Following this idea the patch moves a part
    of the FIX functionality under the '/tools' which is considered to be a
    place for examples and very often replace documentation which we lack of
    at the moment. If we decide that certain functionality is not a part a
    core anymore, we will factor it out as well. We will keep it under the
    '/tools' until the next step is done.
    
    The next step is to extend dialect data structure with operations which
    trading venues support in real life e.g. logon, logout, test request etc
    
    We would then provide a basic implementation of those methods which
    users are free to rewrite. It would prevent code duplicate on the one
    hand and makes it very clear to users what they need to implement."
    committed Oct 21, 2015
Commits on Oct 15, 2015
  1. Merge "added MsgSeqNum fields to CME & ICE dialects" from Denis

    "It's important to know MsgSeqNum."
    committed Oct 15, 2015
Commits on Oct 13, 2015
  1. @divaykin

    option to keep sequence numbers, needed if one takes care of session …

    …level outside of libtrading
    divaykin committed Oct 13, 2015
  2. @divaykin
Commits on Oct 5, 2015
  1. Merge "added CxlRejReason tag" From Denis

    "one field added into enum"
    committed Oct 5, 2015
  2. @divaykin

    added CxlRejReason tag

    divaykin committed Oct 5, 2015
Commits on Sep 21, 2015
  1. Merge "new template implementation - continous buffer" from Denis

    "instead of four buffers I managed to do all the template magic in one
     continuous buffer. this simplifies sending a lot with hardware specific
     transmit routine.
    
     also preparing template iovec in _unparse instead of _send and moved
     iov_byte_length to a public method."
    committed Sep 21, 2015
  2. Merge "Fix warnings" from Johannes

    "Clang produces a few warnings that seem worth fixing.
    
     I also noticed an unsettling pattern in buffer.h: The order of
     evaluation of the arguments to operator| is unspecified and should not
     be relied on."
    committed Sep 21, 2015
  3. @jlaire
  4. @jlaire

    FAST: add necessary NULL check

    jlaire committed Sep 21, 2015
  5. @jlaire

    FAST: remove dead code

    jlaire committed Sep 21, 2015
  6. @jlaire

    tools/fix: remove dead code

    jlaire committed Sep 21, 2015
Commits on Sep 11, 2015
  1. Merge "trivial fix for verify_checksum() in case of a stupid error" f…

    …rom Denis
    
    "verify_checksum() had a flaw - if one forgot to do %256 on checksum but
     the checksum itself is correct but just >256 then verify was returning
     true incorrectly"
    committed Sep 11, 2015
Commits on Aug 25, 2015
Commits on Aug 22, 2015
  1. @jvirtanen

    tools/fix: Initialize HeartBtInt(108) in all modes

    Signed-off-by: Jussi Virtanen <jussi.k.virtanen@gmail.com>
    jvirtanen committed Aug 22, 2015
Commits on Aug 13, 2015
  1. @divaykin

    verify_checksum() had a flaw - if one forgot to do %256 on checksum b…

    …ut the checksum itself is correct but just >256 then verify was returning true incorrectly
    divaykin committed Aug 13, 2015
  2. @divaykin

    new tamplete unparse/prepare resulting in one continous buffer. prepa…

    …re template iovec in unparse.
    
    this would allow to use hardware specific single buffer send routine. move iov_byte_length to public method.
    divaykin committed Aug 12, 2015
Commits on Aug 7, 2015
  1. Merge "fix_template_send() - return unsent bytes" from Denis

    "fix_template_send() - return unsent bytes, zero if success, <0 on error"
    committed Aug 7, 2015
  2. Merge "FIX: return the number of bytes that are not sent" from Marat

    "If non-blocking sockets are used there is a chance
    to send a message only partially. Right now there
    is no way to find out whether a message is fully
    sent. This patch allows to distinguish those two
    cases.
    
    fix_session_send() return value:
    
      * negative number indicates an error
      * positive number indicates the number of bytes that are not sent
      * zero indicates success"
    committed Aug 7, 2015
  3. @divaykin

    If non-blocking sockets are used there is a chance

    to send a template bytes only partially. Right now there
    is no way to find out whether a message is fully
    sent. This patch allows to distinguish those two
    cases.
    
    fix_template_send() return value:
    - negative number indicates an error
    - positive number indicates the number of bytes that *are not sent*
    - zero indicates success
    divaykin committed Aug 7, 2015
  4. @mstanichenko

    FIX: return the number of bytes that are not sent

    If non-blocking sockets are used there is a chance
    to send a message only partially. Right now there
    is no way to find out whether a message is fully
    sent. This patch allows to distinguish those two
    cases.
    
    fix_session_send() return value:
    - negative number indicates an error
    - positive number indicates the number of bytes that *are not sent*
    - zero indicates success
    
    Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
    mstanichenko committed Aug 7, 2015
Commits on Jul 30, 2015
  1. Merge "Access to raw FIX messages" from Marat

    Signed-off-by: Pekka Enberg <penberg@iki.fi>
    committed Jul 30, 2015
Commits on Jul 29, 2015
  1. @mstanichenko

    FIX: access to raw message representation introduced

    This patch adds a simple but quite useful feature.
    Once a FIX message is sent or received a user is
    allowed to inspect its raw representation i.e. a
    user is allowed to inspect a message in a form it
    is transfered through the wire (pure FIX payload).
    
    This feature can be applied in various cases but
    the main one is logging. If one's goal is to log
    FIX session, this feature allows to do that in a
    very efficient way. No need to process a message
    in any way, no need to format a message. Once
    fix_session_send or fix_session_recv returns a
    user can access msg->iov and log the data which
    were sent or received - no preprocessing is needed.
    
    As an illustration, this patch implements fprintmsg_iov
    using a new feature. fprintmsg_iov looks more elegant
    in comparison to fprintmsg. Moreover, it outputs every
    single field while fprintmsg has its own limitation.
    Furthermore, fprintmsg_iov tells us how floats were
    formatted in a real stream which fprintmsg has no
    chances to know.
    
    Important notes:
    
    * msg->iov is *only* valid after fix_session_recv or
    fix_session_send returns. Subsequent calls invalidate
    the pointer.
    
    * msg->iov[i].iov_len might be zero (i = 0, 1)
    
    Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
    mstanichenko committed Jul 29, 2015
  2. @mstanichenko

    FIX: get rid of redundant local variable

    Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
    mstanichenko committed Jul 29, 2015
Commits on Jul 26, 2015
  1. @mstanichenko

    FIX: move redundant functionality out of scope

    Certain functionality could almost never be applied
    directly. It is either venue specific or brings so
    little value that it is very unlikely to be used at
    all. Keeping such functionality as a part of the
    library code is very confusing as it shadows another
    part which really brings the value and does all the
    vital job.
    
    This patch should introduce a series of changes that
    are supposed to restructure libtrading FIX code and
    make it clear.
    
    The general idea is to divide the whole functionality
    into two parts - the core, a higly optimized part
    applicable to everybody's needs as is i.e. without
    any modification; and the so called general part -
    functionality applicable to the general FIX engine
    i.e. the one which follows vanilla FIX specification.
    One can think of the latter part in two different ways:
    either as an API to some ideal (not necessary existent)
    FIX engine or as a reference for anyone who wants to
    implement their own real application. Following this
    idea the patch moves a part of the FIX functionality
    under the '/tools' which is considered to be a place
    for examples and very often replace documentation
    which we lack of at the moment. If we decide that
    certain functionality is not a part a core anymore,
    we will factor it out as well. We will keep it under
    the '/tools' until the next step is done.
    
    The next step is to extend dialect data structure
    with operations which trading venues support in real
    life e.g. logon, logout, test request etc
    
    We would then provide a basic implementation of those
    methods which users are free to rewrite. It would
    prevent code duplicate on the one hand and makes it
    very clear to users what they need to implement.
    
    Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
    mstanichenko committed Jul 26, 2015
Commits on Jul 23, 2015
  1. Merge "Remove redundant exit() calls after usage()"

    From Thiago Farina:
    
    "usage() function already calls exit(EXIT_FAILURE) at its end."
    committed Jul 23, 2015
  2. @tfarina

    Remove redundant exit() calls after usage().

    usage() function already calls exit(EXIT_FAILURE) at its end.
    tfarina committed Jul 23, 2015
Commits on Jul 22, 2015
  1. @divaykin

    remove "packed" define as it conflicts with other includes using __at…

    …tribute__((packed)) directly
    divaykin committed Jul 22, 2015
Commits on Jul 19, 2015
  1. Merge "Update makefile/instructions for building on Mac OSX"

    From Chao Yan.
    committed Jul 19, 2015
  2. @cyanly