Пример #1
0
        public void HandlePacket(Byte[] buf, int streamLength)
        {
            int len = MiniLzo.MiniLzo.Decompress(buf, original);

            InPacket iPacket = new InPacket();
            iPacket.ForcedEncode(original, len);

            int repeat = 0;
            while (true)
            {
                if (iPacket.End())
                {
                    break;
                }

                int packetLen = iPacket.Decode16();
                int totalPacketLen = (int)(packetLen + 2);

                String packet = iPacket.DecodeString(packetLen);
                _sw.Write("[{0}]\t", DateTime.Now.ToString("yyyyMMdd HH:mm:ss.fff"));
                _sw.Write(packet);
                _sw.Write("\r\n");

                iPacket.AdvancePivot(totalPacketLen);
                ++repeat;
            }
        }
        private void SetIndexOptionDataUsingYulchonData(InPacket iPacket)
        {
            //            logger.Info("Option Data {0:n0}", ++_oDataCount));

            short packetLen = iPacket.Decode16();
            short totalPacketLen = (short)(packetLen + 2);

            const int nSize = 5;
            byte[] head = new byte[nSize];
            iPacket.Decode(head, nSize);

            KrxPacketUtil.FutureOptionPacketType nType = KrxPacketUtil.GetFutureOptionPacketType(head);

            // 시간 Skip
            iPacket.SkipDecode(10);

            switch (nType)
            {
                case KrxPacketUtil.FutureOptionPacketType.Index_BidAsk:
                    Handle_Index_Option_BidAsk_Raw(iPacket);
                    break;
                case KrxPacketUtil.FutureOptionPacketType.Index_Contract:
                    Handle_Index_Option_Contract_Raw(iPacket);
                    break;
                case KrxPacketUtil.FutureOptionPacketType.Index_BidAsk_Contract:
                    Handle_Index_Option_BidAsk_Contract_Raw(iPacket);
                    break;
                default:
                    //                    FormChannel.Error("Broken Packet in RMDManager::SetMarketData...");
                    break;
            }
            iPacket.AdvancePivot(totalPacketLen);
        }
 private void HandleDefaultData(InPacket iPacket)
 {
     short packetLen = iPacket.Decode16();
     iPacket.SkipDecode(packetLen);
     iPacket.AdvancePivot();
 }
        private void SetIndexFutureDataUsingYulchonData(InPacket iPacket)
        {
            short packetLen = iPacket.Decode16();
            short totalPacketLen = (short)(packetLen + 2);

            SetIndexFutureData_Raw(iPacket);

            iPacket.AdvancePivot(totalPacketLen);
        }