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

//
//
// Implementation file for C++ API factory.
//
//

#include "APIAll.h"
#include "MsgFactory.h"
#include "VersionMessage.h"
#include "RuThereMessage.h"
#include "ImHereMessage.h"
#include "HeartbeatMessage.h"
#include "ReplayMessage.h"
#include "ReplayDoneMessage.h"
#include "LastSequenceIDMessage.h"
#include "BatchRegisterMessage.h"
#include "BatchUnregisterMessage.h"
#include "BatchesCompletedMessage.h"
#include "MktDataMessage.h"
#include "SubmitOrderMessage.h"
#include "CancelOrderMessage.h"
#include "CancelAllOrderMessage.h"
#include "ModifyOrderMessage.h"
#include "ComplexOrderMessage.h"
#include "OrderReceivedMessage.h"
#include "OrderSubmittedMessage.h"
#include "OrderRejectedMessage.h"
#include "OrderCanceledMessage.h"
#include "OrderDoneMessage.h"
#include "OrderCancelRejectedMessage.h"
#include "TradeCaptureMessage.h"
#include "DropCopyMessage.h"
#include "EventReportMessage.h"
#include "DateRolloverMessage.h"
#include "ClientConnectMessage.h"
#include "ClientDisconnectMessage.h"
#include "ConnectResponseMessage.h"
#include "TradeLimitDataMessage.h"
#include "RiskResponseMessage.h"
#include "LockResponseMessage.h"
#include "LockUserMessage.h"
#include "ConfigMessage.h"
#include "SubscribeMessage.h"
#include "UnsubscribeMessage.h"
#include "UnsubscribeAllMessage.h"
#include "SubscriptionEventMessage.h"
#include "InsertLogMessage.h"
#include "TestMessage.h"
#include "RequestSnapshotMessage.h"

namespace MFAPI {

ShpMFMessage MsgFactory::createMessage(MsgType_t msgType)
{
    ShpMFMessage sm;
    switch ( msgType ) {
        case VersionMessage::ID: {
            sm.reset(new VersionMessage);
        } break;
        case RuThereMessage::ID: {
            sm.reset(new RuThereMessage);
        } break;
        case ImHereMessage::ID: {
            sm.reset(new ImHereMessage);
        } break;
        case HeartbeatMessage::ID: {
            sm.reset(new HeartbeatMessage);
        } break;
        case ReplayMessage::ID: {
            sm.reset(new ReplayMessage);
        } break;
        case ReplayDoneMessage::ID: {
            sm.reset(new ReplayDoneMessage);
        } break;
        case LastSequenceIDMessage::ID: {
            sm.reset(new LastSequenceIDMessage);
        } break;
        case BatchRegisterMessage::ID: {
            sm.reset(new BatchRegisterMessage);
        } break;
        case BatchUnregisterMessage::ID: {
            sm.reset(new BatchUnregisterMessage);
        } break;
        case BatchesCompletedMessage::ID: {
            sm.reset(new BatchesCompletedMessage);
        } break;
        case MktDataMessage::ID: {
            sm.reset(new MktDataMessage);
        } break;
        case SubmitOrderMessage::ID: {
            sm.reset(new SubmitOrderMessage);
        } break;
        case CancelOrderMessage::ID: {
            sm.reset(new CancelOrderMessage);
        } break;
        case CancelAllOrderMessage::ID: {
            sm.reset(new CancelAllOrderMessage);
        } break;
        case ModifyOrderMessage::ID: {
            sm.reset(new ModifyOrderMessage);
        } break;
        case ComplexOrderMessage::ID: {
            sm.reset(new ComplexOrderMessage);
        } break;
        case OrderReceivedMessage::ID: {
            sm.reset(new OrderReceivedMessage);
        } break;
        case OrderSubmittedMessage::ID: {
            sm.reset(new OrderSubmittedMessage);
        } break;
        case OrderRejectedMessage::ID: {
            sm.reset(new OrderRejectedMessage);
        } break;
        case OrderCanceledMessage::ID: {
            sm.reset(new OrderCanceledMessage);
        } break;
        case OrderDoneMessage::ID: {
            sm.reset(new OrderDoneMessage);
        } break;
        case OrderCancelRejectedMessage::ID: {
            sm.reset(new OrderCancelRejectedMessage);
        } break;
        case TradeCaptureMessage::ID: {
            sm.reset(new TradeCaptureMessage);
        } break;
        case DropCopyMessage::ID: {
            sm.reset(new DropCopyMessage);
        } break;
        case EventReportMessage::ID: {
            sm.reset(new EventReportMessage);
        } break;
        case DateRolloverMessage::ID: {
            sm.reset(new DateRolloverMessage);
        } break;
        case ClientConnectMessage::ID: {
            sm.reset(new ClientConnectMessage);
        } break;
        case ClientDisconnectMessage::ID: {
            sm.reset(new ClientDisconnectMessage);
        } break;
        case ConnectResponseMessage::ID: {
            sm.reset(new ConnectResponseMessage);
        } break;
        case TradeLimitDataMessage::ID: {
            sm.reset(new TradeLimitDataMessage);
        } break;
        case RiskResponseMessage::ID: {
            sm.reset(new RiskResponseMessage);
        } break;
        case LockResponseMessage::ID: {
            sm.reset(new LockResponseMessage);
        } break;
        case LockUserMessage::ID: {
            sm.reset(new LockUserMessage);
        } break;
        case ConfigMessage::ID: {
            sm.reset(new ConfigMessage);
        } break;
        case SubscribeMessage::ID: {
            sm.reset(new SubscribeMessage);
        } break;
        case UnsubscribeMessage::ID: {
            sm.reset(new UnsubscribeMessage);
        } break;
        case UnsubscribeAllMessage::ID: {
            sm.reset(new UnsubscribeAllMessage);
        } break;
        case SubscriptionEventMessage::ID: {
            sm.reset(new SubscriptionEventMessage);
        } break;
        case InsertLogMessage::ID: {
            sm.reset(new InsertLogMessage);
        } break;
        case TestMessage::ID: {
            sm.reset(new TestMessage);
        } break;
        case RequestSnapshotMessage::ID: {
            sm.reset(new RequestSnapshotMessage);
        } break;

    }
    return sm;
}

} // MFAPI

/* END */
