public Receiver(string receiverId, string baseDir, bool makeAcknolege = true, ITopicGenerator topicGen = null) { _topicGen = topicGen ?? new FromTopicGenerator(receiverId); _recId = receiverId; _baseDir = baseDir; _watcher = new FileSystemWatcher(_baseDir, _topicGen.GenerateReceiveTopicPattern()); _watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.CreationTime; _watcher.Changed += _watcher_Changed; _watcher.Created += _watcher_Created; _ack = makeAcknolege; }
public Notifier(string from, string baseDir, ITopicGenerator topicGenerator = null) { _baseDir = baseDir; _from = from; _topicGen = topicGenerator ?? new FromTopicGenerator(from); _watcher = new FileSystemWatcher(baseDir, _topicGen.GenerateReceiveTopicPattern()); _watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.CreationTime; _watcher.Created += _watcher_Created; _watcher.Changed += _watcher_Changed; _watcher.EnableRaisingEvents = true; }
public void Notify(string target, Action <MessageInfo> callback = null, string body = null) { var topic = _topicGen.Generate(target); var ackPattern = _topicGen.GenerateReceiveTopicPattern(); if (callback != null) { _callbacks[target] = callback; } if (!Directory.Exists(_baseDir)) { Directory.CreateDirectory(_baseDir); } using (var file = new StreamWriter(Path.Combine(_baseDir, topic))) { if (!string.IsNullOrEmpty(body)) { file.Write(body); } } }