response.go 344 B

123456789101112131415161718
  1. package command
  2. var (
  3. cmdCache = make(map[byte]CommandCreator)
  4. )
  5. func RegisterResponseCommand(id byte, cmdFactory CommandCreator) error {
  6. cmdCache[id] = cmdFactory
  7. return nil
  8. }
  9. func CreateResponseCommand(id byte) (Command, error) {
  10. creator, found := cmdCache[id]
  11. if !found {
  12. return nil, ErrorNoSuchCommand
  13. }
  14. return creator(), nil
  15. }