Esempio n. 1
0
        /**
         * 放入一个元素
         * @param <T>
         * @param name
         * @param t
         */
        public void Put <T>(string name, T t)
        {
            if (name == null)
            {
                throw new ArgumentException("put key can not is null");
            }
            if (t == null)
            {
                throw new ArgumentException("put value can not is null");
            }

            TarsOutputStream _out = new TarsOutputStream();

            _out.setServerEncoding(_encodeName);
            _out.Write(t, 0);
            byte[] sBuffer = TarsUtil.getTarsBufArray(_out.getMemoryStream());

            if (_iVer == Const.PACKET_TYPE_TUP3)
            {
                cachedData.Remove(name);

                if (_new_data.ContainsKey(name))
                {
                    _new_data[name] = sBuffer;
                }
                else
                {
                    _new_data.Add(name, sBuffer);
                }
            }
            else
            {
                List <string> listType = new List <string>();
                CheckObjectType(listType, t);
                string className = BasicClassTypeUtil.TransTypeList(listType);

                Dictionary <string, byte[]> pair = new Dictionary <string, byte[]>(1);
                pair.Add(className, sBuffer);
                cachedData.Remove(name);

                if (_data.ContainsKey(name))
                {
                    _data[name] = pair;
                }
                else
                {
                    _data.Add(name, pair);
                }
            }
        }
Esempio n. 2
0
        /**
         * Put in an element.
         * @param <T>
         * @param name
         * @param value
         */
        public void Put <T>(string name, T value)
        {
            if (name == null)
            {
                throw new ArgumentException("put key can not is null");
            }
            if (value == null)
            {
                throw new ArgumentException("put value can not is null");
            }

            TarsOutputStream _out = new TarsOutputStream();

            _out.SetServerEncoding(_encodeName);
            _out.Write(value, 0);
            byte[] sBuffer = TarsUtil.GetTarsBufferArray(_out.GetMemoryStream());

            if (_iVer == Const.TUP_VERSION_3)
            {
                cachedData.Remove(name);
                if (_new_data.ContainsKey(name))
                {
                    _new_data[name] = sBuffer;
                }
                else
                {
                    _new_data.Add(name, sBuffer);
                }
            }
            else
            {
                List <string> listType = new List <string>();
                CheckObjectType(listType, value);
                string className = BasicClassTypeUtil.TransTypeList(listType);

                Dictionary <string, byte[]> map = new Dictionary <string, byte[]>(1);
                map.Add(className, sBuffer);
                cachedData.Remove(name);

                if (_data.ContainsKey(name))
                {
                    _data[name] = map;
                }
                else
                {
                    _data.Add(name, map);
                }
            }
        }