/// <summary> /// Initialization logic for actor that will tail changes to a file. /// </summary> protected override void PreStart() { // start watching file for changes _observer = new FileObserver(Self, Path.GetFullPath(_filePath)); _observer.Start(); // open the file stream with shared read/write permissions // (so file can be written to while open) _fileStream = new FileStream(Path.GetFullPath(_filePath), FileMode.Open, FileAccess.Read, FileShare.ReadWrite); _fileStreamReader = new StreamReader(_fileStream, Encoding.UTF8); // read the initial contents of the file and send it to console as first message var text = _fileStreamReader.ReadToEnd(); Self.Tell(new InitialRead(_filePath, text)); }
public TailActor(IActorRef reporterActor, string filePath) { _reporterActor = reporterActor; _filePath = filePath; // start watching file for changes _observer = new FileObserver(Self, Path.GetFullPath(_filePath)); _observer.Start(); // open the file stream with shared read/write permissions // (so file can be written to while open) _fileStream = new FileStream(Path.GetFullPath(_filePath), FileMode.Open, FileAccess.Read, FileShare.ReadWrite); _fileStreamReader = new StreamReader(_fileStream, Encoding.UTF8); // read the initial contents of the file and send it to console as first msg var text = _fileStreamReader.ReadToEnd(); Self.Tell(new InitialRead(_filePath, text)); }