actor_base.go 691 B

1234567891011121314151617181920212223242526272829303132
  1. package simple
  2. import (
  3. cfacade "github.com/mhaya/facade"
  4. clog "github.com/mhaya/logger"
  5. cactor "github.com/mhaya/net/actor"
  6. cproto "github.com/mhaya/net/proto"
  7. )
  8. type ActorBase struct {
  9. cactor.Base
  10. }
  11. func (p *ActorBase) Response(session *cproto.Session, mid uint32, v interface{}) {
  12. Response(p, session, mid, v)
  13. }
  14. func Response(iActor cfacade.IActor, session *cproto.Session, mid uint32, v interface{}) {
  15. data, err := iActor.App().Serializer().Marshal(v)
  16. if err != nil {
  17. clog.Warnf("[Response] Marshal error. v = %+v", v)
  18. return
  19. }
  20. rsp := &cproto.PomeloResponse{
  21. Sid: session.Sid,
  22. Mid: mid,
  23. Data: data,
  24. }
  25. iActor.Call(session.AgentPath, ResponseFuncName, rsp)
  26. }