// Обработка состояния соединения void ConnectionStatusChanged(CP2Connection conn, TConnectionStatus newStatus) { String state = "MQ connection state "; if( ( newStatus & TConnectionStatus.CS_CONNECTION_BUSY ) != 0 ) { state += "BUSY"; } else if( ( newStatus & TConnectionStatus.CS_CONNECTION_CONNECTED ) != 0 ) { state += "CONNECTED"; } else if( ( newStatus & TConnectionStatus.CS_CONNECTION_DISCONNECTED ) != 0 ) { state += "DISCONNECTED"; } else if( ( newStatus & TConnectionStatus.CS_CONNECTION_INVALID ) != 0 ) { state += "INVALID"; } state += " router state "; if( ( newStatus & TConnectionStatus.CS_ROUTER_CONNECTED ) != 0 ) { // Когда соединились - запрашиваем адрес сервера-обработчика state += "CONNECTED"; } else if( ( newStatus & TConnectionStatus.CS_ROUTER_DISCONNECTED ) != 0 ) { state += "DISCONNECTED"; } else if( ( newStatus & TConnectionStatus.CS_ROUTER_LOGINFAILED ) != 0 ) { state += "LOGINFAILED"; } else if( ( newStatus & TConnectionStatus.CS_ROUTER_NOCONNECT ) != 0 ) { state += "NOCONNECT"; } else if( ( newStatus & TConnectionStatus.CS_ROUTER_RECONNECTING ) != 0 ) { state += "RECONNECTING"; } LogWriteLine(state); }
private void ConnectionStatusChanged(CP2Connection conn, TConnectionStatus newStatus) { //если соединение не было открыто, то нафиг if (!conOpened) return; string s = this.con.AppName + " connection state change, new state: "+newStatus.ToString();; //if (newStatus.ToString()=="262146") //{ this.initStream();} this.parent.logService(s); }
public int Start(string[] args) { try { // Объект "соединение" и параметры соединения с приложением P2MQRouter m_conn = new CP2ConnectionClass(); m_conn.Host = "localhost"; m_conn.Port = 4001; m_conn.AppName = "p2clientgate_forts"; IP2ConnectionEvent_ConnectionStatusChangedEventHandler connStatusHandler = new IP2ConnectionEvent_ConnectionStatusChangedEventHandler(ConnectionStatusChanged); m_conn.ConnectionStatusChanged += connStatusHandler; if (File.Exists(m_saveRev)) { using (StreamReader sr = new StreamReader(m_saveRev)) { while (sr.Peek() >= 0) { curr_rev = Convert.ToInt64(sr.ReadLine()); } } } if (File.Exists(m_saveDeal)) { using (StreamReader sr = new StreamReader(m_saveDeal)) { while (sr.Peek() >= 0) { string buf = sr.ReadLine(); if (buf.StartsWith("replRev")) curr_rev_deal = Int64.Parse(buf.Split('=')[1]); } } } // создаем объект "входящий поток репликации" для потока агрегированых заявок m_streamAggregates = new CP2DataStreamClass(); m_streamAggregates.DBConnString = ""; m_streamAggregates.type = TRequestType.RT_COMBINED_DYNAMIC; m_streamAggregates.StreamName = streamAggregatesID; m_streamAggregates.TableSet = new CP2TableSetClass(); //m_streamAggregates.TableSet.InitFromIni2("orders_aggr.ini", "CustReplScheme"); m_streamAggregates.TableSet.InitFromIni("orders_aggr.ini", ""); m_streamAggregates.TableSet.set_rev("orders_aggr", curr_rev + 1); // создаем объект "входящий поток репликации" для потока агрегированых заявок m_streamTrades = new CP2DataStreamClass(); m_streamTrades.DBConnString = ""; m_streamTrades.type = TRequestType.RT_COMBINED_DYNAMIC; m_streamTrades.StreamName = streamTradesID; m_streamTrades.TableSet = new CP2TableSetClass(); m_streamTrades.TableSet.InitFromIni2("forts_scheme.ini", "FutTrade"); m_streamTrades.TableSet.set_rev("deal", curr_rev_deal + 1); // регистрируем интерфейсы обратного вызова для получения данных IP2DataStreamEvents_StreamStateChangedEventHandler StateHandler = new IP2DataStreamEvents_StreamStateChangedEventHandler(StreamStateChanged); m_streamAggregates.StreamStateChanged += StateHandler; m_streamTrades.StreamStateChanged += StateHandler; IP2DataStreamEvents_StreamDataInsertedEventHandler InsHandler = new IP2DataStreamEvents_StreamDataInsertedEventHandler(StreamDataInserted); m_streamAggregates.StreamDataInserted += InsHandler; m_streamTrades.StreamDataInserted += InsHandler; IP2DataStreamEvents_StreamDataDeletedEventHandler DelHandler = new IP2DataStreamEvents_StreamDataDeletedEventHandler(StreamDataDeleted); m_streamAggregates.StreamDataDeleted += DelHandler; m_streamTrades.StreamDataDeleted += DelHandler; IP2DataStreamEvents_StreamLifeNumChangedEventHandler LifeNumHandler = new IP2DataStreamEvents_StreamLifeNumChangedEventHandler(StreamLifeNumChanged); m_streamAggregates.StreamLifeNumChanged += LifeNumHandler; m_streamTrades.StreamLifeNumChanged += LifeNumHandler; } catch (Exception e) { int hRes = Marshal.GetHRForException(e); Console.WriteLine("Exception {0}", e.Message); LogWriteLine("Exception {0}", e.Message); if (hRes == -2147205116) // P2ERR_INI_FILE_NOT_FOUND { string s = "Can't find one or both of ini file: P2ClientGate.ini, orders_aggr.ini"; Console.WriteLine("{0}", s); LogWriteLine("{0}", s); } return (hRes); } return (0); }
public void Start(string[] args) { // Объект "соединение" и параметры соединения с приложением P2MQRouter m_conn = new CP2ConnectionClass(); m_conn.Host = "localhost"; m_conn.Port = 4001; m_conn.AppName = "p2clientgate_forts"; IP2ConnectionEvent_ConnectionStatusChangedEventHandler connStatusHandler = new IP2ConnectionEvent_ConnectionStatusChangedEventHandler(ConnectionStatusChanged); m_conn.ConnectionStatusChanged += connStatusHandler; // создаем объект "входящий поток репликации" m_streamAggregates = new CP2DataStreamClass(); m_streamAggregates.DBConnString = streamAggregatesDBConn; m_streamAggregates.type = TRequestType.RT_COMBINED_DYNAMIC; m_streamAggregates.StreamName = streamAggregatesID; m_streamAggregates.TableSet = new CP2TableSetClass(); m_streamAggregates.TableSet.InitFromIni("orders_aggr.ini", ""); m_streamTrades = new CP2DataStreamClass(); m_streamTrades.DBConnString = streamTradesDBConn; m_streamTrades.type = TRequestType.RT_COMBINED_DYNAMIC; m_streamTrades.StreamName = streamTradesID; m_streamTrades.TableSet = new CP2TableSetClass(); m_streamTrades.TableSet.InitFromIni("fut_trades.ini", ""); m_streamMiscInfo = new CP2DataStreamClass(); m_streamMiscInfo.DBConnString = streamMiscInfoDBConn; m_streamMiscInfo.type = TRequestType.RT_COMBINED_DYNAMIC; m_streamMiscInfo.StreamName = streamMiscInfoID; m_streamMiscInfo.TableSet = new CP2TableSetClass(); m_streamMiscInfo.TableSet.InitFromIni("misc_info.ini", ""); m_streamCommons = new CP2DataStreamClass(); m_streamCommons.DBConnString = streamCommonsDBConn; m_streamCommons.type = TRequestType.RT_COMBINED_DYNAMIC; m_streamCommons.StreamName = streamCommonsID; m_streamCommons.TableSet = new CP2TableSetClass(); m_streamCommons.TableSet.InitFromIni2("forts_scheme.ini", "FutCommon"); // регистрируем интерфейсы обратного вызова для получения данных IP2DataStreamEvents_StreamStateChangedEventHandler StateHandler = new IP2DataStreamEvents_StreamStateChangedEventHandler(StreamStateChanged); m_streamAggregates.StreamStateChanged += StateHandler; m_streamTrades.StreamStateChanged += StateHandler; m_streamCommons.StreamStateChanged += StateHandler; m_streamMiscInfo.StreamStateChanged += StateHandler; IP2DataStreamEvents_StreamDataInsertedEventHandler InsHandler = new IP2DataStreamEvents_StreamDataInsertedEventHandler(StreamDataInserted); m_streamAggregates.StreamDataInserted += InsHandler; m_streamTrades.StreamDataInserted += InsHandler; m_streamCommons.StreamDataInserted += InsHandler; m_streamMiscInfo.StreamDataInserted += InsHandler; IP2DataStreamEvents_StreamDataUpdatedEventHandler UpdHandler = new IP2DataStreamEvents_StreamDataUpdatedEventHandler(StreamDataUpdated); m_streamAggregates.StreamDataUpdated += UpdHandler; m_streamTrades.StreamDataUpdated += UpdHandler; m_streamCommons.StreamDataUpdated += UpdHandler; m_streamMiscInfo.StreamDataUpdated += UpdHandler; IP2DataStreamEvents_StreamDataDeletedEventHandler DelHandler = new IP2DataStreamEvents_StreamDataDeletedEventHandler(StreamDataDeleted); m_streamAggregates.StreamDataDeleted += DelHandler; m_streamTrades.StreamDataDeleted += DelHandler; m_streamCommons.StreamDataDeleted += DelHandler; m_streamMiscInfo.StreamDataDeleted += DelHandler; // Добавляем обработчик события смены номера жизни потокам с клиентской схемой IP2DataStreamEvents_StreamLifeNumChangedEventHandler LifeNumHandler = new IP2DataStreamEvents_StreamLifeNumChangedEventHandler(StreamLifeNumChanged); m_streamAggregates.StreamLifeNumChanged += LifeNumHandler; m_streamTrades.StreamLifeNumChanged += LifeNumHandler; m_streamCommons.StreamLifeNumChanged += LifeNumHandler; m_streamMiscInfo.StreamLifeNumChanged += LifeNumHandler; for (int i = 0; i < args.Length; ++i) { if (i == 0) { m_streamAggregates.DBConnString = args[i]; Console.WriteLine("Using DB connection string: {0}", m_streamAggregates.DBConnString); } } }
private void Button_Click(object sender, RoutedEventArgs e) { try { connect = new CP2ConnectionClass(); connect.Host = "localhost"; connect.Port = 4001; connect.AppName = "myplazait"; connect.ConnectionStatusChanged += delegate(CP2Connection _conn, TConnectionStatus _newStatus) { //MessageBox.Show(_conn.Status.ToString() + " - newstatus: " + _newStatus); MessageBox.Show("newstatus: " + _newStatus + " threadid: " + Thread.CurrentThread.ManagedThreadId); }; if (File.Exists(m_saveRev)) { using (StreamReader sr = new StreamReader(m_saveRev)) { while (sr.Peek() >= 0) { curr_rev = Convert.ToInt64(sr.ReadLine()); } } } if (File.Exists(m_saveDeal)) { using (StreamReader sr = new StreamReader(m_saveDeal)) { while (sr.Peek() >= 0) { string buf = sr.ReadLine(); if (buf.StartsWith("replRev")) { curr_rev_deal = Int64.Parse(buf.Split('=')[1]); } } } } // создаем объект "входящий поток репликации" для потока агрегированых заявок m_streamAggregates = new CP2DataStreamClass(); m_streamAggregates.DBConnString = ""; m_streamAggregates.type = TRequestType.RT_COMBINED_DYNAMIC; // RT_REMOTE_ONLINE m_streamAggregates.StreamName = streamAggregatesID; m_streamAggregates.TableSet = new CP2TableSetClass(); m_streamAggregates.TableSet.InitFromIni("orders_aggr.ini", ""); m_streamAggregates.TableSet.set_rev("orders_aggr", curr_rev + 1); // создаем объект "входящий поток репликации" для потока агрегированых заявок m_streamTrades = new CP2DataStreamClass(); m_streamTrades.DBConnString = ""; m_streamTrades.type = TRequestType.RT_COMBINED_DYNAMIC; // RT_REMOTE_ONLINE m_streamTrades.StreamName = streamTradesID; m_streamTrades.TableSet = new CP2TableSetClass(); m_streamTrades.TableSet.InitFromIni2("forts_scheme.ini", "FutTrade"); m_streamTrades.TableSet.set_rev("deal", curr_rev_deal + 1); // регистрируем интерфейсы обратного вызова для получения данных IP2DataStreamEvents_StreamStateChangedEventHandler StateHandler = new IP2DataStreamEvents_StreamStateChangedEventHandler(StreamStateChanged); m_streamAggregates.StreamStateChanged += StateHandler; m_streamTrades.StreamStateChanged += StateHandler; IP2DataStreamEvents_StreamDataInsertedEventHandler InsHandler = new IP2DataStreamEvents_StreamDataInsertedEventHandler(StreamDataInserted); m_streamAggregates.StreamDataInserted += InsHandler; m_streamTrades.StreamDataInserted += InsHandler; IP2DataStreamEvents_StreamDataDeletedEventHandler DelHandler = new IP2DataStreamEvents_StreamDataDeletedEventHandler(StreamDataDeleted); m_streamAggregates.StreamDataDeleted += DelHandler; m_streamTrades.StreamDataDeleted += DelHandler; IP2DataStreamEvents_StreamLifeNumChangedEventHandler LifeNumHandler = new IP2DataStreamEvents_StreamLifeNumChangedEventHandler(StreamLifeNumChanged); m_streamAggregates.StreamLifeNumChanged += LifeNumHandler; m_streamTrades.StreamLifeNumChanged += LifeNumHandler; Run(); } catch (Exception ee) { MessageBox.Show(ee.Message); } }
public void InitPlazaConnection() { this.con = new CP2ConnectionClass(); this.con.Host = this.parent.parent.gDBHost; this.con.Port = Convert.ToUInt16(this.parent.parent.gDBPort); this.con.AppName = "gUN"+this.short_name; this.con.Password = this.parent.parent.gDBPass; }
public void start() { this.isSendOrders = true; if (!this.m_IsStarted) { this.parent.logMsg("Старт отправки заявок"); this.m_con = new CP2ConnectionClass(); this.m_con.Host = this.m_Host; this.m_con.Port = this.m_Port; this.m_con.AppName = "p2msg_serv"; this.m_con.Password = this.m_Pass; this.m_IsStarted = true; this.m_isSendCmd = false; this.m_OrdersSendThread = new Thread(new ThreadStart(this.runSend)); this.m_OrdersSendThread.Start(); this.m_OrdersGetThread = new Thread(new ThreadStart(this.runGet)); this.m_OrdersGetThread.Start(); //this.m_OrdersUpdThread = new Thread(new ThreadStart(this.runUpd)); //this.m_OrdersUpdThread.Start(); } }