// Copyright (C) 2010-2016  MarketFactory, Inc. All Rights Reserved.
//================================================================================
//   This file is auto-generated; DO NOT EDIT!
//================================================================================

#ifndef __MFAPIGEN_ORDERRECEIVED__
#define __MFAPIGEN_ORDERRECEIVED__

#include <API/Clients/CPP/Proto/APITypes.h>
#include <API/Clients/CPP/MFAPIClient/MFFloat.h>
#include <API/Clients/CPP/Proto/OrderType.h>
#include <API/Clients/CPP/Proto/Side.h>
#include <API/Clients/CPP/Proto/TimeInForce.h>

#include <iosfwd>
#include <string>
#include <vector>

namespace MFAPI {

/** Trading Event: Acknowledgement that an order has been received.
 */

class OrderReceived 
{
public:

    //--------------------------------------------------------------------------
    // Public attributes.

    /** User sequence id.
     */
    SequenceID_t sequenceID;

    /** Internal order ID.
     */
    OrderID_t orderID;

    /** Client-provided order ID.
     */
    std::string clOrdID;

    std::string modelID;

    /** Timestamp in the client handler within Whisperer.
     */
    Timestamp_t timeApiServer;

    /** Timestamp at the client API (taken on the client host).
     */
    Timestamp_t timeApiClient;

    /** A unique identifier for the feed.
     */
    FeedID_t feedID;

    /** A market ID, which identifies a unique financial instrument.
     */
    MarketID_t marketID;

    Side::Type side;

    /** A currency amount/size, in MFFloat format.
     */
    MFFloat amount;

    /** A currency price, in MFFloat format.
     */
    MFFloat price;

    /** Limit order or market order.
     */
    OrderType::Type ordType;

    /** How long this order is meant to be alive for, IOC or GTC.
     */
    TimeInForce::Type timeInForce;

    //--------------------------------------------------------------------------

    OrderReceived();
    ~OrderReceived();

    bool operator==(const OrderReceived&) const;
    bool operator!=(const OrderReceived&) const;
    bool operator<(const OrderReceived&) const;

    void dump(std::ostream& os, bool pretty) const;
    void read(void*);
    void write(void*) const;
    void dump(void*) const;

};

std::ostream& operator<<(std::ostream& os, const OrderReceived& o);

} // MFAPI

#endif
// InclKwds: OrderReceived
/*
Brought to you by
/opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/main.py --root /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3 --commit-date 2016-12-06T18:11:31.205-05:00 --revision 19c07f7ab2ea0612a19fbcabdd4a54e242830e7d --branch master --generated_directory /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/build/rh7_3.13.0/release/intel64/generated/Python -o /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/build/rh7_3.13.0/release/intel64/generated/API/Clients/CPP/Proto -i /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/MFProtocol --namespace=MFAPI cppapi /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/MFProtocol.proto.3130 /opt/atlassian/bamboo-agent/xml-data/build-dir/GAT-GWY-B3/Messaging/MFObsolete.proto.3130 
*/
