Beispiel #1
0
        /// <summary>
        /// 获取更新数据节点
        /// </summary>
        /// <param name="value"></param>
        /// <param name="logic"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private DataStructure.Parameter.Value getNode(valueType value, Logic <valueType> logic, OperationType type)
        {
            DataStructure.Parameter.Value node = new DataStructure.Parameter.Value(this.node);
            ValueData.Data <valueType> .SetData(ref node.Parameter, value);

            return(logic.GetNode(node, type));
        }
Beispiel #2
0
        internal DataStructure.Parameter.Value GetNode(DataStructure.Parameter.Value node, OperationType type)
        {
            node = new DataStructure.Parameter.Value(new DataStructure.Parameter.Value(node, (uint)(ushort)type + ((uint)(byte)this.type << 16)), OperationParameter.OperationType.Update);
            ValueData.Data <valueType> .SetData(ref node.Parameter, value);

            return(node);
        }
 internal void SetDequeueIdentity(ulong[] identitys)
 {
     DataStructure.Parameter.Value node = new DataStructure.Parameter.Value(this.node, OperationParameter.OperationType.MessageQueueSetDequeueIdentity);
     node.Parameter.SetBinary(identitys);
     client.QueryOnly(new OperationParameter.QueryNode {
         Node = node
     });
 }
Beispiel #4
0
        private DataStructure.Parameter.Value getNode(valueType value, OperationType type)
        {
            DataStructure.Parameter.Value node = new DataStructure.Parameter.Value(this.node);
            ValueData.Data <valueType> .SetData(ref node.Parameter, value);

            node = new DataStructure.Parameter.Value(node, OperationParameter.OperationType.Update);
            node.Parameter.Set((uint)(ushort)type);
            return(node);
        }
Beispiel #5
0
 /// <summary>
 /// 哈希表节点 短路径
 /// </summary>
 /// <param name="node"></param>
 protected Node(DataStructure.Abstract.Node node)
 {
     if (node.Parent != null)
     {
         this.node           = node;
         Client              = node.ClientDataStructure.Client;
         Parameter           = new DataStructure.Parameter.Value(node.Parent);
         Parameter.Parameter = node.Parameter;
         Parameter.Parameter.OperationType = OperationParameter.OperationType.CreateShortPath;
     }
 }
        /// <summary>
        /// 消息分发 客户端消费者
        /// </summary>
        /// <param name="node">消费分发节点</param>
        /// <param name="config">消息分发 读取配置</param>
        /// <param name="log">日志处理</param>
        protected DistributionConsumer(DataStructure.Abstract.Node node, DistributionConsumerConfig config, AutoCSer.ILog log)
        {
            client = node.ClientDataStructure.Client.MasterClient;
            if (client == null)
            {
                throw new InvalidOperationException();
            }
            this.node = node;
            if (config == null)
            {
                Config = defaultConfig;
            }
            else
            {
                config.Format();
                Config = config;
            }
            Log = log ?? client._TcpClient_.Log;

            getSendCountNode = new DataStructure.Parameter.Value(node, OperationParameter.OperationType.MessageQueueGetDequeueIdentity);
            getSendCountNode.Parameter.SetJson((Cache.MessageQueue.DistributionConfig)Config);
            getMessageNode = new DataStructure.Parameter.Value(node, OperationParameter.OperationType.MessageQueueDequeue, config.LoopSendCount);
        }
Beispiel #7
0
        /// <summary>
        /// 消息队列 客户端消费者
        /// </summary>
        /// <param name="client">TCP 客户端</param>
        /// <param name="config">队列数据 读取配置</param>
        /// <param name="log">日志处理</param>
        /// <param name="readerIndexNode"></param>
        protected Consumer(MasterServer.TcpInternalClient client, ConsumerConfig config, AutoCSer.ILog log, DataStructure.Abstract.Node readerIndexNode)
        {
            if (client == null)
            {
                throw new InvalidOperationException();
            }
            this.client = client;
            if (config == null)
            {
                Config = defaultConfig;
            }
            else
            {
                config.Format();
                Config = config;
            }
            Log = log ?? client._TcpClient_.Log;

            getDequeueIdentityNode = new DataStructure.Parameter.Value(readerIndexNode, OperationParameter.OperationType.MessageQueueGetDequeueIdentity);
            getDequeueIdentityNode.Parameter.SetJson((Cache.MessageQueue.ReaderConfig)Config);
            getMessageNode         = new DataStructure.Parameter.Value(readerIndexNode, OperationParameter.OperationType.MessageQueueDequeue);
            setDequeueIdentityNode = new DataStructure.Parameter.Value(readerIndexNode, OperationParameter.OperationType.MessageQueueSetDequeueIdentity);
        }
Beispiel #8
0
 /// <summary>
 /// 整数更新
 /// </summary>
 /// <param name="node">数据参数节点</param>
 internal Integer(DataStructure.Parameter.Value node)
 {
     this.node = node;
 }