Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        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);
                }
            }
        }