public void HandlePacket(Byte[] buf, int streamLength)
        {
            InPacket iPacket = new InPacket();
            iPacket.ForcedEncode(buf, streamLength);

            RmdManager.Ins().SetMarketDataUsingKrxData(iPacket, RmdManager.MarketDataType.KOSPI_FUTURE);
        }
Пример #2
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;
            }
        }
        public void HandlePacket(Byte[] buf, int streamLength)
        {
            InPacket iPacket = new InPacket();
            iPacket.ForcedEncode(buf, streamLength);

            lock (_lock)
            {
                _board.SetData(iPacket);
            }
        }
Пример #4
0
        public void HandlePacket(Byte[] buf, int streamLength)
        {
            InPacket iPacket = new InPacket();
            iPacket.ForcedEncode(buf, streamLength);

            _bondBoard.SetData(iPacket);

            if (_bSave)
            {
                _data.Buffer.Add(new MarketDataRawPacket(streamLength, buf));
            }
        }
Пример #5
0
        public KBHTS_ReceiveData(long packetID, String inString)
        {
            this.PacketID = packetID;

            InPacket iPacket = new InPacket();
            iPacket.ForcedEncode(inString);

            iPacket.SkipDecode(9); // 앞의 9자리

            DecodeHeader(iPacket);
            DecodeBody(iPacket);
        }
        RawMarketData Decode_Raw(String line, String targetCode)
        {
            // Decode time

            InPacket inPacket = new InPacket();
            inPacket.ForcedEncode(line);

            String timeString = inPacket.DecodeString(24);
            DateTime curDateTime = DateTime.ParseExact(timeString, "[yyyyMMdd HH:mm:ss.fff]\t", null);

            RawMarketData rmd = Decode_Raw(inPacket, targetCode, curDateTime);
            return rmd;
        }
Пример #7
0
        public void HandlePacket(int packetID, String pbPacket)
        {
            KBHTS hts = null;

            const int kInit_TraceIDRange = -1;

            lock (locker)
            {
                if (_map.ContainsKey(packetID))
                {
                    hts = _map[packetID];
                    // remove는 최종 패킷까지 받거든 할 것
            //                    _map.Remove(packetID);
                }
                else
                {
                    if (packetID == kInit_TraceIDRange)
                    {
                        // 8 byte를 읽는다.
                        InPacket iPacket = new InPacket();
                        iPacket.ForcedEncode(pbPacket);

                        long start = iPacket.DecodeLong(8);
                        long end = iPacket.DecodeLong(8);

                        _startOffset = start;
                        _endOffset = end;
                        this._bInit = true;

                        return;
                    }
                    else
                    {
                        logger.Error("({0}) packet id가 존재하지 않는다.", packetID);
                    }
                }
            }
            if (hts != null)
            {
                hts.HandleTossPacket(packetID, pbPacket);
            }
        }
Пример #8
0
        Boolean UpdateRawData(String line, String code, String curTimeStringWithFormat)
        {
            //Check Header
            InPacket iPacket = new InPacket();
            iPacket.ForcedEncode(line);
            RmdManager.BondPacketType type =
                RmdManager.Ins().BondSpot.EncodeHeaderAndGetHeaderType_Bond(ref iPacket);

            if (type == RmdManager.BondPacketType.Unknown)
            {
                return false;
            }

            switch (type)
            {
                case RmdManager.BondPacketType.Normal_Small:
                    return UpdateBondNormalSmallData(ref iPacket, code, curTimeStringWithFormat);
                case RmdManager.BondPacketType.Retail:
                    return UpdateBondRetailData(ref iPacket, code, curTimeStringWithFormat);
                default:
                    break;
            }
            return true;
        }