コード例 #1
0
        protected override bool TryAdd(Ptr ptr, IQueueItem item)
        {
            var copy = item.Copy();

            QueueList[ptr] = copy;

            if (CoverMode == CoverMode.Persistent)
            {
                if (CommitMode == CommitMode.OnDisk)
                {
                    if (m_db.TryAdd(ptr.Identifier, copy))
                    {
                        OnTryAdd(ptr, item, true);
                        return(true);
                    }
                }
                else //if (CommitMode == CommitMode.OnMemory)
                {
                    return(PersistItemAdd(ptr, copy));
                }
                return(false);
            }
            else //if (CommitMode == CommitMode.OnMemory)
            {
                return(true);
            }
        }
コード例 #2
0
ファイル: PriorityFsQueue.cs プロジェクト: nistec/MQueue
        protected override bool TryAdd(Ptr ptr, IQueueItem item)
        {
            var copy = item.Copy();

            QueueList[ptr] = copy;

            if (CoverMode == CoverMode.FileStream)
            {
                if (CommitMode == PersistCommitMode.OnDisk)
                {
                    if (m_fs.Enqueue(item).MessageState == MessageState.Received)
                    {
                        OnTryAdd(ptr, item, true);
                        return(true);
                    }
                }
                else //if (CommitMode == CommitMode.OnMemory)
                {
                    return(PersistItemAdd(copy));
                }
                return(false);
            }
            else //if (CommitMode == CommitMode.OnMemory)
            {
                return(true);
            }
        }
コード例 #3
0
ファイル: PriorityPersistQueue.cs プロジェクト: nistec/MQueue
        protected override bool TryAdd(Ptr ptr, IQueueItem item)
        {
            var res = m_db.TryAdd(ptr.Identifier, item.Copy());

            OnTryAdd(ptr, item, res);
            return(res);
        }
コード例 #4
0
        protected bool TryAdd(Ptr ptr, IQueueItem item)
        {
            var copy = item.Copy();

            if (m_db.TryAdd(ptr.Identifier, copy))
            {
                OnTryAdd(ptr, item, true);
                return(true);
            }
            return(false);
        }
コード例 #5
0
ファイル: PriorityMemQueue.cs プロジェクト: nistec/MQueue
 protected override bool TryAdd(Ptr ptr, IQueueItem item)
 {
     QueueList[ptr] = item.Copy();
     return(true);
 }