Ejemplo n.º 1
0
        private Func <object, Task <object> > WrapHandler <T1, T2, T3, T4, T5, T6>(Func <T1, T2, T3, T4, T5, T6, Task> function)
        {
            Func <object, Task <object> > wrappedHandler = async(input) => {
                var parameters = (object[])input;

                await function((T1)parameters[0], (T2)parameters[1], (T3)parameters[2],
                               (T4)parameters[3], (T5)parameters[4], (T6)parameters[5]);

                return(DevicePayloadFactory.Create(this));
            };

            return(wrappedHandler);
        }
Ejemplo n.º 2
0
        public async Task Provision <T>(T device) where T : Device
        {
            device.Server = Server;
            EnsureType(device);

            await _provision(DevicePayloadFactory.Create(device));

            if (device is IInitializableAsync)
            {
                await((IInitializableAsync)device).Initialize();
            }
            else if (device is IInitializable)
            {
                ((IInitializable)device).Initialize();
            }
        }
Ejemplo n.º 3
0
        public async Task Discover <T>(T device) where T : Device
        {
            device.Server = Server;
            EnsureType(device);

            MemoryRegistry.Instance.Save(device);

            await _discover(DevicePayloadFactory.Create(device));

            if (device is IInitializableAsync)
            {
                await((IInitializableAsync)device).Initialize();
            }
            else if (device is IInitializable)
            {
                ((IInitializable)device).Initialize();
            }
        }
Ejemplo n.º 4
0
 public async Task Prepare <T>(T device) where T : Device
 {
     await _prepare.Invoke(DevicePayloadFactory.Create(device));
 }