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 }