Просмотр исходного кода

add impl for ICapTransaction

master
Savorboard 6 лет назад
Родитель
Сommit
764e23fa32
1 измененных файлов: 41 добавлений и 0 удалений
  1. +41
    -0
      src/DotNetCore.CAP/ICapTransaction.Base.cs

+ 41
- 0
src/DotNetCore.CAP/ICapTransaction.Base.cs Просмотреть файл

@@ -0,0 +1,41 @@
using System.Collections.Generic;
using DotNetCore.CAP.Models;

namespace DotNetCore.CAP
{
public abstract class CapTransactionBase : ICapTransaction
{
private readonly IDispatcher _dispatcher;

private readonly IList<CapPublishedMessage> _bufferList;

protected CapTransactionBase(IDispatcher dispatcher)
{
_dispatcher = dispatcher;
_bufferList = new List<CapPublishedMessage>(1);
}

public bool AutoCommit { get; set; }

public object DbTransaction { get; set; }

protected internal void AddToSent(CapPublishedMessage msg)
{
_bufferList.Add(msg);
}
protected void Flush()
{
foreach (var message in _bufferList)
{
_dispatcher.EnqueueToPublish(message);
}
}

public abstract void Commit();

public abstract void Rollback();

public abstract void Dispose();
}
}

Загрузка…
Отмена
Сохранить