github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/pingcap/go-themis/txn_hook.go (about)

     1  package themis
     2  
     3  // Hooks for debugging and testing
     4  type fnHook func(txn *themisTxn, ctx interface{}) (bypass bool, ret interface{}, err error)
     5  
     6  var emptyHookFn = func(txn *themisTxn, ctx interface{}) (bypass bool, ret interface{}, err error) {
     7  	return true, nil, nil
     8  }
     9  
    10  type txnHook struct {
    11  	afterChoosePrimaryAndSecondary fnHook
    12  	beforePrewritePrimary          fnHook
    13  	beforePrewriteLockClean        fnHook
    14  	beforePrewriteSecondary        fnHook
    15  	beforeCommitPrimary            fnHook
    16  	beforeCommitSecondary          fnHook
    17  	onSecondaryOccursLock          fnHook
    18  	onPrewriteRow                  fnHook
    19  	onTxnSuccess                   fnHook
    20  	onTxnFailed                    fnHook
    21  }
    22  
    23  func newHook() *txnHook {
    24  	return &txnHook{
    25  		afterChoosePrimaryAndSecondary: emptyHookFn,
    26  		beforePrewritePrimary:          emptyHookFn,
    27  		beforePrewriteLockClean:        emptyHookFn,
    28  		beforePrewriteSecondary:        emptyHookFn,
    29  		beforeCommitPrimary:            emptyHookFn,
    30  		beforeCommitSecondary:          emptyHookFn,
    31  		onSecondaryOccursLock:          emptyHookFn,
    32  		onPrewriteRow:                  emptyHookFn,
    33  		onTxnSuccess:                   emptyHookFn,
    34  		onTxnFailed:                    emptyHookFn,
    35  	}
    36  }