/*
 * $Header:  O2GEnum.h$
 *
 * Copyright (c) 2010 Forex Capital Markets LLC.
 * 32 Old Slip, 10th Floor, New York NY, 10005 USA
 *
 * THIS SOFTWARE IS THE CONFIDENTIAL AND PROPRIETARY INFORMATION OF
 * FXCM, LLC. ("CONFIDENTIAL INFORMATION"). YOU SHALL NOT DISCLOSE
 * SUCH CONFIDENTIAL INFORMATION AND SHALL USE IT ONLY IN ACCORDANCE
 * WITH THE TERMS OF THE LICENSE AGREEMENT YOU ENTERED INTO WITH
 * FXCM.
 *
 * File description:
 *
 * $History: $
 * 2010/09/17  shma      file is initially created
 */
#pragma once

typedef enum
{
    TableUnknown = - 1,
    Offers = 0,
    Accounts = 1,
    Orders = 2,
    Trades = 3,
    ClosedTrades = 4,
    Messages = 5,
    Summary = 6
} O2GTable;

typedef enum
{
    ResponseUnknown = -1,
    TablesUpdates = 0,
    MarketDataSnapshot = 1,
    GetAccounts = 2,
    GetOffers = 3,
    GetOrders = 4,
    GetTrades = 5,
    GetClosedTrades = 6,
    GetMessages = 7,
    CreateOrderResponse = 8,
    GetSystemProperties = 9,
    CommandResponse = 10,
    MarginRequirementsResponse = 11,
    GetLastOrderUpdate = 12,
} O2GResponseType;

typedef enum
{
    UpdateUnknown = - 1,
    Insert = 0,
    Update = 1,
    Delete = 2
} O2GTableUpdateType;

typedef enum
{
    PermissionDisabled = 0,
    PermissionEnabled = 1,
    PermissionHidden = -2
} O2GPermissionStatus;

typedef enum
{
    MarketStatusOpen = 0,     //!< Trading is allowed.
    MarketStatusClosed = 1    //!< Trading is not allowed.
} O2GMarketStatus;

typedef enum
{
    Default = 0,
    NoPrice = 1
} O2GPriceUpdateMode;

typedef enum
{
    No = 0,         // use TableResponseReader's for readers.
    Only = 1,       // use TableResponseReader's for tables.
    Both = 2        // use TableResponseReader's for readers and for tables too.
} O2GTableManagerMode;

typedef enum
{
    Initial = 0,     // initial status.
    Refreshing = 1,  // refresh in progress.
    Refreshed = 2,   // refresh is finished, table filled.
    Failed = 3       // refresh is failed.
} O2GTableStatus;

typedef enum
{
    ReportUrlNotSupported = -1,
    ReportUrlTooSmallBuffer = -2,
    ReportUrlNotLogged = -3
} O2GReportUrlError;
