Exemplo n.º 1
0
 internal Context(IParent parent, int number, string identifier, ChildrenRetrievalPolicy childrenRetrievalPolicy)
 {
     this.Parent = parent;
     this.Number = number;
     this.Identifier = identifier;
     this.ChildrenRetrievalPolicy = childrenRetrievalPolicy;
 }
Exemplo n.º 2
0
 internal Context(IParent parent, int number, string identifier, ChildrenRetrievalPolicy childrenRetrievalPolicy)
 {
     this.Parent     = parent;
     this.Number     = number;
     this.Identifier = identifier;
     this.ChildrenRetrievalPolicy = childrenRetrievalPolicy;
 }
        private Consumer(S101Client client, int timeout, ChildrenRetrievalPolicy childrenRetrievalPolicy, byte slot)
        {
            this.root = Root <TRoot> .Construct(new Context(null, 0, string.Empty, childrenRetrievalPolicy));

            this.client = client;
            this.childrenRetrievalTimeout  = timeout;
            this.emberDataMessage          = new S101Message(slot, EmberDataCommand);
            this.client.EmberDataReceived += this.receiveQueue.OnMessageReceived;
            this.client.ConnectionLost    += this.receiveQueue.OnConnectionLost;
        }
Exemplo n.º 4
0
        public static async Task <Consumer <TRoot> > CreateAsync(
            S101Client client, int timeout, ChildrenRetrievalPolicy childrenRetrievalPolicy, byte slot)
        {
            if ((childrenRetrievalPolicy < ChildrenRetrievalPolicy.None) ||
                (childrenRetrievalPolicy > ChildrenRetrievalPolicy.All))
            {
                throw new ArgumentOutOfRangeException(nameof(childrenRetrievalPolicy));
            }

            var result = new Consumer <TRoot>(
                client ?? throw new ArgumentNullException(nameof(client)), timeout, childrenRetrievalPolicy, slot);
            await result.RetrieveChildrenAsync();

            result.SendReceiveLoop();
            return(result);
        }
 public static Task <Consumer <TRoot> > CreateAsync(
     S101Client client, int timeout, ChildrenRetrievalPolicy childrenRetrievalPolicy)
 {
     return(CreateAsync(client, timeout, childrenRetrievalPolicy, 0x00));
 }