Documentation
¶
Overview ¶
Package txmgr is a generated GoMock package.
Package txmgr implements a database-agnostic transaction manager.
Index ¶
- type ITransactionBeginner
- type ITransactionFinisher
- type ITransactionInformer
- type ITransactionManager
- type MockITransactionBeginner
- func (m *MockITransactionBeginner) Begin(ctx context.Context, f func(context.Context) error, opts Options) error
- func (m *MockITransactionBeginner) BeginTx(ctx context.Context, opts Options) (context.Context, ITransactionFinisher, error)
- func (m *MockITransactionBeginner) EXPECT() *MockITransactionBeginnerMockRecorder
- func (m *MockITransactionBeginner) WithoutTransaction(ctx context.Context) context.Context
- type MockITransactionBeginnerMockRecorder
- type MockITransactionFinisher
- type MockITransactionFinisherMockRecorder
- type MockITransactionInformer
- type MockITransactionInformerMockRecorder
- type MockITransactionManager
- func (m *MockITransactionManager) Begin(ctx context.Context, f func(context.Context) error, opts ...Option) error
- func (m *MockITransactionManager) BeginTx(ctx context.Context, opts ...Option) (context.Context, ITransactionFinisher, error)
- func (m *MockITransactionManager) EXPECT() *MockITransactionManagerMockRecorder
- func (m *MockITransactionManager) WithoutTransaction(ctx context.Context) context.Context
- type MockITransactionManagerMockRecorder
- type Option
- type Options
- type TransactionLevel
- type TransactionManager
- func (tm *TransactionManager) Begin(ctx context.Context, f func(ctxTr context.Context) error, opts ...Option) error
- func (tm *TransactionManager) BeginTx(ctx context.Context, opts ...Option) (context.Context, ITransactionFinisher, error)
- func (tm *TransactionManager) WithoutTransaction(ctx context.Context) context.Context
- type TransactionMode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ITransactionBeginner ¶
type ITransactionBeginner interface { Begin(ctx context.Context, f func(ctxTr context.Context) error, opts Options) error // BeginTx starts a transaction. If transaction is already started - increment nested level. BeginTx(ctx context.Context, opts Options) (context.Context, ITransactionFinisher, error) // WithoutTransaction returns context without transaction. WithoutTransaction(ctx context.Context) context.Context }
ITransactionBeginner interface for starting transactions. Implemented in pgdb package.
type ITransactionFinisher ¶
type ITransactionFinisher interface { // Commit commits the transaction. Commit(ctx context.Context) error // Rollback rolls back the transaction. Rollback(ctx context.Context) error }
ITransactionFinisher interface for finishing transactions. Implemented in pgdb package.
type ITransactionInformer ¶
type ITransactionInformer interface { // InTransaction returns true if transaction is started. InTransaction(ctx context.Context) bool // TransactionOptions returns transaction parameters. TransactionOptions(ctx context.Context) Options }
ITransactionInformer interface for transaction information. Implemented in pgdb package.
type ITransactionManager ¶
type ITransactionManager interface { // Begin starts a transaction. If transaction is already started - increment nested level. Begin(ctx context.Context, f func(ctxTr context.Context) error, opts ...Option) error // BeginTx starts a transaction. If transaction is already started - increment nested level. BeginTx(ctx context.Context, opts ...Option) (context.Context, ITransactionFinisher, error) // WithoutTransaction returns context without transaction. WithoutTransaction(ctx context.Context) context.Context }
ITransactionManager interface for managing database transactions. Located here at the implementation point for convenient use in other packages.
type MockITransactionBeginner ¶
type MockITransactionBeginner struct {
// contains filtered or unexported fields
}
MockITransactionBeginner is a mock of ITransactionBeginner interface.
func NewMockITransactionBeginner ¶
func NewMockITransactionBeginner(ctrl *gomock.Controller) *MockITransactionBeginner
NewMockITransactionBeginner creates a new mock instance.
func (*MockITransactionBeginner) Begin ¶
func (m *MockITransactionBeginner) Begin(ctx context.Context, f func(context.Context) error, opts Options) error
Begin mocks base method.
func (*MockITransactionBeginner) BeginTx ¶
func (m *MockITransactionBeginner) BeginTx(ctx context.Context, opts Options) (context.Context, ITransactionFinisher, error)
BeginTx mocks base method.
func (*MockITransactionBeginner) EXPECT ¶
func (m *MockITransactionBeginner) EXPECT() *MockITransactionBeginnerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockITransactionBeginner) WithoutTransaction ¶
func (m *MockITransactionBeginner) WithoutTransaction(ctx context.Context) context.Context
WithoutTransaction mocks base method.
type MockITransactionBeginnerMockRecorder ¶
type MockITransactionBeginnerMockRecorder struct {
// contains filtered or unexported fields
}
MockITransactionBeginnerMockRecorder is the mock recorder for MockITransactionBeginner.
func (*MockITransactionBeginnerMockRecorder) Begin ¶
func (mr *MockITransactionBeginnerMockRecorder) Begin(ctx, f, opts any) *gomock.Call
Begin indicates an expected call of Begin.
func (*MockITransactionBeginnerMockRecorder) BeginTx ¶
func (mr *MockITransactionBeginnerMockRecorder) BeginTx(ctx, opts any) *gomock.Call
BeginTx indicates an expected call of BeginTx.
func (*MockITransactionBeginnerMockRecorder) WithoutTransaction ¶
func (mr *MockITransactionBeginnerMockRecorder) WithoutTransaction(ctx any) *gomock.Call
WithoutTransaction indicates an expected call of WithoutTransaction.
type MockITransactionFinisher ¶
type MockITransactionFinisher struct {
// contains filtered or unexported fields
}
MockITransactionFinisher is a mock of ITransactionFinisher interface.
func NewMockITransactionFinisher ¶
func NewMockITransactionFinisher(ctrl *gomock.Controller) *MockITransactionFinisher
NewMockITransactionFinisher creates a new mock instance.
func (*MockITransactionFinisher) Commit ¶
func (m *MockITransactionFinisher) Commit(ctx context.Context) error
Commit mocks base method.
func (*MockITransactionFinisher) EXPECT ¶
func (m *MockITransactionFinisher) EXPECT() *MockITransactionFinisherMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
type MockITransactionFinisherMockRecorder ¶
type MockITransactionFinisherMockRecorder struct {
// contains filtered or unexported fields
}
MockITransactionFinisherMockRecorder is the mock recorder for MockITransactionFinisher.
type MockITransactionInformer ¶
type MockITransactionInformer struct {
// contains filtered or unexported fields
}
MockITransactionInformer is a mock of ITransactionInformer interface.
func NewMockITransactionInformer ¶
func NewMockITransactionInformer(ctrl *gomock.Controller) *MockITransactionInformer
NewMockITransactionInformer creates a new mock instance.
func (*MockITransactionInformer) EXPECT ¶
func (m *MockITransactionInformer) EXPECT() *MockITransactionInformerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockITransactionInformer) InTransaction ¶
func (m *MockITransactionInformer) InTransaction(ctx context.Context) bool
InTransaction mocks base method.
func (*MockITransactionInformer) TransactionOptions ¶
func (m *MockITransactionInformer) TransactionOptions(ctx context.Context) Options
TransactionOptions mocks base method.
type MockITransactionInformerMockRecorder ¶
type MockITransactionInformerMockRecorder struct {
// contains filtered or unexported fields
}
MockITransactionInformerMockRecorder is the mock recorder for MockITransactionInformer.
func (*MockITransactionInformerMockRecorder) InTransaction ¶
func (mr *MockITransactionInformerMockRecorder) InTransaction(ctx any) *gomock.Call
InTransaction indicates an expected call of InTransaction.
func (*MockITransactionInformerMockRecorder) TransactionOptions ¶
func (mr *MockITransactionInformerMockRecorder) TransactionOptions(ctx any) *gomock.Call
TransactionOptions indicates an expected call of TransactionOptions.
type MockITransactionManager ¶
type MockITransactionManager struct {
// contains filtered or unexported fields
}
MockITransactionManager is a mock of ITransactionManager interface.
func NewMockITransactionManager ¶
func NewMockITransactionManager(ctrl *gomock.Controller) *MockITransactionManager
NewMockITransactionManager creates a new mock instance.
func (*MockITransactionManager) Begin ¶
func (m *MockITransactionManager) Begin(ctx context.Context, f func(context.Context) error, opts ...Option) error
Begin mocks base method.
func (*MockITransactionManager) BeginTx ¶
func (m *MockITransactionManager) BeginTx(ctx context.Context, opts ...Option) (context.Context, ITransactionFinisher, error)
BeginTx mocks base method.
func (*MockITransactionManager) EXPECT ¶
func (m *MockITransactionManager) EXPECT() *MockITransactionManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockITransactionManager) WithoutTransaction ¶
func (m *MockITransactionManager) WithoutTransaction(ctx context.Context) context.Context
WithoutTransaction mocks base method.
type MockITransactionManagerMockRecorder ¶
type MockITransactionManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockITransactionManagerMockRecorder is the mock recorder for MockITransactionManager.
func (*MockITransactionManagerMockRecorder) Begin ¶
func (mr *MockITransactionManagerMockRecorder) Begin(ctx, f any, opts ...any) *gomock.Call
Begin indicates an expected call of Begin.
func (*MockITransactionManagerMockRecorder) BeginTx ¶
func (mr *MockITransactionManagerMockRecorder) BeginTx(ctx any, opts ...any) *gomock.Call
BeginTx indicates an expected call of BeginTx.
func (*MockITransactionManagerMockRecorder) WithoutTransaction ¶
func (mr *MockITransactionManagerMockRecorder) WithoutTransaction(ctx any) *gomock.Call
WithoutTransaction indicates an expected call of WithoutTransaction.
type Option ¶
type Option func(*Options)
Option transaction manager option function.
func WithTransactionLevel ¶
func WithTransactionLevel(level TransactionLevel) Option
WithTransactionLevel sets the transaction isolation level.
func WithTransactionMode ¶
func WithTransactionMode(mode TransactionMode) Option
WithTransactionMode sets the transaction mode.
type Options ¶
type Options struct { // Level defines the transaction isolation level. Level TransactionLevel // Mode defines the transaction operation mode. Mode TransactionMode // Lock indicates if object locking is required. // This is an advisory option and the implementation decides what to lock. // In most cases it means SELECT ... FOR UPDATE. Lock bool }
Options represents transaction manager configuration options.
type TransactionLevel ¶
type TransactionLevel int
TransactionLevel defines the database transaction isolation level.
const ( TxLevelDefault TransactionLevel = 0 // Default is TxReadCommitted TxReadUncommitted TransactionLevel = 1 // Lowest isolation level TxReadCommitted TransactionLevel = 2 // Prevents dirty reads TxRepeatableRead TransactionLevel = 3 // Prevents non-repeatable reads TxSerializable TransactionLevel = 4 // Highest isolation level )
Transaction isolation levels from lowest to highest isolation.
type TransactionManager ¶
type TransactionManager struct {
// contains filtered or unexported fields
}
TransactionManager handles database transactions.
func New ¶
func New(tmBeginner ITransactionBeginner, tmImplementator ITransactionInformer) *TransactionManager
New creates a new TransactionManager.
func (*TransactionManager) Begin ¶
func (tm *TransactionManager) Begin(ctx context.Context, f func(ctxTr context.Context) error, opts ...Option) error
Begin starts a new transaction and executes the function.
func (*TransactionManager) BeginTx ¶
func (tm *TransactionManager) BeginTx( ctx context.Context, opts ...Option, ) (context.Context, ITransactionFinisher, error)
BeginTx starts a new transaction.
func (*TransactionManager) WithoutTransaction ¶
func (tm *TransactionManager) WithoutTransaction(ctx context.Context) context.Context
WithoutTransaction returns context without transaction.
type TransactionMode ¶
type TransactionMode int
TransactionMode defines the database transaction access mode.
const ( TxModeDefault TransactionMode = 0 // TxReadWrite TxReadOnly TransactionMode = 1 TxReadWrite TransactionMode = 2 )
Transaction operation modes.