Esempio n. 1
0
        public void loadAlarms()
        {
            xDataInput di = xFileManager.readFile(Context.FILE_ALARM, false);

            if (di == null)
            {
                return;
            }

            int ver = 0;

            if (di != null)
            {
                ver = di.readInt();
            }
            if (ver >= Context.FILE_VERSION_33)
            {
                int cnt = di.readInt();
                for (int i = 0; i < cnt; i++)
                {
                    stAlarm a = new stAlarm();
                    a.code       = di.readUTF();
                    a.date       = di.readInt();
                    a.lowerPrice = di.readInt();
                    a.upperPrice = di.readInt();

                    a.comment = di.readUTF();

                    mAlarms.addElement(a);
                }
            }
        }
Esempio n. 2
0
        //========================================================

        public void setZero(xDataInput di)
        {
            if (code.Equals("ACM"))
            {
                max = 0;
            }
            max = di.readInt() / 1000.0f;
            min = di.readInt() / 1000.0f;

            //  remain buy
            int i = 0;

            for (i = 0; i < 3; i++)
            {
                remain_buy_price[i]  = di.readInt() / 1000.0f;
                remain_buy_volume[i] = di.readInt();
            }

            for (i = 0; i < 3; i++)
            {
                remain_sell_price[i]  = di.readInt() / 1000.0f;
                remain_sell_volume[i] = di.readInt();
            }

            current_price_1 = di.readInt() / 1000.0f;

            current_volume_1 = di.readInt();

            change       = di.readInt() / 1000.0f;
            total_volume = di.readInt();

            //  update status
            //Utils.writeInt(pData, offset + POS_STATE, 0xffffffff);
        }
Esempio n. 3
0
 public void setNextfile(xDataInput di)
 {
     for (int i = 0; i < 8; i++)
     {
         next_file[i] = di.readByte();
     }
 }
Esempio n. 4
0
        public void load(xDataInput di)
        {
            this.setName(di.readUTF()); //	already
            this.setType(di.readInt());

            int members = di.readInt();

            for (int j = 0; j < members; j++)
            {
                String code = di.readUTF();
                if (code != null && code.Length >= 3)
                {
                    if (Context.getInstance() != null && Context.getInstance().mShareManager != null)
                    {
                        int id = Context.getInstance().mShareManager.getShareID(code);
                        if (id > 0)
                        {
                            this.addCode(code);
                        }
                    }
                    else
                    {
                        this.addCode(code);
                    }
                }
            }
        }
Esempio n. 5
0
        public void updateOpens(xDataInput di)
        {
            int cnt = di.readInt();

            mContext.mNeedRefreshOpens = false;

            if (cnt > 0)
            {
                if (mOpens == null || mOpens.Length < cnt)
                {
                    mOpens = new float[2 * (cnt + 200)];
                }
                mOpensCount = cnt;
                int   id;
                float open;
                for (int i = 0; i < cnt; i++)
                {
                    id = di.readInt();
                    if (id == 578)
                    {
                        open = 0;
                        Utils.trace("578");
                    }
                    open              = di.readInt() / 1000.0f;
                    mOpens[2 * i]     = id;
                    mOpens[2 * i + 1] = open;
                }
            }
        }
Esempio n. 6
0
        //==========================================
        void loadShareGroup(xDataInput di)
        {
            int cnt = di.readInt();

            if (cnt > stShareGroup.MAX_SHARES_IN_GROUP)
            {
                cnt = stShareGroup.MAX_SHARES_IN_GROUP;
            }
            xVector v = shareGroups();

            if (cnt > 0)
            {
                v.removeAllElements();
            }
            for (int i = 0; i < cnt; i++)
            {
                stShareGroup g = new stShareGroup();
                g.load(di);

                if (g.getType() == stShareGroup.ID_GROUP_GAINLOSS || g.getName() == null || g.getName().Length == 0)
                {
                    continue;
                }
                v.addElement(g);
            }
        }
Esempio n. 7
0
        public bool load(xDataInput di)
        {
            mDate = di.readInt();

            mShareID        = di.readInt();
            mCode           = di.readUTF();
            mFloorID        = di.readByte();
            mPriceRef       = di.readFloat();
            mIsIndex        = di.readBoolean();
            mMaxTradeVolume = di.readInt();

            mTradeTransactionCount = di.readInt();
            int cnt = mTradeTransactionCount * FIELD_CNT;

            if (cnt > mTradeTransactionBuffer.Length)
            {
                int[] p = new int[cnt + 20 * FIELD_CNT];
                mTradeTransactionBuffer = p;
            }

            for (int i = 0; i < cnt; i++)
            {
                mTradeTransactionBuffer[i] = di.readInt();
            }

            return(true);
        }
Esempio n. 8
0
        public void setOnlineIndexData(xDataInput di)
        {
            String date = di.readUTF();

            mDate = parseDate(date);
            mTime = parseTime(date);

            int floor = di.readInt();
            int max   = 10;

            if (floor < 1 || floor > max)
            {
                return;
            }

            //=====================index===================
            stPriceboardStateIndex index = getPriceboardIndexOfMarket(floor);

            if (di.available() < 44)
            {
                mContext.err++;
                return;
            }
            if (index != null)
            {
                index.mDate = date;

                index.current_point   = di.readInt() / 100.0f;
                index.changed_point   = di.readInt() / 100.0f;
                index.changed_percent = di.readInt();
                index.total_volume    = di.readInt();

                index.inc_cnt   = di.readInt();
                index.ce_cnt    = di.readInt();
                index.dec_cnt   = di.readInt();
                index.floor_cnt = di.readInt();

                index.ref_num   = di.readInt();
                index.totalGTGD = di.readInt() / 10;                    //	dv 1tr

                index.market_status = di.readInt();

                index.update_time = date;

                index.reference = index.current_point - index.changed_point;
            }

            // set timing clock
            if (index != null && index.market_status == MARKET_STATUS_OPENNING)
            {
                //mContext.mClock.reset(mTime * 1000);
            }
            else
            {
                //mContext.mClock.reset();
            }
        }
Esempio n. 9
0
        public void loadPriceboard()
        {
            if (true)
            {
                return;
            }
            if (!Context.mInvalidSavedFile)
            {
                return;
            }
            xDataInput di = xFileManager.readFile(PRICEBOARD_FILE, false);

            if (di != null)
            {
                int ver = di.readInt();
                if (ver < Context.FILE_VERSION_10)
                {
                    return;
                }

                int floor_count = di.readInt();

                int i = 0;
                //  indices
                mIndices.removeAllElements();
                for (i = 0; i < floor_count; i++)
                {
                    stPriceboardStateIndex idx = new stPriceboardStateIndex();
                    mIndices.addElement(idx);

                    idx.id              = di.readShort();
                    idx.code            = di.readUTF();
                    idx.marketID        = di.readInt();
                    idx.current_point   = di.readFloat(); //	*100
                    idx.changed_point   = di.readFloat(); //	*100
                    idx.changed_percent = di.readInt();   //	*100
                    idx.total_volume    = di.readInt();
                    idx.inc_cnt         = di.readInt();
                    idx.ce_cnt          = di.readInt();
                    idx.dec_cnt         = di.readInt();
                    idx.floor_cnt       = di.readInt();
                    idx.ref_num         = di.readInt();
                    idx.totalGTGD       = di.readInt();         //	*10000
                    idx.market_status   = di.readInt();
                    idx.reference       = di.readFloat();

                    idx.mDate = di.readUTF();
                }

                //  shares
                for (i = 0; i < floor_count; i++)
                {
                    stPriceboardState.load(di);
                }
            }
        }
Esempio n. 10
0
        //  structure:ver |blockcnt| blocksize:id|data | blocksize:id|data
        public void loadUserData(xDataInput di)
        {
            int signal = di.readInt();

            if (signal != USER_DATA_SIGNATURE)
            {
                return; //  bad file
            }

            int blockCount = di.readInt();

            _unknownBlocks = new xVector();

            if (blockCount < 16)
            {
                for (int i = 0; i < blockCount; i++)
                {
                    UserDataBlock block = UserDataBlock.loadBlock(di);
                    if (block.id == DATA_SHARE_GROUPS)
                    {
                        loadShareGroup(block.dataInput);
                    }
                    else if (block.id == DATA_GAINLOSS)
                    {
                        loadGainload(block.dataInput);
                    }
                    else if (block.id == DATA_FILTERS_WINDOWS)
                    {
                        if (usingFilterWindowsNew)
                        {
                            continue;   //  old version, discard this block
                        }
                        bool ok = loadFilters(block.dataInput);
                        if (!ok)
                        {
                            _unknownBlocks.addElement(block);
                        }
                    }
                    else if (block.id == DATA_FILTERS_WINDOWS_NEW)
                    {
                        usingFilterWindowsNew = true;
                        loadFilters(block.dataInput);
                    }
                    else if (block.id == DATA_DRAWING)
                    {
                        loadDrawings(block.dataInput);
                    }
                    else
                    {
                        _unknownBlocks.addElement(block);
                    }
                }
            }
        }
Esempio n. 11
0
        /*
         * void addData2(byte[] code, int floor, byte[] data, int offset, int data_size)
         * {
         *  if (code[0] == (byte)'^')
         *      return;
         *  //	if (strcmp(code, "BHS") == 0)
         *  //	{
         *  //		int k = 0;
         *  //	}
         *  int i, j;
         *  totalSize += data_size;
         *
         *  int candle_cnt = data_size / NET_CANDLE_SIZE;
         *
         *  int candleSize = CANDLE_SIZE;
         *  int size = candle_cnt * candleSize;
         *
         *  //	if (strlen(code) > 3)
         *  //	{
         *  //		int k = 0;
         *  //	}
         *
         *  int off = 0;
         *  int[] offsets = { 0 };
         *  byte[] p0 = seekTo(code, offsets);
         *  off = offsets[0];
         *
         *  int p1 = off+8;
         *
         *  if (p0 == null)
         *      return;
         *
         *  int old_candle_cnt = Utils.readInt(p0, off);
         *  //	move backward memory in buff
         *  int buffSize = MAX_CANDLES * candleSize;
         *  int size2Move = candleSize * old_candle_cnt;
         *  int remain = buffSize - size;
         *  if (remain < size2Move)
         *      size2Move = remain;
         *
         *  int total_candle_save = 0;
         *  if (size2Move > 0)
         *  {
         *      int end = size + size2Move;
         *      for (i = 0; i < size2Move; i++)
         *          p0[p1 + i + size] = p0[p1 + i]; //  copy to the end
         *      //memmove(p1 + size, p1, size2Move);
         *      total_candle_save = size2Move / candleSize;
         *  }
         *  //	if network data is too large, skip some first candles
         *  int candleAccept = candle_cnt;
         *  if (candleAccept > MAX_CANDLES)
         *      candleAccept = MAX_CANDLES;
         *  int skipCandle = candle_cnt - candleAccept;
         *
         *  int c0 = 0;
         *  int postP = (candleAccept - 1) * candleSize;
         *
         *  int tmp = 0;
         *
         *  j = 0;
         *  if (skipCandle > 0)
         *      j = skipCandle * NET_CANDLE_SIZE;
         *
         *  stCandle c = new stCandle();
         *
         *  for (i = skipCandle; i < candle_cnt; i++)
         *  {
         *      total_candle_save++;
         *      c0 = p1 + postP;	//	move backward
         *      postP -= candleSize;
         *
         *      c.init(p0, c0);
         *
         *      int open = Utils.readInt(data, j) / 100; j += 4;
         *      int close = Utils.readInt(data, j) / 100; j += 4;
         *      int highest = Utils.readInt(data, j) / 100; j += 4;
         *      int lowest = Utils.readInt(data, j) / 100; j += 4;
         *      //j += 4;//floor = di.readInt()/100;		j += 4;
         *      int reference = Utils.readInt(data, j) / 100; j += 4;
         *
         *      int ce = Utils.readInt(data, j) / 100; j += 4;
         *
         *      int volume = Utils.readInt(data, j); j += 4;
         *      int date = Utils.readInt(data, j); j += 4;
         *      //	correct data:
         *      if (open != 0) tmp = open;
         *      if (close != 0 && tmp == 0) tmp = close;
         *      if (highest != 0 && tmp == 0) tmp = highest;
         *      if (lowest != 0 && tmp == 0) tmp = lowest;
         *      if (reference != 0 && tmp == 0) tmp = reference;
         *      if (ce != 0 && tmp == 0) tmp = ce;
         *
         *      if (open == 0) open = tmp;
         *      if (close == 0) close = tmp;
         *      if (highest == 0) highest = tmp;
         *      if (lowest == 0) lowest = tmp;
         *      if (reference == 0) reference = close;
         *
         *      if (ce == 0) ce = tmp;
         *
         *      c.setOpen(open);
         *      c.setClose(close);
         *      c.setCe(ce);
         *      c.setRef(reference);
         *      c.setVolume(volume);
         *      c.setDate(date);
         *      c.setHighest(highest);
         *      c.setLowest(lowest);
         *
         *      if (tmp == 0)	//	reject bad candle
         *      {
         *          i--;
         *          candle_cnt--;
         *      }
         *  }
         *
         *  Utils.writeInt(p0, off+0, total_candle_save);
         *  Utils.writeInt(p0, off+4, floor);
         * }
         */

//	addDataToShare for INDICES only
//	adding data format: int:open, int:close, int highest, int lowest, int floor, int ref, int ce, int volume, int date
//	36bytes for each candle
//	first candle is earlies

        /*
         * void addDataToShare(Share s, byte[] data, int offset, int data_size)
         * {
         *  int candle_cnt = data_size / NET_CANDLE_SIZE;
         *  xDataInput di = mDI;
         *  di.bind(data, offset, data_size);
         *
         *  int tmp = 0;
         *  stCandle tmpCandle;
         *
         *  int lastDate = s.getLastCandleDate();
         *
         *  for (int i = 0; i < candle_cnt; i++)
         *  {
         *      int open = di.readInt() / 10;
         *      int close = di.readInt() / 10;
         *      int highest = di.readInt() / 10;
         *      int lowest = di.readInt() / 10;
         *      int reference = di.readInt() / 10;
         *
         *      int ce = di.readInt() / 10;
         *
         *      int volume = di.readInt();
         *      int date = di.readInt();
         *      //	correct data:
         *      if (open != 0) tmp = open;
         *      if (close != 0 && tmp == 0) tmp = close;
         *      if (highest != 0 && tmp == 0) tmp = highest;
         *      if (lowest != 0 && tmp == 0) tmp = lowest;
         *      if (reference != 0 && tmp == 0) tmp = reference;
         *      if (ce != 0 && tmp == 0) tmp = ce;
         *
         *      if (open == 0) open = tmp;
         *      if (close == 0) close = tmp;
         *      if (highest == 0) highest = tmp;
         *      if (lowest == 0) lowest = tmp;
         *      if (reference == 0) reference = tmp;
         *
         *      if (ce == 0) ce = tmp;
         *      if (tmp == 0)	//	reject bad candle
         *      {
         *          i--;
         *          candle_cnt--;
         *      }
         *
         *      if (lastDate != 0)
         *      {
         *          if (date < lastDate)
         *              continue;		//	skip old candle
         *          else
         *              lastDate = 0;
         *      }
         *
         *      s.addMoreCandle(open, close, reference, highest, lowest, volume, date);
         *  }
         * }
         */
        byte[] seekTo(byte[] code, int[] out_offset)
        {
            if (mBuffer != null)
            {
                //		int i = 0;

                int off = 0;
                int cnt = mShareCnt;    //	share count
                off = HEADER_OFFSET;    //	skip file header
                xDataInput di = mDI;
                di.bind(mBuffer, off, mShareCnt * (SHARE_CODE_LENGTH + 4));
                for (int i = 0; i < cnt; i++)
                {
                    int di_off = di.getCurrentOffset();

                    bool equal = Utils.strcmp(mBuffer, di_off, code, 0, Share.SHARE_CODE_LENGTH);

                    if (equal)
                    {
                        di.skip(Share.SHARE_CODE_LENGTH);
                        int offset = di.readInt();
                        out_offset[0] = mDataOffset + offset;
                        return(mBuffer);
                    }
                    di.skip(SHARE_CODE_LENGTH + 4);
                }
            }

            out_offset[0] = 0;
            //	not found,
            for (int i = 0; i < mNewShareIDs.size(); i++)
            {
                byte[] c = (byte[])mNewShareIDs.elementAt(i);
                if (Utils.strcmp(code, 0, c, 0, Share.SHARE_CODE_LENGTH))
                {
                    return((byte[])mNewShares.elementAt(i));
                }
            }

            byte[] newCode = new byte[Share.SHARE_CODE_LENGTH + 10];
            Utils.strcpy(newCode, code);
            newCode[Share.SHARE_CODE_LENGTH - 1] = 0;

            mNewShareIDs.addElement(newCode);

            byte[] data = new byte[4 + 4 + MAX_CANDLES * CANDLE_SIZE];          //	candle_cnt + floor + dataOfCandle

            //	candle count = 0
            Utils.writeInt(data, 0, 0);
            mNewShares.addElement(data);

            return(data);
        }
Esempio n. 12
0
 public UserDataBlock(int id, byte[] data, int offset, int size)
 {
     this.id   = id;
     blockSize = size + 4;
     if (size > 0 && data != null)
     {
         dataInput = new xDataInput(data, offset, size, true);
     }
     else
     {
         dataInput = new xDataInput(1);
     }
 }
Esempio n. 13
0
        void loadFibonaccie()
        {
            if (!mShouldSaveFile)
            {
                return;
            }
            Share share = mShare;

            if (share == null)
            {
                return;
            }

            string sz = getFilename();

            xDataInput di = xFileManager.readFile(sz, false);

            mTrends.removeAllElements();
            mSelectedTrend = null;
            if (di != null)
            {
                if (di.readInt() == Context.FILE_VERSION)
                {
                    int cnt = di.readInt();
                    for (int i = 0; i < cnt; i++)
                    {
                        stTrendLine t = new stTrendLine();
                        t.type      = di.readByte();
                        t.color     = (uint)di.readInt();
                        t.thickness = di.readFloat();
                        for (int j = 0; j < 3; j++)
                        {
                            t.candleIdx[j] = di.readFloat();
                            Utils.trace("=====loadfile: candle=" + t.candleIdx[j]);
                            t.price[j] = di.readFloat();
                        }

                        if (t.type == DRAW_ABC)
                        {
                            t.data = di.readUTF();
                        }

                        mTrends.addElement(t);
                    }

                    recalcPosition();
                }
            }
            Utils.trace("=====loadfile");
        }
Esempio n. 14
0
        static public void loadData()
        {
            xDataInput di = xFileManager.readFile("global.dat", false);

            if (di != null)
            {
                String str = di.readUTF();

                if (str != null)
                {
                    data = new VTDictionary(str);
                }
            }
        }
Esempio n. 15
0
        static public void saveBlock(int id, xDataInput data, xDataOutput o)
        {
            if (data == null)
            {
                return;
            }
            int blockSize = 4 + data.size();

            if (blockSize + o.size() < DATA_MAX)
            {
                o.writeInt(blockSize);
                o.writeInt(id);
                o.write(data.getBytes(), 0, data.size());
            }
        }
Esempio n. 16
0
        public void setPriceboardDataOfGroup(xDataInput di)
        {
            int cnt = di.readInt();

            if (cnt < 0 || cnt > 5000)
            {
                mHasRefvalue = false;
                return;
            }

            //printf("==c================================\n");
            for (int i = 0; i < cnt; i++)
            {
                int shareID         = di.readInt();
                stPriceboardState p = getPriceboard(shareID);

                if (p == null)
                {
                    break;
                }
                if (p.code.CompareTo("AAA") == 0)
                {
                    Utils.trace("----");
                }
                //==================================

                p.max = di.readInt() / 1000.0f;
                p.min = di.readInt() / 1000.0f;
                for (int k = 0; k < 3; k++)
                {
                    p.remain_buy_price[k]  = di.readInt() / 1000.0f;
                    p.remain_buy_volume[k] = di.readInt();
                }
                for (int k = 0; k < 3; k++)
                {
                    p.remain_sell_price[k]  = di.readInt() / 1000.0f;
                    p.remain_sell_volume[k] = di.readInt();
                }
                p.current_price_1  = di.readInt() / 1000.0f;
                p.current_volume_1 = di.readInt();
                p.change           = di.readInt() / 1000.0f;
                p.changePercent    = (int)((p.change * 100) / p.reference);
                p.total_volume     = di.readInt();

                p.state = 0x0fffffff;
            }
        }
Esempio n. 17
0
        public static void loadAppConfig()
        {
            xDataInput di = xFileManager.readFile("appconfig2", false);

            if (di != null)
            {
                try
                {
                    String s = di.readUTF();
                    appConfig = Newtonsoft.Json.JsonConvert.DeserializeObject <AppConfig>(s);
                }
                catch (Exception e)
                {
                    Utils.trace(e.Message);
                }
            }
        }
Esempio n. 18
0
        void init(xDataInput di)
        {
            mItemCnt = 0;
            if (di == null || di.available() < 10)
            {
                return;
            }
            //=================================================
            //	item_cnt | header session | data
            //=================================================
            //	header session: flag:1 | offset:3 | size:4, total 8 bytes
            //=================================================
            //check signature
            //========================

            const string sig = "ezze";

            for (int i = 0; i < 4; i++)
            {
                if (di.readByte() != sig[i])
                {
                    return;
                }
            }
            int size0 = di.readInt();   //  little endien
            int size  = Utils.convertBigIntToLittleInt(size0);

            if (di.available() != size + 4)    //  last 4 ezze
            {
                return;
            }
            //=======================================
            //	get number of item
            size0    = di.readInt();
            mItemCnt = Utils.convertBigIntToLittleInt(size0);

            if (mItemCnt > 0)
            {
                //	read header
                size    = 64 * mItemCnt;
                mHeader = new byte[size];
                di.read(mHeader, 0, size);
            }

            mData = di;
        }
Esempio n. 19
0
        void loadGainload(xDataInput di)
        {
            int cnt = di.readInt();

            if (cnt > 50)
            {
                cnt = 50;
            }
            GainLossManager m = gainLossManager();

            if (cnt > 0)
            {
                m.clearAll();
            }
            for (int i = 0; i < cnt; i++)
            {
                String code  = di.readUTF();
                int    date  = di.readInt();
                float  price = di.readInt() / 1000.0f;
                int    vol   = di.readInt();

                if (date == 0)
                {
                    date = Utils.getDateAsInt();
                    GlobalData.vars().setValueBool("should_flush_userdata", true);
                }

                if (code != null && code.Length >= 3 && code.Length < 15)
                {
                    if (Context.getInstance() != null && Context.getInstance().mShareManager != null)
                    {
                        int id = Context.getInstance().mShareManager.getShareID(code);
                        if (id > 0)
                        {
                            m.addGainLoss(code, date, price, vol);
                        }
                    }

                    //m.addGainLoss(code, date, price, vol);
                }
            }
            m.sortList();
        }
Esempio n. 20
0
        void loadData()
        {
            xDataInput di = xFileManager.readFile(Context.FILE_STORE_NAME, false);

            if (di != null)
            {
                clearMemory();

                mBufferSize = di.available();
                int ver = di.readInt();
                if (ver == Context.FILE_VERSION)
                {
                    mHeaderSize = di.readInt();
                    mDataOffset = di.readInt();
                    mShareCnt   = di.readInt();

                    mBuffer = di.getBytes();
                }
            }
        }
Esempio n. 21
0
        public static UserDataBlock loadBlock(xDataInput di)
        {
            int blockSize = di.readInt();
            int id        = di.readInt();
            int dataSize  = 0;

            byte[] data = null;
            if (blockSize > 4)
            {
                dataSize = blockSize - 4;
                if (dataSize > DATA_MAX)
                {
                    dataSize = DATA_MAX;
                }
                data = new byte[dataSize];
                di.read(data, 0, dataSize);
            }

            return(new UserDataBlock(id, data, 0, dataSize));
        }
Esempio n. 22
0
        /*
         *  public void setRefPrice(xDataInput di) {
         *      if (true)   //  invalid method and not used anymore
         *          return;
         *      int floor = di.readInt();
         *      int cnt = di.readInt();
         *      if (cnt < 0) {
         *          return;
         *      }
         *      if (cnt > 5000) {
         *          return;
         *      }
         *
         *      if (floor < 1 || floor > 2) {
         *          return;
         *      }
         *
         *      stPriceboardState.alloc_buffer(floor, cnt);
         *
         *      mHasRefvalue = true;
         *      int j = 0;
         *      //====================================================================
         *      byte[] data = di.getBytes();
         *      int off = di.getCurrentOffset();
         *
         *      for (int i = 0; i < cnt; i++) {
         *          j = 0;
         *          stPriceboardState p = stPriceboardState.seekPriceboard(floor, data, off);
         *          //	code
         *          p.setRef(data, off);
         *          off += 8 + 3 * 4;
         *      }
         *  }
         *
         */
        /*
         * public void setZeroPriceboard(xDataInput di)
         * {
         *  String nextfile = di.readUTF();
         *  //nextfile = "0"; //  CHEAT
         *
         *  String date = di.readUTF();
         *  mDate = parseDate(date);
         *
         *  int floor = di.readInt();
         *  int max = 10;
         *  if (floor < 1 || floor > max)
         *  {
         *      return;
         *  }
         *
         *  mNextfile[floor - 1] = nextfile;
         *
         *  //=====================index===================
         *  stPriceboardStateIndex index = getPriceboardIndexOfMarket(floor);
         *  int oldStatus = index.market_status;
         *  index.current_point = di.readInt()/100.0f;
         *  index.changed_point = di.readInt()/100.0f;
         *  index.changed_percent = di.readInt();
         *  index.total_volume = di.readInt();
         *  index.inc_cnt = di.readInt();
         *  index.ce_cnt = di.readInt();
         *  index.dec_cnt = di.readInt();
         *  index.floor_cnt = di.readInt();
         *  index.ref_num = di.readInt();
         *  index.totalGTGD = di.readInt() / 10;			//	dv 1tr
         *  index.market_status = di.readInt();
         *  index.update_time = date;
         *  index.reference = index.current_point - index.changed_point;
         *
         *  index.status_changed = oldStatus != index.market_status ? true : false;
         *  //=====================end of index===================
         *
         *  int cnt = di.readInt();
         *  if (cnt < 0 || cnt > 5000)
         *  {
         *      return;
         *  }
         *
         *  byte[] data = di.getBytes();
         *
         *  int j = 0;
         *  for (int i = 0; i < cnt; i++)
         *  {
         *      stPriceboardState p = getPriceboard(floor, data, di.getCurrentOffset());
         *
         *      //Utils.trace("=====" + c0 + c1 + c2);
         *
         *      if (p == null)
         *      {
         *          di.skip(Share.SHARE_CODE_LENGTH + 54);
         *          continue;
         *      }
         *      di.skip(Share.SHARE_CODE_LENGTH);
         *
         *      p.setZero(di);
         *  }
         * }
         */

        public void setZeroPriceboard2016(xDataInput di)
        {
            String nextfile = di.readUTF();
            //nextfile = "0"; //  CHEAT

            String date = di.readUTF();

            mDate = parseDate(date);

            int floor = di.readInt();
            int max   = 10;

            if (floor < 1 || floor > max)
            {
                return;
            }

            mNextfile[floor - 1] = nextfile;

            //=====================index===================
            stPriceboardStateIndex index = getPriceboardIndexOfMarket(floor);
            int oldStatus = index.market_status;

            index.current_point   = di.readInt() / 100.0f;
            index.changed_point   = di.readInt() / 100.0f;
            index.changed_percent = di.readInt();
            index.total_volume    = di.readInt();
            index.inc_cnt         = di.readInt();
            index.ce_cnt          = di.readInt();
            index.dec_cnt         = di.readInt();
            index.floor_cnt       = di.readInt();
            index.ref_num         = di.readInt();
            index.totalGTGD       = di.readInt() / 10;                  //	dv 1tr
            index.market_status   = di.readInt();
            index.update_time     = date;
            index.reference       = index.current_point - index.changed_point;

            index.status_changed = oldStatus != index.market_status ? true : false;

            //=====================end of index===================

            int cnt = di.readInt();

            if (cnt < 0 || cnt > 5000)
            {
                return;
            }

            byte[] data = di.getBytes();

            int j = 0;

            for (int i = 0; i < cnt; i++)
            {
                //stPriceboardState p = getPriceboard(floor, data, di.getCurrentOffset());

                String            scode = Utils.bytesNullTerminatedToString(data, di.getCurrentOffset(), 20);
                stPriceboardState p     = getPriceboard(scode);

                if (p == null)
                {
                    di.skip(Share.SHARE_CODE_LENGTH + 72);
                    continue;
                }

                p.code = scode;

                //Utils.trace("=====" + c0 + c1 + c2);


                di.skip(Share.SHARE_CODE_LENGTH);

                p.setZero(di);
            }
        }
Esempio n. 23
0
 public static void load(xDataInput di)
 {
 }
Esempio n. 24
0
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            int  w        = Screen.PrimaryScreen.WorkingArea.Width;
            int  h        = Screen.PrimaryScreen.WorkingArea.Height;
            bool miniMode = false;

            if (args.Length > 0)
            {
                miniMode = true;
                return;
            }

            string path = System.IO.Directory.GetCurrentDirectory();// Application.ExecutablePath;

            //System.IO.Directory.SetCurrentDirectory(Application.UserAppDataPath);
            if (!runWithoutInstall)
            {
                path = Application.UserAppDataPath;
            }
            //path

            xFileManager.RootDir = Application.StartupPath;
            xFileManager.UserDir = path + "\\vnChart\\";// Application.StartupPath;
            //xFileManager.UserDir = "C:" + "\\vnChart\\";// Application.StartupPath;
            try
            {
                System.IO.Directory.CreateDirectory(xFileManager.UserDir);
                System.IO.Directory.CreateDirectory(xFileManager.UserDir + "\\data");
                //System.IO.Directory.CreateDirectory("vnChart\\data");
            }
            catch (Exception e)
            {
            }

            //MessageBox.Show("C:\\");

            if (xFileManager.RootDir[xFileManager.RootDir.Length - 1] != '\\')
            {
                xFileManager.RootDir = xFileManager.RootDir + "\\";
            }
            //MessageBox.Show("1");
            MainApplication.mMiniMode = miniMode;
            ////    read windows state
            //MessageBox.Show("11");
            xDataInput di = xFileManager.readFile("windstate", false);
            //MessageBox.Show("12");
            int x = 0;
            int y = 0;

            w = w / 2;
            h = h / 2;
            FormWindowState state = FormWindowState.Maximized;

            //MessageBox.Show("2");
            if (w < 600)
            {
                w = 600;
            }
            if (h < 400)
            {
                h = 400;
            }

            if (di != null)
            {
                state = (FormWindowState)di.readInt();
                x     = di.readInt();
                y     = di.readInt();
                w     = di.readInt();
                h     = di.readInt();
            }
            //MessageBox.Show("3");

            MainApplication app = new MainApplication(w, h);

            app.SetBounds(x, y, w, h, BoundsSpecified.All);
            //app.DesktopLocation = new System.Drawing.Point(x, y);
            app.DesktopLocation = new System.Drawing.Point(x, y);

            app.WindowState   = state;
            app.StartPosition = FormStartPosition.Manual;
            //MessageBox.Show("4");
            Application.Run(app);
            //MessageBox.Show("1000");
            if (app.mShouldSaveWindowState)
            {
                xDataOutput o = new xDataOutput(100);
                if (app.WindowState == FormWindowState.Normal)
                {
                    o.writeInt((int)app.WindowState);
                    o.writeInt(app.DesktopLocation.X);
                    o.writeInt(app.DesktopLocation.Y);
                    o.writeInt(app.Size.Width);
                    o.writeInt(app.Size.Height);
                }
                else
                {
                    o.writeInt((int)app.WindowState);
                    o.writeInt(x);
                    o.writeInt(y);
                    o.writeInt(w);
                    o.writeInt(h);
                }
                xFileManager.saveFile(o, "windstate");
            }
        }
Esempio n. 25
0
        public xResourceManager(string resfile)
        {
            xDataInput di = xFileManager.readFile(resfile, true);

            init(di);
        }
Esempio n. 26
0
        public void setData(xDataInput di)
        {
            //int shareID = in.readShort();
            int cnt = di.readInt();

            if (cnt <= 0)
            {
                return;
            }

            int today = Utils.getDateAsInt();

            if (mDate != today)
            {
                clear();

                mDate = today;
            }

            mHasNewData = true;
            mContext.mTradeHistoryIsSave = false;
            //clear();
            float last = mPriceRef;

            /*
             * if (mTradeTransaction.size() > 0) {
             * stTradeTransaction t = (stTradeTransaction) mTradeTransaction.lastElement();
             * last = t.price;
             * }
             *
             */
            //=============resize buffer if needed
            int newCap = (mTradeTransactionCount + cnt) * FIELD_CNT;    //  1 item == 5 INTs

            if (newCap > mTradeTransactionBuffer.Length)
            {
                int[] p = new int[newCap + 20 * FIELD_CNT];
                Buffer.BlockCopy(mTradeTransactionBuffer, 0, p, 0, mTradeTransactionBuffer.Length * sizeof(int));
                //System.arraycopy(mTradeTransactionBuffer, 0, p, 0, mTradeTransactionBuffer.length);
                mTradeTransactionBuffer = p;
            }

            if (mTradeTransactionCount > 0)
            {
                last = getPrice(mTradeTransactionCount - 1);
            }

            float price;
            int   v;
            float divide = mIsIndex?100.0f:1000.0f;

            //CHEAT if (cnt > 0) cnt = 2;
            for (int i = 0; i < cnt; i++)
            {
                /*
                 * stTradeTransaction t = new stTradeTransaction();
                 *
                 * t.time = in.readInt();
                 *
                 * t.price = in.readInt();
                 * if (!mIsIndex) {
                 * t.price /= 100;
                 * }
                 *
                 * if (t.price == 0) {
                 * t.price = last;
                 * } else {
                 * last = t.price;
                 * }
                 *
                 * t.trade_volume = in.readInt();
                 * t.volume = in.readInt();
                 *
                 */
                setTime(mTradeTransactionCount, di.readInt());

                price = di.readInt() / divide;

                if (price == 0)
                {
                    price = last;
                }
                else
                {
                    last = price;
                }
                setPrice(mTradeTransactionCount, last);

                v = di.readInt();
                setTradeVolume(mTradeTransactionCount, v);
                if (v > mMaxTradeVolume)
                {
                    mMaxTradeVolume = v;
                }
                setVolume(mTradeTransactionCount, di.readInt());

                mTradeTransactionCount++;

                //addTransaction(t);
            }

            if (getTransactionCount() > 0)
            {
                mClose = getPrice(getTransactionCount() - 1);
            }
        }
Esempio n. 27
0
        public void loadUserDataOldVersion(xDataInput di)
        {
            int ver = 0;

            if (di != null)
            {
                ver = di.readInt();
            }

            xVector         mFavorGroups     = shareGroups();
            GainLossManager mGainLossManager = gainLossManager();

            if (di != null && (ver == FILE_VERSION_FAVORITE ||
                               ver == FILE_ONLINE_USERDATA_VER))
            {
                mFavorGroups.removeAllElements();
                mGainLossManager.clearAll();

                int cnt = di.readInt();

                for (int i = 0; i < cnt; i++)
                {
                    stShareGroup g = new stShareGroup();

                    g.load(di);
                    //g.setType(stShareGroup::GROUP_TYPE_FAVORITE);

                    mFavorGroups.addElement(g);
                }

                /*
                 * //  sort
                 * Collections.sort(mFavorGroups, new Comparator<stShareGroup>() {
                 *  @Override
                 *  public int compare(stShareGroup o1, stShareGroup o2) {
                 *      return o1.getName().compareToIgnoreCase(o2.getName());
                 *  }
                 * });
                 */

                //======this version does not support gainloss======
                if (di.available() > 0)
                {
                    ver = di.readInt();
                    if (ver == FILE_GAINLOSS_SIGNAL)
                    {
                        cnt = di.readInt();
                        mGainLossManager.clearAll();
                        for (int i = 0; i < cnt; i++)
                        {
                            String code  = di.readUTF();
                            int    date  = di.readInt();
                            int    price = di.readInt();
                            int    vol   = di.readInt();

                            if (date == 0)
                            {
                                GlobalData.vars().setValueBool("should_flush_userdata", true);
                            }

                            if (code != null && code.Length >= 3)
                            {
                                mGainLossManager.addGainLoss(code, date, price, vol);
                            }
                        }
                        mGainLossManager.sortList();

                        if (mGainLossManager.getTotal() > 0)
                        {
                            mGainLossManager.save();
                        }
                    }
                    ver = di.readInt();
                    if (ver == FILE_FILTER_SET_VERSION)
                    {
                        FilterManager.getInstance().loadFilterSets(di);
                    }
                }
            }
        }
Esempio n. 28
0
 void loadDrawings(xDataInput di)
 {
 }
Esempio n. 29
0
 bool loadFilters(xDataInput di)
 {
     return(FilterManager.getInstance().loadFilterSets(di));
 }