Parcourir la source

add impl for ICapTransaction

master
Savorboard il y a 6 ans
Parent
révision
764e23fa32
1 fichiers modifiés avec 41 ajouts et 0 suppressions
  1. +41
    -0
      src/DotNetCore.CAP/ICapTransaction.Base.cs

+ 41
- 0
src/DotNetCore.CAP/ICapTransaction.Base.cs Voir le fichier

@@ -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();
}
}

Chargement…
Annuler
Enregistrer