Пример #1
0
        // This method must be defined
        public void onDisconnect(bool forced, iCSession session)
        {
            StringBuilder sBuff = new StringBuilder();



            sBuff.Append("onDisconnect: ");
            sBuff.Append(session.getUsername());
            sBuff.Append(" ");

            sBuff.Append(session.getHostName());
            sBuff.Append(":");
            sBuff.Append(session.getPort());

            // Considered forced if logout initiated by client
            if (forced)
                sBuff.Append(" (Successful logout)");
            else
                sBuff.Append(" (Session disconnected)");

            sBuff.Append("\n");

            sampleLog.log(sBuff.ToString());

            System.Console.WriteLine("Session " + session.getUsername() + (forced ? " logout." : " disconnected."));
        }
Пример #2
0
        //public void setLog(CSampleLog logObj)
        //{
        //    sampleLog = logObj;
        //}


        // This method must be defined
        public void onConnect(iCSession session)
        {
            StringBuilder sBuff = new StringBuilder();

            sBuff.Append("onConnect: " + session.getName() + " " + session.getHostName());
            sBuff.Append(":" + session.getPort() + "\n");

            sampleLog.log(sBuff.ToString());

            System.Console.WriteLine("OnConnect --> " + "Session: " + session.getName());
        }
Пример #3
0
        // This method must be defined
        public void onData(iCMsg msg, iCSession session)
        {
            eICMsgType msgType = msg.getMsgType();

            StringBuilder sBuff = new StringBuilder();

            sBuff.Append("Received:");
            sBuff.Append(" [" + msg.getMsgType() + "/" + msg.getRequestId() + "] ");
            if (sampleLog.getDebugLogLevel())
            {
                sBuff.Append(iConnectCSharp.dump(msg));
            }
            else
            {
                sBuff.Append("\n");
            }

            sBuff.Append("\n");
            sampleLog.log(sBuff.ToString());

            if (eICMsgType.eMsgHeartbeat == msgType)
                System.Console.WriteLine("onData - " + session.getUsername() + "\n"  + "Heartbeat Received");

            else if (eICMsgType.eMsgPositive == msgType)
                doMsgPositive(msg);

            else if (eICMsgType.eMsgNegative == msgType)
                doMsgNegative(msg);

            else if (eICMsgType.eMsgPositiveLogin == msgType)
                doMsgPositiveLogin(msg, session);

            else if (eICMsgType.eMsgElectronicTransaction == msgType)
                doMsgElectronicTransaction(msg, session);

            else if (eICMsgType.eMsgVoiceTransaction == msgType)
                doMsgVoiceTransaction(msg, session);

            else if (eICMsgType.eMsgApplicationData == msgType)
                doMsgApplicationData(msg);

            else if (eICMsgType.eMsgInvalid == msgType)
                doMsgUnknown(msg);

            else
            {
                System.Console.WriteLine("onData: message type " + msg.getPacketType());
            }
        }
Пример #4
0
        public static bool startSession(iCSession icSess)
        {
            // Disable the reconnection mechanism

            icSess.setReconnectInterval(0);
            // Set heartbeat timeout to 30 seconds
            icSess.setCheckHeartbeatTimeout(30 * 1000);

            // Connect and check status
            eICErr err = icSess.connect(true);

            if (eICErr.eErrSuccess == err)
            {
                System.Console.WriteLine("Successful login");
                return true;
            }
            if (eICErr.eErrSessionConnected == err)
            {
                System.Console.WriteLine("Session already connected");
                return true;
            }

            if (eICErr.eErrTimeOut == err)
            {
                System.Console.WriteLine("Timeout sending login");
            }
            else if (eICErr.eErrHostname == err
                    || eICErr.eErrSocket == err
                    || eICErr.eErrConnect == err)
            {
                System.Console.WriteLine("Error connecting to host");
            }
            else if (eICErr.eErrLogin == err
                    || eICErr.eErrLoginArgs == err)
            {
                System.Console.WriteLine("Unable to Login");
            }
            return false;
        }
Пример #5
0
        public static bool stopSession(iCSession icSess)
        {
            // Disconnect session
            icSess.disconnect();

            try
            {
                System.Threading.Thread.Sleep(1000);
            }
            catch (Exception ex)
            {
                System.Console.Error.WriteLine("Sleep interruption. Program continue." + ex.ToString());
            }

            return true;
        }
Пример #6
0
        public void doMsgVoiceTransaction(iCMsg msgref, iCSession session)
        {
            //This message has the same structure as iCMsgElectronicTransaction.
            //See doMsgElectronicTransaction() for implementation details.
            //iCMsgVoiceTransaction msg = iCMsgVoiceTransaction.downcast(msgref.getPtr());
            //System.Console.WriteLine("Received: " + msg.ToString());
            
            iCMsgVoiceTransaction msg = (iCMsgVoiceTransaction) msgref;
            System.Console.WriteLine("Received: " + iConnectCSharp.dump(msg));

            // Get common trade details
            iCTradeData tradeData = msg.getTradeData();
            System.Console.WriteLine("\tIssue description: " + tradeData.getIssueDescription().getIssueDescription());

            if (m_iAckFlag != 0)
            {
                // Request existing trade updates, if any.
                iCMsg msg1 = new iCMsgTradeMatchRequest(eICTradeMatchConfirm.eTradeMatchAccept, tradeData.getTradeId());
                System.Net.Sockets.SocketError errMsg1 = session.send(msg1);
                if (errMsg1 == System.Net.Sockets.SocketError.Success)
                {
                    StringBuilder strBufferMsgSent = new StringBuilder();
                    strBufferMsgSent.Append(iConnectCSharp.dump(msg1));
                    System.Console.WriteLine(strBufferMsgSent.ToString());
                }
                else
                {
                    System.Console.WriteLine("Sending iCMsgTradeMatchRequest Failed: " + errMsg1.ToString());
                }
            }

            // Get market dependent trade details
            iCExtension tradeExt = msg.getTradeExtension();
            eICExtensionType ext = tradeExt.getExtensionType();

            if (eICExtensionType.eExtensionNone == ext)
                System.Console.WriteLine("\tIssue description: None");

            else if (eICExtensionType.eTradeExtensionTreasury == ext)
                doTradeExtensionTreasury(tradeExt);

            else if (eICExtensionType.eTradeExtensionAgency == ext)
                doTradeExtensionAgency(tradeExt);

            else if (eICExtensionType.eTradeExtensionRepo == ext)
                doTradeExtensionRepo(tradeExt);

            else if (eICExtensionType.eTradeExtensionBrady == ext)
                doTradeExtensionEmergingMarket(tradeExt);

            else if (eICExtensionType.eTradeExtensionAGB == ext)
                doTradeExtensionAGB(tradeExt);

            else if (eICExtensionType.eTradeExtensionEuro == ext)
                doTradeExtensionEuro(tradeExt);

            else if (eICExtensionType.eTradeExtensionEuroRepo == ext)
                doTradeExtensionEuroRepo(tradeExt);

            else if (eICExtensionType.eTradeExtensionRandBond == ext)
                doTradeExtensionRandBond(tradeExt);

            else if (eICExtensionType.eTradeExtensionDolSovs == ext)
                doTradeExtensionDolSovs(tradeExt);

            else if (eICExtensionType.eTradeExtensionCDS == ext)
                doTradeExtensionCDS(tradeExt);

            else if (eICExtensionType.eTradeExtensionBankCapital == ext)
                doTradeExtensionBankCapital(tradeExt);

            else if (eICExtensionType.eTradeExtensionEuroSterling == ext)
                doTradeExtensionEuroSterling(tradeExt);

            else if (eICExtensionType.eTradeExtensionBTecTreasury == ext)
                doTradeExtensionBTecTreasury(tradeExt);

            else if (eICExtensionType.eTradeExtensionFirstBrokersEmerging == ext)
                doTradeExtensionFirstBrokersEmerging(tradeExt);

            else if (eICExtensionType.eTradeExtensionFirstBrokers == ext)
                doTradeExtensionFirstBrokersDetail(tradeExt);

            else if (eICExtensionType.eTradeExtensionFirstBrokersIntermediate == ext)
                doTradeExtensionFirstBrokersIntermediate(tradeExt);

            else if (eICExtensionType.eTradeExtensionBTecMBS == ext)
                doTradeExtensionBTecMBS(tradeExt);

            else if (eICExtensionType.eTradeExtensionBTecGCRepo == ext)
                doTradeExtensionBTecGCRepo(tradeExt);

            else if (eICExtensionType.eTradeExtensionBTecAgency == ext)
                doTradeExtensionBTecAgency(tradeExt);

            else if (eICExtensionType.eTradeExtensionBTecSpecRepo == ext)
                doTradeExtensionBTecSpecRepo(tradeExt);

            else if (eICExtensionType.eTradeExtensionEnergy == ext)
                doTradeExtensionBTecEnergy(tradeExt);

            else if (eICExtensionType.eTradeExtensionBTecCGB == ext)
                doTradeExtensionBTecCGB(tradeExt);
                
            else if (eICExtensionType.eTradeExtensionEmktRepoDetail == ext)
				doTradeExtensionEmktRepoDetail(tradeExt);
			
			else if (eICExtensionType.eTradeExtensionWCLKGilts == ext)
				doTradeExtensionWCLKGilts(tradeExt);
            
            
        }
Пример #7
0
        public void doMsgPositiveLogin(iCMsg msgref, iCSession session)
        {
            iCMsgPositiveLogin msg = (iCMsgPositiveLogin)msgref;

            System.Console.WriteLine("Received: " + iConnectCSharp.dump(msg));

            System.Console.WriteLine("Number of markets allowed: " + msg.getMarketIdVector().Count);
        }
Пример #8
0
        // This method must be defined
        public void onError(eICErr err, iCSession session)
        {
            sampleLog.log(new StringBuilder("onError: " + err.ToString() + "\n").ToString());

            System.Console.WriteLine("onError: " + err);
        }