callback.go 899 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package wfclient
  2. import (
  3. "fmt"
  4. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  5. )
  6. type CallbackArg struct {
  7. DefineId string
  8. InstanceId string
  9. DefineName string
  10. InstanceName string
  11. FormData string
  12. Choice string
  13. Executor string
  14. UserId string
  15. Context *entitys.CtrlContext
  16. }
  17. var _callbackMap map[string]func(*CallbackArg)
  18. func init(){
  19. _callbackMap = make(map[string]func(*CallbackArg))
  20. }
  21. /**
  22. * @brief: add callback
  23. * @param1: key
  24. * @param2: callback
  25. */
  26. func AddWFCallback(key string, cb func(*CallbackArg)) {
  27. if _, ok := _callbackMap[key]; !ok {
  28. _callbackMap[key] = cb
  29. } else {
  30. fmt.Println("callback", key, "does already exist")
  31. }
  32. }
  33. /**
  34. * @brief:调用calblack
  35. * @param1 key:key
  36. * @param2 arg:参数
  37. */
  38. func callWFCallback(key string, arg *CallbackArg){
  39. if callback, ok := _callbackMap[key]; ok{
  40. callback(arg)
  41. }
  42. }