Example #1
0
        static void Main(string[] args)
        {
            try
            {
                int iKey = 0;

                System.Console.WriteLine("PTF Sample");
                CSampleCommands cmd = new CSampleCommands();

                if (!cmd.processCommand(args))
                {
                    printHelp();
                    System.Environment.Exit(1);
                }

                CSampleLog sampleLog = new CSampleLog(cmd.getLogLevel(), cmd.getUsername());

                //sampleLog.enableConsole(true);

                StringBuilder sBuffer = new StringBuilder();

                cmd.dump(sBuffer.ToString());

                sampleLog.log(sBuffer.ToString());

                //if (args.Length < 4)
                //{
                //    printHelp();
                //    return;
                //}

                // Create callback to handle all events
                PTFCallback ptfCB = new PTFCallback(sampleLog);
                ptfCB.setACkFlag(cmd.getAckFlag());

                iCSession ptfSession = iCSessionMngr.getMngr().createSession(
                cmd.getUsername(),				// username 
                cmd.getPassword(),				// password
                cmd.getHost(),					// host
                (uint) cmd.getPort(),  	    // port 
                ptfCB);		   			    // callback

                if (ptfSession != null)
                {
                    ptfSession.setSoftwareIdentity("iConnect PTF Sample 1.0");
                    ptfSession.setCompressionType(eICCompressionType.eCompressedData);
                }

                if (!startSession(ptfSession))
                {
                    System.Console.Error.WriteLine("Could not start session. Program exit.");
                    System.Console.WriteLine("Press 'q[enter]' to exit");

                    try
                    {
                        while ((iKey = System.Console.Read()) != -1)
                            if (iKey == 'q')
                                break;
                    }
                    catch (Exception ex)
                    {

                    }

                    return;
                }

                ArrayList vReq = cmd.getMsgArrayList();

                for (int iReq = 0; iReq < vReq.Count; iReq++)
                {
                    iCMsg msgReq = (iCMsg)vReq[iReq];

                    System.Net.Sockets.SocketError errMsg = ptfSession.send(msgReq);
                    if (errMsg != System.Net.Sockets.SocketError.Success)
                    {
                        System.Console.WriteLine("Sending message " + msgReq.getMsgType() + " Failed, Error: " + errMsg.ToString());
                    }
                    else
                    {
                        StringBuilder strBuff = new StringBuilder();

                        strBuff.Append("Msg Sent ");
                        strBuff.Append(" [" + msgReq.getMsgType() + "/" + msgReq.getRequestId() + "] ");
                        if (sampleLog.getDebugLogLevel())
                        {
                            strBuff.Append(iConnectCSharp.dump(msgReq));
                        }
                        else
                        {
                            strBuff.Append("\n");
                        }

                        sampleLog.log(strBuff.ToString());
                    }
                }

                // Request existing trade updates, if any.
                //iCMsg msg1 = new iCMsgTradeRequest(eICTradeRequest.eTradeRequestUnmatched, "00000000000000000000");
                //System.Net.Sockets.SocketError errMsg1 = session.send(msg1);
                //if (errMsg1 == System.Net.Sockets.SocketError.Success)
                //{
                //    StringBuilder strBufferMsgSent = new StringBuilder();
                //    strBufferMsgSent.Append(iConnectCSharp.dump(msg));
                //    System.Console.WriteLine(strBufferMsgSent.ToString());
                //}
                //else
                //{
                //    System.Console.WriteLine("Sending iCMsgTradeRequest Failed: " + errMsg1.ToString());
                //}

                //System.Console.WriteLine("Sent iCMsgTradeRequest: " + msg.getPacketType() + "/" + msg.getRequestId());


                System.Console.WriteLine("Press 'q[enter]' to exit");
                iKey = 0;
                try
                {
                    while ((iKey = System.Console.Read()) != -1)
                        if (iKey == 'q')
                            break;
                }
                catch (Exception ex)
                {
                    System.Console.Error.WriteLine("Failed reading keystroke. Program exit." + ex.ToString());
                    return;
                }

                // Stop session. It can be reconnect any time with startSession()
                stopSession(ptfSession);

                // Clean up and exit
                iCSessionMngr.getMngr().deleteSession(ptfSession);
                System.Console.WriteLine("Program exit. " + iCSessionMngr.getMngr().getSessionCount());
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.ToString());
                return;
            }
            System.Environment.Exit(0);
        }
Example #2
0
 public PTFCallback(CSampleLog logObj)
 {
     sampleLog = logObj;
 }