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); }
public PTFCallback(CSampleLog logObj) { sampleLog = logObj; }