public SimpleMessageQueue(DirectoryInfo directory)
        {
            if (directory == null)
            throw new ArgumentNullException("directory");

              if (!directory.Exists)
            throw new ArgumentException("directory does not exist");

              _innerQueue = MemoryQueueLookup.Current.CreateOrGetQueue(directory.FullName);
              Formatter = new BinaryFormatter();
        }
        public void UnSubscribe(InnerSimpleQueue queue)
        {
            lock (typeof(MemoryQueueLookup)) {
            InnerSimpleQueue innerQueue;
            if (!_lookupTable.TryGetValue(queue.DirectoryPath, out innerQueue))
              return;

            innerQueue.Subscribers--;

            if (innerQueue.AnySubscribers)
              return;

            TearDownQueue(innerQueue);
              }
        }
Esempio n. 3
0
        public SimpleMessageQueue(DirectoryInfo directory)
        {
            if (directory == null)
            {
                throw new ArgumentNullException("directory");
            }

            if (!directory.Exists)
            {
                throw new ArgumentException("directory does not exist");
            }

            _innerQueue = MemoryQueueLookup.Current.CreateOrGetQueue(directory.FullName);
            Formatter   = new BinaryFormatter();
        }
Esempio n. 4
0
        public void UnSubscribe(InnerSimpleQueue queue)
        {
            lock (typeof(MemoryQueueLookup)) {
                InnerSimpleQueue innerQueue;
                if (!_lookupTable.TryGetValue(queue.DirectoryPath, out innerQueue))
                {
                    return;
                }

                innerQueue.Subscribers--;

                if (innerQueue.AnySubscribers)
                {
                    return;
                }

                TearDownQueue(innerQueue);
            }
        }
        public InnerSimpleQueue CreateOrGetQueue(string directoryPath)
        {
            if (string.IsNullOrEmpty(directoryPath))
            throw new ArgumentNullException("directoryPath");

              lock (typeof(MemoryQueueLookup)) {
            InnerSimpleQueue innerQueue;
            if (_lookupTable.TryGetValue(directoryPath, out innerQueue)) {
              innerQueue.Subscribers++;
              return innerQueue;
            }

            innerQueue = new InnerSimpleQueue(new BlockingCollection<SimpleQueueMessage>(), directoryPath);
            innerQueue.Subscribers++;
            innerQueue.Initialize();
            _lookupTable.Add(directoryPath, innerQueue);

            return innerQueue;
              }
        }
Esempio n. 6
0
        public InnerSimpleQueue CreateOrGetQueue(string directoryPath)
        {
            if (string.IsNullOrEmpty(directoryPath))
            {
                throw new ArgumentNullException("directoryPath");
            }

            lock (typeof(MemoryQueueLookup)) {
                InnerSimpleQueue innerQueue;
                if (_lookupTable.TryGetValue(directoryPath, out innerQueue))
                {
                    innerQueue.Subscribers++;
                    return(innerQueue);
                }

                innerQueue = new InnerSimpleQueue(new BlockingCollection <SimpleQueueMessage>(), directoryPath);
                innerQueue.Subscribers++;
                innerQueue.Initialize();
                _lookupTable.Add(directoryPath, innerQueue);

                return(innerQueue);
            }
        }
 private void TearDownQueue(InnerSimpleQueue queue)
 {
     _lookupTable.Remove(queue.DirectoryPath);
       queue.Dispose();
 }
Esempio n. 8
0
 private void TearDownQueue(InnerSimpleQueue queue)
 {
     _lookupTable.Remove(queue.DirectoryPath);
     queue.Dispose();
 }