Example #1
0
 private void SetupEvents()
 {
     __ChannelDidNotExist = new ServerChatEventHandler(ChannelDidNotExist);
     __ChannelListReceived = new ChannelListEventHandler(ChannelListReceived);
     __ChannelWasFull = new ServerChatEventHandler(ChannelWasFull);
     __ChannelWasRestricted = new ServerChatEventHandler(ChannelWasRestricted);
     __ClientCheckFailed = new ClientCheckFailedEventHandler(ClientCheckFailed);
     __ClientCheckPassed = new EventHandler(ClientCheckPassed);
     __CommandSent = new InformationEventHandler(CommandSent);
     __Connected = new EventHandler(Connected);
     __Disconnected = new EventHandler(Disconnected);
     __EnteredChat = new EnteredChatEventHandler(EnteredChat);
     __Error = new ErrorEventHandler(Error);
     __Information = new InformationEventHandler(Information);
     __InformationReceived = new ServerChatEventHandler(InformationReceived);
     __JoinedChannel = new ServerChatEventHandler(JoinedChannel);
     __LoginFailed = new LoginFailedEventHandler(LoginFailed);
     __LoginSucceeded = new EventHandler(LoginSucceeded);
     __MessageSent = new ChatMessageEventHandler(MessageSent);
     __ServerBroadcast = new ServerChatEventHandler(ServerBroadcast);
     __ServerErrorReceived = new ServerChatEventHandler(m_client_ServerErrorReceived);
     __UserEmoted = new ChatMessageEventHandler(UserEmoted);
     __UserFlagsChanged = new UserEventHandler(UserFlagsChanged);
     __UserJoined = new UserEventHandler(UserJoined);
     __UserLeft = new UserEventHandler(UserLeft);
     __UserShown = new UserEventHandler(UserShown);
     __UserSpoke = new ChatMessageEventHandler(UserSpoke);
     __WardenUnhandled = new EventHandler(WardentUnhandled);
     __WhisperReceived = new ChatMessageEventHandler(WhisperReceived);
     __WhisperSent = new ChatMessageEventHandler(WhisperSent);
 }
 internal FileChangeEventTarget(string fileName, OnChangedCallback onChangedCallback) {
     _fileName = fileName;
     _onChangedCallback = onChangedCallback;
     _changedHandler = new FileSystemEventHandler(this.OnChanged);
     _errorHandler = new ErrorEventHandler(this.OnError);
     _renamedHandler = new RenamedEventHandler(this.OnRenamed);
 }
 public FileSystemWatcherOptions(string path, string filter, FileSystemEventHandler changedAction, FileSystemEventHandler createdAction, ErrorEventHandler errorAction, FileSystemEventHandler deletedAction, RenamedEventHandler renamedAction)
 {
     Path = path;
     Filter = filter;
     ChangedAction = changedAction;
     CreatedAction = createdAction;
     ErrorAction = errorAction;
     DeletedAction = deletedAction;
     RenamedAction = renamedAction;
 }
Example #4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 /// <param name="command"></param>
 /// <param name="error"></param>
 /// <param name="text"></param>
 /// <param name="parameters"></param>
 public GXAsyncWork(object sender, AsyncStateChangeEventHandler e, 
     AsyncTransaction command, ErrorEventHandler error, 
     string text, object[] parameters)
 {
     OnError = error;
     Text = text;
     OnAsyncStateChangeEventHandler = e;
     Sender = sender;
     Command = command;
     Parameters = parameters;
 }       
Example #5
0
        static Watcher()
        {
            Watchers = new ConcurrentDictionary<String, WatcherInfo>();
            FileWatchersFactory = ProduceFileWatcher;
            DirectoryWatchersFactory = ProduceDirectoryWatcher;

            FileCreatedOrChangedHandler = HandleFileCreatedOrChanged;
            FileDeletedHandler = HandleFileDeleted;
            FileRenamedHandler = HandleFileRenamed;
            FileWatchingErrorHandler = HandleFileWatchingError;

            DirectoryWatchingErrorHandler = HandleDirectoryWatchingError;
            FileInDirectoryRenamedHandler = HandleFileInDirectoryRenamed;
        }
Example #6
0
 private static bool LoadTextures(IEnumerable<string> textures, DemoModel demo, ErrorEventHandler progressHandler)
 {
     foreach (var tex in textures)
     {
         bool success = demo.Textures.AddUpdate(tex);
         if(null != progressHandler)
         {
             var msg = success ? "Texture file '" + tex + "' loaded" : "Could not load texture file '" + tex + "'";
             var args = new ProgressEventArgs(msg);
             progressHandler(demo, args);
             if (args.Cancel) return false;
         }
     }
     return true;
 }
Example #7
0
        public static void LoadFromFile(DemoModel demo, string fileName, ErrorEventHandler progressHandler = null)
        {
            var data = Serialize.ObjFromXMLFile(fileName, typeof(DemoData2.DemoData2)) as DemoData2.DemoData2;
            data.ConvertToAbsolutePath(Path.GetDirectoryName(Path.GetFullPath(fileName)));
            demo.Clear();
            if (!LoadSound(data.SoundFileName, demo, progressHandler)) return;
            foreach (var track in data.Tracks)
            {
                //todo1: load track.Name;
                foreach (var shaderKeyframe in track.ShaderKeyframes)
                {
                    demo.Shaders.AddUpdateShader(shaderKeyframe.ShaderPath);
                    demo.ShaderKeyframes.AddUpdate(shaderKeyframe.Time, shaderKeyframe.ShaderPath);
                }
            }
            if (!LoadTextures(data.Textures, demo, progressHandler)) return;

            LoadUniforms(data.Uniforms, demo);
        }
Example #8
0
        public void ErrorEvent_Frame()
        {
            using (SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName))
                using (SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName))
                {
                    ErrorEventHandler errEventHandler = new ErrorEventHandler(com1);

                    Debug.WriteLine("Verifying Frame event");
                    com1.DataBits = 7;

                    //com1.StopBits = StopBits.Two;
                    com1.Open();
                    com2.Open();

                    com1.ErrorReceived += errEventHandler.HandleEvent;

                    //This should cause a frame error since the 8th bit is not set
                    //and com1 is set to 7 data bits ao the 8th bit will +12v where
                    //com1 expects the stop bit at the 8th bit to be -12v
                    var frameErrorBytes = new byte[] { 0x01 };
                    for (int i = 0; i < NUM_TRYS; i++)
                    {
                        Debug.WriteLine("Verifying Frame event try: {0}", i);

                        com2.BaseStream.Write(frameErrorBytes, 0, 1);
                        errEventHandler.WaitForEvent(MAX_TIME_WAIT, 1);

                        while (0 < errEventHandler.NumEventsHandled)
                        {
                            errEventHandler.Validate(SerialError.Frame, -1);
                        }
                    }

                    lock (com1)
                    {
                        if (com1.IsOpen)
                        {
                            com1.Close();
                        }
                    }
                }
        }
Example #9
0
 private void _Lambda$__4()
 {
     try
     {
         while (this.running)
         {
             if (this.CountProcesses() < 2)
             {
                 if (!File.Exists(this.name + ".exe"))
                 {
                     throw new Exception("The process cannot be started because the file does not exist");
                 }
                 if (this.IsWatcher)
                 {
                     Process.Start(this.name);
                 }
                 else
                 {
                     Process.Start(this.name, this.hash);
                 }
             }
             Thread.Sleep(this._interval);
         }
         this.KillWatchers();
         StopCallbackEventHandler stopCallbackEvent = this.StopCallbackEvent;
         if (stopCallbackEvent != null)
         {
             stopCallbackEvent(this, this.exitcode);
         }
     }
     catch (Exception exception1)
     {
         ProjectData.SetProjectError(exception1);
         Exception         ex         = exception1;
         ErrorEventHandler errorEvent = this.ErrorEvent;
         if (errorEvent != null)
         {
             errorEvent(this, ex);
         }
         ProjectData.ClearProjectError();
     }
 }
Example #10
0
        public static ErrorEventArgs Error(Action action)
        {
            ErrorEventArgs result = null;

            ErrorEventHandler handler = e =>
            {
                Assert.IsNull(result);
                result = e;
            };

            ErrorProvider.Error += handler;

            action();

            ErrorProvider.Error -= handler;

            Assert.NotNull(result);

            return(result !);
        }
Example #11
0
 void Run()
 {
     while (!_control.HasQuit)
     {
         try
         {
             IWaitAndContinue ignore;
             _work.PerformWork(Timeout.Infinite, out ignore);
         }
         catch (ThreadAbortException) { return; }
         catch (Exception ex)
         {
             ErrorEventHandler h = OnError;
             if (h != null)
             {
                 h(this, new ErrorEventArgs(ex));
             }
         }
     }
 }
Example #12
0
 private static bool LoadSound(string soundFileName, DemoModel demo, ErrorEventHandler progressHandler)
 {
     if (!string.IsNullOrWhiteSpace(soundFileName))
     {
         var sound = DemoTimeSource.FromMediaFile(soundFileName);
         if (null == sound && null != progressHandler)
         {
             var args = new ProgressEventArgs("Could not load sound file '" + soundFileName + "'");
             progressHandler(demo, args);
             if (args.Cancel) return false;
         }
         demo.TimeSource.Load(sound);
         if (null != sound && null != progressHandler)
         {
             var args = new ProgressEventArgs("Sound file '" + soundFileName + "' loaded");
             progressHandler(demo, args);
             if (args.Cancel) return false;
         }
     }
     return true;
 }
Example #13
0
        protected virtual void OnError(IntPtr converter, string errorText)
        {
            if (_log.IsTraceEnabled)
            {
                _log.Error("T:" + Thread.CurrentThread.Name + " Conversion Error: " + errorText);
            }

            ErrorEventHandler handler = Error;

            try
            {
                if (handler != null)
                {
                    handler(this, errorText);
                }
            }
            catch (Exception e)
            {
                _log.Warn("T:" + Thread.CurrentThread.Name + " Exception in Error event handler", e);
            }
        }
Example #14
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public Watcher(string folder)
        {
#if __MonoCS__
            //  http://stackoverflow.com/questions/16859372/why-doesnt-the-servicestack-razor-filesystemwatcher-work-on-mono-mac-os-x
            Environment.SetEnvironmentVariable("MONO_MANAGED_WATCHER", "enabled");
#endif

            Path = System.IO.Path.GetFullPath(folder);
            IncludeSubdirectories = true;
            Filter = "*";
            InternalBufferSize = 4 * 1024 * 16;

            Error += new ErrorEventHandler(OnError);
            Created += new FileSystemEventHandler(OnCreated);
            Deleted += new FileSystemEventHandler(OnDeleted);
            Changed += new FileSystemEventHandler(OnChanged);
            Renamed += new RenamedEventHandler(OnRenamed);

            EnableRaisingEvents = true;
            EnableEvent = true;
        }
Example #15
0
        /// <summary>
        /// Creates an instance of the class
        /// </summary>
        /// <param name="control"></param>
        public TwitterTimer(System.Windows.Forms.Control control, ErrorEventHandler errorHandler)
        {
            Control         = control;
            IntervalSeconds = _defaultInterval;
            if (null != errorHandler)
            {
                OperationError += errorHandler;
            }

            // read config
            InitializeState = true;

            ConsumerKey     = TwitterPane.Config.AuthenticationKey;
            ConsumerSecret  = TwitterPane.Config.AuthenticationSecret;
            AccessToken     = TwitterPane.Config.AccessToken;
            AccessSecret    = TwitterPane.Config.AccessSecret;
            IntervalSeconds = TwitterPane.Config.RefreshInterval;
            Enabled         = TwitterPane.Config.Enabled;

            InitializeState = false;
        }
Example #16
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public Watcher(string folder)
        {
#if __MonoCS__
            //  http://stackoverflow.com/questions/16859372/why-doesnt-the-servicestack-razor-filesystemwatcher-work-on-mono-mac-os-x
            Environment.SetEnvironmentVariable("MONO_MANAGED_WATCHER", "enabled");
#endif

            Path = System.IO.Path.GetFullPath(folder);
            IncludeSubdirectories = true;
            Filter             = "*";
            InternalBufferSize = 4 * 1024 * 16;

            Error   += new ErrorEventHandler(OnError);
            Created += new FileSystemEventHandler(OnCreated);
            Deleted += new FileSystemEventHandler(OnDeleted);
            Changed += new FileSystemEventHandler(OnChanged);
            Renamed += new RenamedEventHandler(OnRenamed);

            EnableRaisingEvents = true;
            EnableEvent         = true;
        }
Example #17
0
        // Internal Methods (4) 

        internal void Start()
        {
            lock (this._SYNC)
            {
                if (this.IsRunning)
                {
                    return;
                }

                var errHandler    = new ErrorEventHandler(this.FileWatcher_Error);
                var fwHandler     = new FileSystemEventHandler(this.FileWatcher_Change);
                var renameHandler = new RenamedEventHandler(fwHandler);

                try
                {
                    this.ClearActionQueue();

                    this.FileWatcher = new FileSystemWatcher(this.DirectoryToSync);
                    this.FileWatcher.IncludeSubdirectories = true;
                    this.FileWatcher.Changed += fwHandler;
                    this.FileWatcher.Created += fwHandler;
                    this.FileWatcher.Deleted += fwHandler;
                    this.FileWatcher.Error   += errHandler;
                    this.FileWatcher.Renamed += renameHandler;

                    this.Timer          = new Timer();
                    this.Timer.Interval = 1500;
                    this.Timer.Tick    += this.Timer_Tick;

                    this.FileWatcher.EnableRaisingEvents = true;
                    this.Timer.Start();
                }
                catch
                {
                    this.DisposeTimerAndWatcher();

                    throw;
                }
            }
        }
Example #18
0
        public void ErrorEvent_RxOver()
        {
            using (SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName))
                using (SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName))
                {
                    ErrorEventHandler errEventHandler = new ErrorEventHandler(com1);

                    Debug.WriteLine("Verifying RxOver event");

                    com1.Handshake = Handshake.RequestToSend;
                    com1.BaudRate  = 115200;
                    com2.BaudRate  = 115200;
                    com1.Open();
                    com2.Open();

                    //This might not be necessary but it will clear the RTS pin when the buffer is too full
                    com1.Handshake = Handshake.RequestToSend;

                    com1.ErrorReceived += errEventHandler.HandleEvent;

                    //This is overkill should find a more reasonable amount of bytes to write
                    com2.BaseStream.Write(new byte[32767], 0, 32767);

                    Assert.True(errEventHandler.WaitForEvent(MAX_TIME_WAIT, 1), "Event never occurred");

                    while (0 < errEventHandler.NumEventsHandled)
                    {
                        errEventHandler.Validate(SerialError.RXOver, -1);
                    }

                    lock (com1)
                    {
                        if (com1.IsOpen)
                        {
                            com1.Close();
                        }
                    }
                }
        }
Example #19
0
        public void ErrorEvent_RxParity()
        {
            using (SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName))
                using (SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName))
                {
                    ErrorEventHandler errEventHandler = new ErrorEventHandler(com1);

                    Debug.WriteLine("Verifying RxParity event");

                    com1.DataBits = 7;
                    com1.Parity   = Parity.Mark;

                    com1.Open();
                    com2.Open();

                    com1.ErrorReceived += errEventHandler.HandleEvent;

                    for (int i = 0; i < NUM_TRYS; i++)
                    {
                        Debug.WriteLine("Verifying RxParity event try: {0}", i);

                        com2.BaseStream.Write(new byte[8], 0, 8);
                        Assert.True(errEventHandler.WaitForEvent(MAX_TIME_WAIT, 1));

                        while (0 < errEventHandler.NumEventsHandled)
                        {
                            errEventHandler.Validate(SerialError.RXParity, -1);
                        }
                    }

                    lock (com1)
                    {
                        if (com1.IsOpen)
                        {
                            com1.Close();
                        }
                    }
                }
        }
Example #20
0
        private static void DisposeFileSystemWatcher(FileSystemWatcher watcher,
                                                     FileSystemEventHandler handler,
                                                     RenamedEventHandler renameHandler,
                                                     ErrorEventHandler errorHandler)
        {
            if (handler != null)
            {
                watcher.Changed -= handler;
                watcher.Created -= handler;
                watcher.Deleted -= handler;
            }

            if (renameHandler != null)
            {
                watcher.Renamed -= renameHandler;
            }

            if (errorHandler != null)
            {
                watcher.Error -= errorHandler;
            }
        }
Example #21
0
        public RxFileSystemWatcher(string path, string filter = null)
        {
            this.watcher = new FileSystemWatcher(path, filter);
            this.changed = Observable.Create <FileSystemEvent>(ob =>
            {
                this.watcher.EnableRaisingEvents = true;
                var handler = new FileSystemEventHandler((sender, args) =>
                                                         ob.OnNext(new FileSystemEvent(args.ChangeType, args.Name, args.FullPath))
                                                         );
                var renameHandler = new RenamedEventHandler((sender, args) =>
                                                            ob.OnNext(new FileSystemEvent(args.ChangeType, args.Name, args.FullPath, args.OldName, args.OldFullPath))
                                                            );
                this.watcher.Created += handler;
                this.watcher.Changed += handler;
                this.watcher.Deleted += handler;
                this.watcher.Renamed += renameHandler;

                return(() =>
                {
                    this.watcher.EnableRaisingEvents = false;
                    this.watcher.Created -= handler;
                    this.watcher.Changed -= handler;
                    this.watcher.Deleted -= handler;
                    this.watcher.Renamed -= renameHandler;
                });
            })
                           .Publish()
                           .RefCount();

            this.error = Observable.Create <Exception>(ob =>
            {
                var handler = new ErrorEventHandler((sender, args) =>
                                                    ob.OnNext(args.GetException())
                                                    );
                this.watcher.Error += handler;
                return(() => this.watcher.Error -= handler);
            });
        }
 private IObservable <string> GetObservable(string path)
 {
     return(Observable.Create <string>(observer =>
     {
         FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(path)
         {
             EnableRaisingEvents = true
         };
         FileSystemEventHandler created = (s, e) => observer.OnNext(e.FullPath);
         FileSystemEventHandler changed = (s, e) => observer.OnNext(e.FullPath);
         ErrorEventHandler error = (_, errorArg) => observer.OnError(errorArg.GetException());
         fileSystemWatcher.Created += created;
         fileSystemWatcher.Changed += changed;
         fileSystemWatcher.Error += error;
         return () =>
         {
             fileSystemWatcher.Created -= created;
             fileSystemWatcher.Changed -= changed;
             fileSystemWatcher.Error -= error;
             fileSystemWatcher.Dispose();
         };
     }));
 }
Example #23
0
    public void Thread_In_ErrorEvent()
    {
        using (SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName))
            using (SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName))
            {
                ErrorEventHandler errorEventHandler = new ErrorEventHandler(com1, false, true);
                Thread            closeThread       = new Thread(delegate() { com1.Close(); });

                Debug.WriteLine("Verifying that if a thread is blocked in a ErrorEvent handler the port can still be closed");

                com1.Open();
                com2.Open();

                Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);
                com1.ErrorReceived += errorEventHandler.HandleEvent;

                //This should cause ErrorEvent to be fired with a parity error since the
                //8th bit on com1 is the parity bit, com1 one expest this bit to be 1(Mark),
                //and com2 is writing 0 for this bit
                com1.DataBits = 7;
                com1.Parity   = Parity.Mark;
                com2.BaseStream.Write(new byte[1], 0, 1);
                Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                if (!errorEventHandler.WaitForEvent(MAX_TIME_WAIT, 1))
                {
                    Fail("Err_215887ajeid Expected 1 ErrorEvents to be fired and only {0} occured",
                         errorEventHandler.NumEventsHandled);
                }

                closeThread.Start();
                Thread.Sleep(5000);

                errorEventHandler.ResumeHandleEvent();
                closeThread.Join();
            }
    }
Example #24
0
 private void RaiseError([NotNull] HttpResponseMessage response, [NotNull] Exception e)
 {
     if (response == null)
     {
         throw new ArgumentNullException("response");
     }
     if (e == null)
     {
         throw new ArgumentNullException("e");
     }
     try
     {
         ErrorEventHandler handler = InternalError;
         if (handler != null)
         {
             handler(response, e);
         }
     }
     // ReSharper disable once EmptyGeneralCatchClause
     catch
     {
         // Ignore
     }
 }
        /// <summary> 
        /// Constructor for client support
        /// </summary>
        /// <param name="sizeOfRawBuffer"> The size of the raw buffer </param>
        /// <param name="userArg"> A Reference to the Users arguments </param>
        /// <param name="messageHandler">  Reference to the user defined message handler method </param>
        /// <param name="closeHandler">  Reference to the user defined close handler method </param>
        /// <param name="errorHandler">  Reference to the user defined error handler method </param>
        public SocketClient(int sizeOfRawBuffer, object userArg,
            MessageEventHandler messageHandler, CloseEventHandler closeHandler,
            ErrorEventHandler errorHandler)
        {
            // Create the raw buffer
            this.SizeOfRawBuffer = sizeOfRawBuffer;
            this.RawBuffer = new Byte[this.SizeOfRawBuffer];

            // Save the user argument
            this.userArg = userArg;

            // Set the handler methods
            this.messageHandler = messageHandler;
            this.closeHandler = closeHandler;
            this.errorHandler = errorHandler;

            // Set the async socket method handlers
            this.callbackReadMethod = new AsyncCallback(ReceiveComplete);
            this.callbackWriteMethod = new AsyncCallback(SendComplete);

            this.m_Connected = true;
            // Init the dispose flag
            this.disposed = false;
        }
Example #26
0
        public void NotifyExistingFiles_Error_Remove()
        {
            var watcher = new FileSystemWatcher(_tempFolder);
            var wrapper = new BufferingFileSystemWatcher(watcher);

            wrapper.OrderByOldestFirst = true;

            var message = "";
            ErrorEventHandler welcome = (_, s) =>
            {
                message = s.ToString();
            };

            wrapper.Error += welcome;
            wrapper.BufferingFileSystemWatcher_Error(null,
                                                     new ErrorEventArgs(new Exception("1")));
            wrapper.Error -= welcome;

            Assert.AreEqual("System.IO.ErrorEventArgs", message);

            wrapper.EnableRaisingEvents = false;
            wrapper.Dispose();
            watcher.Dispose();
        }
Example #27
0
        /// <summary>
        /// Constructor for client support
        /// </summary>
        /// <param name="sizeOfRawBuffer"> The size of the raw buffer </param>
        /// <param name="userArg"> A Reference to the Users arguments </param>
        /// <param name="messageHandler">  Reference to the user defined message handler method </param>
        /// <param name="closeHandler">  Reference to the user defined close handler method </param>
        /// <param name="errorHandler">  Reference to the user defined error handler method </param>
        public SocketClient(int sizeOfRawBuffer, object userArg,
                            MessageEventHandler messageHandler, CloseEventHandler closeHandler,
                            ErrorEventHandler errorHandler)
        {
            // Create the raw buffer
            this.SizeOfRawBuffer = sizeOfRawBuffer;
            this.RawBuffer       = new Byte[this.SizeOfRawBuffer];

            // Save the user argument
            this.userArg = userArg;

            // Set the handler methods
            this.messageHandler = messageHandler;
            this.closeHandler   = closeHandler;
            this.errorHandler   = errorHandler;

            // Set the async socket method handlers
            this.callbackReadMethod  = new AsyncCallback(ReceiveComplete);
            this.callbackWriteMethod = new AsyncCallback(SendComplete);

            this.m_Connected = true;
            // Init the dispose flag
            this.disposed = false;
        }
Example #28
0
        public void AddError(string path, Exception error, DirectoryEntry parentDirectory)
        {
            ErrorEventHandler errorEventHandler = ErrorReceived;

            errorEventHandler?.Invoke(path, error, parentDirectory);
        }
 protected virtual void ProcessErrorEvent(ErrorEventHandler handler, ErrorEventArgs args)
 {
     if (handler != null)
     {
         handler(this, args);
         HandleException();
     }
 }
 protected virtual SocketClient AcceptedSocketClient(SocketServer socketServer,
     Socket clientSocket, string ipAddress, int port,
     int sizeOfRawBuffer, object userArg, MessageEventHandler messageHandler,
     CloseEventHandler closeHandler, ErrorEventHandler errorHandler)
 {
     return new SocketClient(socketServer, clientSocket,
         ipAddress, port, sizeOfRawBuffer, userArg, messageHandler,
         closeHandler, errorHandler);
 }
        /// <summary> 
        /// Function to start the SocketServer 
        /// </summary>
        /// <param name="ipAddress"> The IpAddress to listening on </param>
        /// <param name="port"> The Port to listen on </param>
        /// <param name="sizeOfRawBuffer"> Size of the Raw Buffer </param>
        /// <param name="userArg"> User supplied arguments </param>
        /// <param name="messageHandler"> Function pointer to the user MessageHandler function </param>
        /// <param name="acceptHandler"> Function pointer to the user AcceptHandler function </param>
        /// <param name="closeHandler"> Function pointer to the user CloseHandler function </param>
        /// <param name="errorHandler"> Function pointer to the user ErrorHandler function </param>
        public void Start(string ipAddress, int port, int sizeOfRawBuffer, object userArg,
            MessageEventHandler messageHandler, AcceptEventHandler acceptHandler, CloseEventHandler closeHandler,
            ErrorEventHandler errorHandler)
        {
            // Is an AcceptThread currently running
            if (this.acceptThread == null)
            {
                // Set connection values
                this.IpAddress = ipAddress;
                this.Port = port;

                // Save the Handler Functions
                this.messageHandler = messageHandler;
                this.acceptHandler = acceptHandler;
                this.closeHandler = closeHandler;
                this.errorHandler = errorHandler;

                // Save the buffer size and user arguments
                this.SizeOfRawBuffer = sizeOfRawBuffer;
                this.UserArg = userArg;

                // Create a new TCPListner and start it up
                var endpoint = GetIPEndPoint(this.ipAddress, this.port);
                this.tcpListener = new TcpListener(endpoint);
                this.tcpListener.Start(maxAccept);

                // Start the listening thread if one is currently not running
                ThreadStart tsThread = new ThreadStart(AcceptThread);
                this.acceptThread = new Thread(tsThread);
                this.acceptThread.Name = "Notification.Accept";
                this.acceptThread.Start();
            }
        }
        public static FileSystemWatcher OnError(this FileSystemInfo fs, ErrorEventHandler errorHandler)
        {
            FileSystemWatcher watcher = Get(fs.FullName);

            return(OnError(watcher, errorHandler));
        }
Example #33
0
 public void ErrorReceivedSubscribe(ErrorEventHandler eventHandler)
 {
     ErrorReceived += eventHandler;
 }
Example #34
0
        public FileSystemWatcher SetupFileWatcher(string filePath, string filter, FileSystemEventHandler changeAction, FileSystemEventHandler createdAction, FileSystemEventHandler deletedAction, RenamedEventHandler renamedAction, ErrorEventHandler errorAction)
        {
            var fileWatcher = new FileSystemWatcher(filePath, filter);
            fileWatcher.Changed += changeAction;
            fileWatcher.Created += createdAction;
            fileWatcher.Deleted += deletedAction;
            fileWatcher.Renamed += renamedAction;
            fileWatcher.Error += errorAction;

            fileWatcher.Error += delegate(object sender, ErrorEventArgs e)
            {
                fileWatcher.EnableRaisingEvents = false;

                while (!fileWatcher.EnableRaisingEvents)
                {
                    try
                    {
                        fileWatcher.Changed -= changeAction;
                        fileWatcher.Created -= createdAction;
                        fileWatcher.Deleted -= deletedAction;
                        fileWatcher.Renamed -= renamedAction;
                        fileWatcher.Error -= errorAction;

                        fileWatcher = new FileSystemWatcher(filePath, filter);

                        fileWatcher.Changed += changeAction;
                        fileWatcher.Created += createdAction;
                        fileWatcher.Deleted += deletedAction;
                        fileWatcher.Renamed += renamedAction;
                        fileWatcher.Error += errorAction;

                        fileWatcher.EnableRaisingEvents = true;
                    }
                    catch
                    {
                        fileWatcher.EnableRaisingEvents = false;
                        System.Threading.Thread.Sleep(5000);
                    }
                }
            };
            return fileWatcher;
        }
Example #35
0
 public FileSystemWatcher Build(string Path, string Filter, FileSystemEventHandler ChangedAction,
     FileSystemEventHandler CreatedAction, ErrorEventHandler ErrorAction)
 {
     return fileSystem.SetupFileWatcher(Path, Filter, ChangedAction, CreatedAction, null, null, ErrorAction);
 }
        public void add_Error (ErrorEventHandler value) {

        }
        public void remove_Error (ErrorEventHandler value) {

        }
Example #38
0
 private static void OnError(string error)
 {
     ErrorEventHandler?.Invoke(error);
 }
        /// <summary> Constructor for SocketServer Suppport </summary>
        /// <param name="socketServer"> A Reference to the parent SocketServer </param>
        /// <param name="clientSocket"> The Socket object we are encapsulating </param>
        /// <param name="socketListArray"> The index of the SocketServer Socket List Array </param>
        /// <param name="ipAddress"> The IpAddress of the remote server </param>
        /// <param name="port"> The Port of the remote server </param>
        /// <param name="messageHandler"> Reference to the user defined message handler function </param>
        /// <param name="closeHandler"> Reference to the user defined close handler function </param>
        /// <param name="errorHandler"> Reference to the user defined error handler function </param>
        /// <param name="sizeOfRawBuffer"> The size of the raw buffer </param>
        /// <param name="userArg"> A Reference to the Users arguments </param>
        public SocketClient(SocketServer socketServer, Socket clientSocket,
            string ipAddress, int port, int sizeOfRawBuffer,
            object userArg, MessageEventHandler messageHandler, CloseEventHandler closeHandler,
            ErrorEventHandler errorHandler)
            : this(sizeOfRawBuffer, userArg, messageHandler, closeHandler, errorHandler)
        {

            // Set reference to SocketServer
            this.socketServer = socketServer;

            // Init the socket references
            this.clientSocket = clientSocket;

            // Set the Ipaddress and Port
            this.ipAddress = ipAddress;
            this.port = port;

            // Init the NetworkStream reference
            this.networkStream = new NetworkStream(this.clientSocket);

            // Set these socket options
            this.clientSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket,
                System.Net.Sockets.SocketOptionName.ReceiveBuffer, this.receiveBufferSize);
            this.clientSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket,
                System.Net.Sockets.SocketOptionName.SendBuffer, this.sendBufferSize);
            this.clientSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Socket,
                System.Net.Sockets.SocketOptionName.DontLinger, 1);
            this.clientSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.Tcp,
                System.Net.Sockets.SocketOptionName.NoDelay, 1);

            // Wait for a message
            Receive();
        }
 /// <summary> 
 /// Overloaded constructor for client support
 /// </summary>
 /// <param name="sendBufferSize"></param>
 /// <param name="receiveBufferSize"></param>
 /// <param name="sizeOfRawBuffer"> The size of the raw buffer </param>
 /// <param name="userArg"> A Reference to the Users arguments </param>
 /// <param name="messageHandler">  Reference to the user defined message handler method </param>
 /// <param name="closeHandler">  Reference to the user defined close handler method </param>
 /// <param name="errorHandler">  Reference to the user defined error handler method </param>
 public SocketClient(int sendBufferSize, int receiveBufferSize,
     int sizeOfRawBuffer,
     object userArg,
     MessageEventHandler messageHandler,
     CloseEventHandler closeHandler,
     ErrorEventHandler errorHandler
     )
     : this(sizeOfRawBuffer, userArg, messageHandler, closeHandler, errorHandler)
 {
     //Set the size of the send/receive buffers
     this.sendBufferSize = sendBufferSize;
     this.receiveBufferSize = receiveBufferSize;
 }
Example #41
0
        public FileSystemWatcher SetupFileWatcher(string filePath, string filter, FileSystemEventHandler changeAction, FileSystemEventHandler createdAction, FileSystemEventHandler deletedAction, RenamedEventHandler renamedAction, ErrorEventHandler errorAction)
        {
            var fileWatcher = new FileSystemWatcher(filePath, filter);

            fileWatcher.Changed += changeAction;
            fileWatcher.Created += createdAction;
            fileWatcher.Deleted += deletedAction;
            fileWatcher.Renamed += renamedAction;
            fileWatcher.Error   += errorAction;

            fileWatcher.Error += delegate(object sender, ErrorEventArgs e)
            {
                fileWatcher.EnableRaisingEvents = false;

                while (!fileWatcher.EnableRaisingEvents)
                {
                    try
                    {
                        fileWatcher.Changed -= changeAction;
                        fileWatcher.Created -= createdAction;
                        fileWatcher.Deleted -= deletedAction;
                        fileWatcher.Renamed -= renamedAction;
                        fileWatcher.Error   -= errorAction;

                        fileWatcher = new FileSystemWatcher(filePath, filter);

                        fileWatcher.Changed += changeAction;
                        fileWatcher.Created += createdAction;
                        fileWatcher.Deleted += deletedAction;
                        fileWatcher.Renamed += renamedAction;
                        fileWatcher.Error   += errorAction;

                        fileWatcher.EnableRaisingEvents = true;
                    }
                    catch
                    {
                        fileWatcher.EnableRaisingEvents = false;
                        System.Threading.Thread.Sleep(5000);
                    }
                }
            };
            return(fileWatcher);
        }
Example #42
0
        /// <devdoc>
        /// </devdoc>
        protected virtual void Dispose(bool disposing)
        {
            try
            {
                if (disposing)
                {
                    //Stop raising events cleans up managed and
                    //unmanaged resources.
                    StopRaisingEvents();

                    // Clean up managed resources
                    _onChangedHandler = null;
                    _onCreatedHandler = null;
                    _onDeletedHandler = null;
                    _onRenamedHandler = null;
                    _onErrorHandler = null;
                }
                else
                {
                    FinalizeDispose();
                }
            }
            finally
            {
                _disposed = true;
            }
        }
Example #43
0
 public void InitApiHandlers(SuccessEventHandler callbackSuccess = null, ErrorEventHandler callbackError = null)
 {
     cbSuccessEvent = callbackSuccess;
     cbErrorEvent   = callbackError;
 }
Example #44
0
 public FileSystemWatcher Build(string path, string filter, FileSystemEventHandler changedAction,
     FileSystemEventHandler createdAction, ErrorEventHandler errorAction)
 {
     return fileSystem.SetupFileWatcher(path, filter, changedAction, createdAction, null, null, errorAction);
 }
 public static void WatcherSettings(this FileSystemWatcher watcher, FileSystemEventHandler onCreated, ErrorEventHandler onError)
 {
     watcher.NotifyFilter        = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
     watcher.Filter              = "*.*";
     watcher.Created            += onCreated;
     watcher.InternalBufferSize  = 81920;
     watcher.EnableRaisingEvents = true;
     watcher.Error += onError;
 }
Example #46
0
    public static void FileSystemWatcher_Error()
    {
        using (FileSystemWatcher watcher = new FileSystemWatcher())
        {
            var handler = new ErrorEventHandler((o, e) => { });

            // add / remove
            watcher.Error += handler;
            watcher.Error -= handler;

            // shouldn't throw
            watcher.Error -= handler;
        }
    }
        private async Task SubscribeChannelAsync(Channel channel)
        {
            string            channelName  = channel.Name;
            ErrorEventHandler errorHandler = null;

            channel._subscribeCompleted = new SemaphoreSlim(0, 1);
            try
            {
                void SubscribeErrorHandler(object sender, PusherException error)
                {
                    if ((int)error.PusherCode < 5000)
                    {
                        // If we receive an error from the Pusher cluster then we need to raise a channel subscription error
                        channel._subscriptionError = new ChannelException(ErrorCodes.SubscriptionError, channel.Name, _connection.SocketId, error);
                        if (channel._subscribeCompleted != null)
                        {
                            channel._subscribeCompleted.Release();
                        }
                    }
                }

                channel._subscriptionError = null;
                errorHandler = SubscribeErrorHandler;
                Error       += errorHandler;
                string message;
                if (channel.ChannelType != ChannelTypes.Public)
                {
                    string jsonAuth;
                    if (Options.Authorizer is IAuthorizerAsync asyncAuthorizer)
                    {
                        if (!asyncAuthorizer.Timeout.HasValue)
                        {
                            // Use a timeout interval that is less than the outer subscription timeout.
                            asyncAuthorizer.Timeout = Options.InnerClientTimeout;
                        }

                        jsonAuth = await asyncAuthorizer.AuthorizeAsync(channelName, _connection.SocketId).ConfigureAwait(false);
                    }
                    else
                    {
                        jsonAuth = Options.Authorizer.Authorize(channelName, _connection.SocketId);
                    }

                    message = CreateAuthorizedChannelSubscribeMessage(channel, jsonAuth);
                }
                else
                {
                    message = CreateChannelSubscribeMessage(channelName);
                }

                await _connection.SendAsync(message).ConfigureAwait(false);

                TimeSpan timeoutPeriod = Options.InnerClientTimeout;
                if (!await channel._subscribeCompleted.WaitAsync(timeoutPeriod).ConfigureAwait(false))
                {
                    throw new OperationTimeoutException(timeoutPeriod, $"{Constants.CHANNEL_SUBSCRIPTION_SUCCEEDED} on {channelName}");
                }

                if (channel._subscriptionError != null)
                {
                    throw channel._subscriptionError;
                }
            }
            finally
            {
                if (errorHandler != null)
                {
                    Error -= errorHandler;
                }

                channel._subscribeCompleted.Dispose();
                channel._subscribeCompleted = null;
            }
        }
Example #48
0
 public void ErrorReceivedUnsubscribe(ErrorEventHandler eventHandler)
 {
     ErrorReceived -= eventHandler;
 }
        /// <devdoc>
        /// </devdoc>
        protected override void Dispose(bool disposing) {
            try {
                if (disposing) {
                    
                    //Stop raising events cleans up managed and
                    //unmanaged resources.                    
                    StopRaisingEvents();

                    // Clean up managed resources
                    onChangedHandler = null;
                    onCreatedHandler = null;
                    onDeletedHandler = null;
                    onRenamedHandler = null;
                    onErrorHandler = null;
                    readGranted = false;
                
                } else {
                    stopListening = true;
                             
                    // Clean up unmanaged resources
                    if (!IsHandleInvalid) {
                        directoryHandle.Close();
                    }                                                          
                }     
           
            } finally {
                this.disposed = true;
                base.Dispose(disposing);
            }
        }
 public static FileSystemWatcher OnError(this FileSystemWatcher watcher, ErrorEventHandler errorHandler)
 {
     watcher.Error += errorHandler;
     return(watcher);
 }
Example #51
0
 public void SubscribeError(ErrorEventHandler handler)
 {
 }
Example #52
0
        public void EventHandlers_CalledSerially()
        {
            using (SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName))
                using (SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName))
                {
                    PinChangedEventHandler pinChangedEventHandler = new PinChangedEventHandler(com1, false, true);
                    ReceivedEventHandler   receivedEventHandler = new ReceivedEventHandler(com1, false, true);
                    ErrorEventHandler      errorEventHandler = new ErrorEventHandler(com1, false, true);
                    int numPinChangedEvents = 0, numErrorEvents = 0, numReceivedEvents = 0;
                    int iterationWaitTime = 100;

                    /***************************************************************
                    *  Scenario Description: All of the event handlers should be called sequentially never
                    *  at the same time on multiple thread. Basically we will block each event handler caller thread and verify
                    *  that no other thread is in another event handler
                    *
                    ***************************************************************/

                    Debug.WriteLine("Verifying that event handlers are called serially");

                    com1.WriteTimeout = 5000;
                    com2.WriteTimeout = 5000;

                    com1.Open();
                    com2.Open();

                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);
                    com1.PinChanged    += pinChangedEventHandler.HandleEvent;
                    com1.DataReceived  += receivedEventHandler.HandleEvent;
                    com1.ErrorReceived += errorEventHandler.HandleEvent;

                    //This should cause ErrorEvent to be fired with a parity error since the
                    //8th bit on com1 is the parity bit, com1 one expest this bit to be 1(Mark),
                    //and com2 is writing 0 for this bit
                    com1.DataBits = 7;
                    com1.Parity   = Parity.Mark;
                    com2.BaseStream.Write(new byte[1], 0, 1);
                    Debug.Print("ERROREvent Triggered");
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    //This should cause PinChangedEvent to be fired with SerialPinChanges.DsrChanged
                    //since we are setting DtrEnable to true
                    com2.DtrEnable = true;
                    Debug.WriteLine("PinChange Triggered");
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    //This should cause ReceivedEvent to be fired with ReceivedChars
                    //since we are writing some bytes
                    com1.DataBits = 8;
                    com1.Parity   = Parity.None;
                    com2.BaseStream.Write(new byte[] { 40 }, 0, 1);
                    Debug.WriteLine("RxEvent Triggered");
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    //This should cause a frame error since the 8th bit is not set,
                    //and com1 is set to 7 data bits so the 8th bit will +12v where
                    //com1 expects the stop bit at the 8th bit to be -12v
                    com1.DataBits = 7;
                    com1.Parity   = Parity.None;
                    com2.BaseStream.Write(new byte[] { 0x01 }, 0, 1);
                    Debug.WriteLine("FrameError Triggered");
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    //This should cause PinChangedEvent to be fired with SerialPinChanges.CtsChanged
                    //since we are setting RtsEnable to true
                    com2.RtsEnable = true;
                    Debug.WriteLine("PinChange Triggered");
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    //This should cause ReceivedEvent to be fired with EofReceived
                    //since we are writing the EOF char
                    com1.DataBits = 8;
                    com1.Parity   = Parity.None;
                    com2.BaseStream.Write(new byte[] { 26 }, 0, 1);
                    Debug.WriteLine("RxEOF Triggered");
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    //This should cause PinChangedEvent to be fired with SerialPinChanges.Break
                    //since we are setting BreakState to true
                    com2.BreakState = true;
                    Thread.Sleep(TRIGERING_EVENTS_WAIT_TIME);

                    bool      threadFound = true;
                    Stopwatch sw = Stopwatch.StartNew();
                    while (threadFound && sw.ElapsedMilliseconds < MAX_TIME_WAIT)
                    {
                        threadFound = false;

                        for (int i = 0; i < MAX_TIME_WAIT / iterationWaitTime; ++i)
                        {
                            Debug.WriteLine("Event counts: PinChange {0}, Rx {1}, error {2}", numPinChangedEvents, numReceivedEvents, numErrorEvents);

                            Debug.WriteLine("Waiting for pinchange event {0}ms", iterationWaitTime);

                            if (pinChangedEventHandler.WaitForEvent(iterationWaitTime, numPinChangedEvents + 1))
                            {
                                // A thread is in PinChangedEvent: verify that it is not in any other handler at the same time
                                if (receivedEventHandler.NumEventsHandled != numReceivedEvents)
                                {
                                    Fail("Err_191818ahied A thread is in PinChangedEvent and ReceivedEvent");
                                }

                                if (errorEventHandler.NumEventsHandled != numErrorEvents)
                                {
                                    Fail("Err_198119hjaheid A thread is in PinChangedEvent and ErrorEvent");
                                }

                                ++numPinChangedEvents;
                                pinChangedEventHandler.ResumeHandleEvent();
                                threadFound = true;
                                break;
                            }

                            Debug.WriteLine("Waiting for rx event {0}ms", iterationWaitTime);

                            if (receivedEventHandler.WaitForEvent(iterationWaitTime, numReceivedEvents + 1))
                            {
                                // A thread is in ReceivedEvent: verify that it is not in any other handler at the same time
                                if (pinChangedEventHandler.NumEventsHandled != numPinChangedEvents)
                                {
                                    Fail("Err_2288ajed A thread is in ReceivedEvent and PinChangedEvent");
                                }

                                if (errorEventHandler.NumEventsHandled != numErrorEvents)
                                {
                                    Fail("Err_25158ajeiod A thread is in ReceivedEvent and ErrorEvent");
                                }

                                ++numReceivedEvents;
                                receivedEventHandler.ResumeHandleEvent();
                                threadFound = true;
                                break;
                            }

                            Debug.WriteLine("Waiting for error event {0}ms", iterationWaitTime);

                            if (errorEventHandler.WaitForEvent(iterationWaitTime, numErrorEvents + 1))
                            {
                                // A thread is in ErrorEvent: verify that it is not in any other handler at the same time
                                if (pinChangedEventHandler.NumEventsHandled != numPinChangedEvents)
                                {
                                    Fail("Err_01208akiehd A thread is in ErrorEvent and PinChangedEvent");
                                }

                                if (receivedEventHandler.NumEventsHandled != numReceivedEvents)
                                {
                                    Fail("Err_1254847ajied A thread is in ErrorEvent and ReceivedEvent");
                                }

                                ++numErrorEvents;
                                errorEventHandler.ResumeHandleEvent();
                                threadFound = true;
                                break;
                            }
                        }
                    }

                    if (!pinChangedEventHandler.WaitForEvent(MAX_TIME_WAIT, 3))
                    {
                        Fail("Err_2288ajied Expected 3 PinChangedEvents to be fired and only {0} occured",
                             pinChangedEventHandler.NumEventsHandled);
                    }

                    if (!receivedEventHandler.WaitForEvent(MAX_TIME_WAIT, 2))
                    {
                        Fail("Err_122808aoeid Expected 2 ReceivedEvents  to be fired and only {0} occured",
                             receivedEventHandler.NumEventsHandled);
                    }

                    if (!errorEventHandler.WaitForEvent(MAX_TIME_WAIT, 2))
                    {
                        Fail("Err_215887ajeid Expected 3 ErrorEvents to be fired and only {0} occured",
                             errorEventHandler.NumEventsHandled);
                    }

                    //[] Verify all PinChangedEvents should have occured
                    pinChangedEventHandler.Validate(SerialPinChange.DsrChanged, 0);
                    pinChangedEventHandler.Validate(SerialPinChange.CtsChanged, 0);
                    pinChangedEventHandler.Validate(SerialPinChange.Break, 0);

                    //[] Verify all ReceivedEvent should have occured
                    receivedEventHandler.Validate(SerialData.Chars, 0);
                    receivedEventHandler.Validate(SerialData.Eof, 0);

                    //[] Verify all ErrorEvents should have occured
                    errorEventHandler.Validate(SerialError.RXParity, 0);
                    errorEventHandler.Validate(SerialError.Frame, 0);

                    // It's important that we close com1 BEFORE com2 (the using() block would do this the other way around normally)
                    // This is because we have our special blocking event handlers hooked onto com1, and closing com2 is likely to
                    // cause a pin-change event which then hangs and prevents com1 from closing.
                    // An alternative approach would be to unhook all the event-handlers before leaving the using() block.
                    com1.Close();
                }
        }
        protected void OnError(object sender, ErrorEventArgs args)
        {
            ErrorEventHandler onError = Error;

            onError?.Invoke(sender, args);
        }