コード例 #1
0
 public void AddMessage(MutableStorageQueueMessage message)
 {
     DateTimeOffset now = DateTimeOffset.Now;
     message.Id = Guid.NewGuid().ToString();
     message.InsertionTime = now;
     message.ExpirationTime = now.AddDays(7);
     message.NextVisibleTime = now;
     _visibleMessages.Enqueue(message);
 }
コード例 #2
0
            public void DeleteMessage(MutableStorageQueueMessage message)
            {
                MutableStorageQueueMessage ignore;

                if (!_invisibleMessages.TryRemove(message.PopReceipt, out ignore))
                {
                    throw new InvalidOperationException("Unable to delete message.");
                }
            }
コード例 #3
0
        public void AddMessage(string queueName, MutableStorageQueueMessage message)
        {
            if (!_items.ContainsKey(queueName))
            {
                throw StorageExceptionFactory.Create(404, "QueueNotFound");
            }

            _items[queueName].AddMessage(message);
        }
コード例 #4
0
            public void DeleteMessage(MutableStorageQueueMessage message)
            {
                MutableStorageQueueMessage ignore;

                if (!_invisibleMessages.TryRemove(message.PopReceipt, out ignore))
                {
                    throw new InvalidOperationException("Unable to delete message.");
                }
            }
コード例 #5
0
        public void AddMessage(string queueName, MutableStorageQueueMessage message)
        {
            if (!_items.ContainsKey(queueName))
            {
                throw StorageExceptionFactory.Create(404, "QueueNotFound");
            }

            _items[queueName].AddMessage(message);
        }
コード例 #6
0
            public void AddMessage(MutableStorageQueueMessage message)
            {
                DateTimeOffset now = DateTimeOffset.Now;

                message.Id              = Guid.NewGuid().ToString();
                message.InsertionTime   = now;
                message.ExpirationTime  = now.AddDays(7);
                message.NextVisibleTime = now;
                _visibleMessages.Enqueue(message);
            }
コード例 #7
0
            private MutableStorageQueueMessage LookupMessage(string popReceipt)
            {
                MutableStorageQueueMessage message = _visibleMessages.FirstOrDefault(p => p.PopReceipt == popReceipt);

                if (message == null)
                {
                    message = _invisibleMessages[popReceipt];
                }
                return(message);
            }
コード例 #8
0
            public void UpdateMessage(MutableStorageQueueMessage message, TimeSpan visibilityTimeout,
                                      MessageUpdateFields updateFields)
            {
                if ((updateFields & MessageUpdateFields.Content) == MessageUpdateFields.Content)
                {
                    // No-op; queue messages already provide in-memory content updating.
                }

                if ((updateFields & MessageUpdateFields.Visibility) == MessageUpdateFields.Visibility)
                {
                    message.NextVisibleTime = DateTimeOffset.Now.Add(visibilityTimeout);
                }
            }
コード例 #9
0
            public void AddMessage(MutableStorageQueueMessage message)
            {
                // need to create a new instance so other queues handling this message aren't updated
                DateTimeOffset now        = DateTimeOffset.Now;
                var            newMessage = new FakeStorageQueueMessage(CloudQueueMessage.CreateCloudQueueMessageFromByteArray(message.AsBytes))
                {
                    Id              = Guid.NewGuid().ToString(),
                    InsertionTime   = now,
                    ExpirationTime  = now.AddDays(7),
                    NextVisibleTime = now
                };

                _visibleMessages.Enqueue(newMessage);
            }
コード例 #10
0
            public void UpdateMessage(MutableStorageQueueMessage message, TimeSpan visibilityTimeout, MessageUpdateFields updateFields)
            {
                MutableStorageQueueMessage storedMessage = LookupMessage(message.PopReceipt);

                if ((updateFields & MessageUpdateFields.Content) == MessageUpdateFields.Content)
                {
                    // No-op; queue messages already provide in-memory content updating.
                }

                if ((updateFields & MessageUpdateFields.Visibility) == MessageUpdateFields.Visibility)
                {
                    DateTimeOffset nextVisibleTime = DateTimeOffset.Now.Add(visibilityTimeout);
                    storedMessage.NextVisibleTime = message.NextVisibleTime = nextVisibleTime;
                }
            }
コード例 #11
0
        public Task AddMessageAsync(IStorageQueueMessage message, CancellationToken cancellationToken)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }

            MutableStorageQueueMessage storeMessage = message as MutableStorageQueueMessage;

            if (storeMessage == null)
            {
                storeMessage = new FakeStorageQueueMessage(message.SdkObject);
            }

            _store.AddMessage(_queueName, storeMessage);
            return(Task.FromResult(0));
        }
コード例 #12
0
 public void UpdateMessage(string queueName, MutableStorageQueueMessage message, TimeSpan visibilityTimeout,
                           MessageUpdateFields updateFields)
 {
     _items[queueName].UpdateMessage(message, visibilityTimeout, updateFields);
 }
コード例 #13
0
 public void DeleteMessage(string queueName, MutableStorageQueueMessage message)
 {
     _items[queueName].DeleteMessage(message);
 }
コード例 #14
0
            public void UpdateMessage(MutableStorageQueueMessage message, TimeSpan visibilityTimeout, MessageUpdateFields updateFields)
            {
                MutableStorageQueueMessage storedMessage = LookupMessage(message.PopReceipt);

                if ((updateFields & MessageUpdateFields.Content) == MessageUpdateFields.Content)
                {
                    // No-op; queue messages already provide in-memory content updating.
                }

                if ((updateFields & MessageUpdateFields.Visibility) == MessageUpdateFields.Visibility)
                {
                    DateTimeOffset nextVisibleTime = DateTimeOffset.Now.Add(visibilityTimeout);
                    storedMessage.NextVisibleTime = message.NextVisibleTime = nextVisibleTime;
                }
            }
コード例 #15
0
 public void UpdateMessage(string queueName, MutableStorageQueueMessage message, TimeSpan visibilityTimeout,
     MessageUpdateFields updateFields)
 {
     _items[queueName].UpdateMessage(message, visibilityTimeout, updateFields);
 }
コード例 #16
0
 public void DeleteMessage(string queueName, MutableStorageQueueMessage message)
 {
     _items[queueName].DeleteMessage(message);
 }