Ejemplo n.º 1
0
        private INativeDataHandler GetNativeDataHandler(IDataHandler handler)
        {
            INativeDataHandler nativeDataHandler = handler as INativeDataHandler;

            if (nativeDataHandler != null)
            {
                return(nativeDataHandler);
            }
            IManagedDataHandler managedDataHandler = handler as IManagedDataHandler;

            if (managedDataHandler != null)
            {
                return(new NativeDataHandlerRouter(managedDataHandler));
            }
            return(null);
        }
Ejemplo n.º 2
0
 public void Register(byte dataMarker, IDataHandler handler)
 {
     lock (_handlers)
     {
         VerifyDisposed();
         if (IsLocked)
         {
             throw new TempException(string.Format("Gateway is already locked. Cannot register handler for marker {0}", dataMarker));
         }
         if (_handlers.ContainsKey(dataMarker))
         {
             throw new TempException(string.Format("Data handler with marker {0} is already registered", dataMarker));
         }
         INativeDataHandler nativeDataHandler = GetNativeDataHandler(handler);
         if (nativeDataHandler == null)
         {
             return;
         }
         _handlers.Add(dataMarker, nativeDataHandler);
         _agentLibrary.GatewayServerRegisterHandler(_token, dataMarker, nativeDataHandler.DataHandlerPointer);
     }
 }
 public ManagedDataHandlerRouter(INativeDataHandler nativeDataHandler)
 {
     _handler = nativeDataHandler.DataHandlerPointer;
 }