public Collect <Hashtable> page(int pagesize)
        {
            Db c = new Db(getName());

            HashtableUtil.extend(true, c.mOption, mOption);

            // 总长度
            long count = c.count();
            Collect <Hashtable> result = new Collect <Hashtable>(count, pagesize);

            this.limit(result.firstRow, result.listRows);
            builder.setPage(true);
            selectCollect(result);
            builder.setPage(false);
            return(result);
        }
Ejemplo n.º 2
0
        public void Process()
        {
            try
            {
                ClientManager clientManager = null;
                lock (ConnectionManager.ConnectionTable) clientManager = (ClientManager)ConnectionManager.ConnectionTable[this._clientId];
                if (clientManager != null)
                {
                    byte[] table = new byte[0];
                    if (this._isDotNetClient)
                    {
                        if (_newmap != null)
                        {
                            if (this._newmap.Buffer == null)
                            {
                                NewHashmap.Serialize(this._newmap, this._cacheId, true);
                            }
                            table = this._newmap.Buffer;
                        }
                    }
                    else
                    {
                        if (_newmap != null)
                        {
                            String        map        = HashtableUtil.ToString(this._newmap.Map);
                            String        members    = HashtableUtil.ToString(this._newmap.Members);
                            String        lastViewId = this._newmap.LastViewId.ToString();
                            StringBuilder toStr      = new StringBuilder();
                            toStr.Append(map);
                            toStr.Append("\t");
                            toStr.Append(members);
                            toStr.Append("\t");
                            toStr.Append(lastViewId);
                            toStr.Append("\t");
                            toStr.Append(this._newmap.UpdateMap);

                            table = HelperFxn.ToBytes(toStr.ToString());
                        }
                    }

                    Alachisoft.NCache.Common.Protobuf.Response response = new Alachisoft.NCache.Common.Protobuf.Response();
                    Alachisoft.NCache.Common.Protobuf.HashmapChangedEventResponse hashmapChangedResponse = new Alachisoft.NCache.Common.Protobuf.HashmapChangedEventResponse();

                    hashmapChangedResponse.table = table;

                    response.hashmapChanged = hashmapChangedResponse;
                    response.responseType   = Alachisoft.NCache.Common.Protobuf.Response.Type.HASHMAP_CHANGED_EVENT;

                    IList serializedResponse = Alachisoft.NCache.Common.Util.ResponseHelper.SerializeResponse(response);

                    ConnectionManager.AssureSend(clientManager, serializedResponse, Alachisoft.NCache.Common.Enum.Priority.High);
                }
            }
            catch (Exception exc)
            {
                if (SocketServer.Logger.IsErrorLogsEnabled)
                {
                    SocketServer.Logger.NCacheLog.Error("HashmapChangedEvent.Process", exc.ToString());
                }
            }
        }