github.com/glide-im/glide@v1.6.0/pkg/messaging/messaging.go (about)

     1  package messaging
     2  
     3  import (
     4  	"github.com/glide-im/glide/pkg/gate"
     5  	"github.com/glide-im/glide/pkg/messages"
     6  	"github.com/glide-im/glide/pkg/subscription"
     7  )
     8  
     9  // MessageHandler is the interface for message handler
    10  type MessageHandler interface {
    11  	// Handle handles the message, returns true if the message is handled,
    12  	// otherwise the message is delegated to next handler.
    13  	Handle(h *MessageInterfaceImpl, cliInfo *gate.Info, message *messages.GlideMessage) bool
    14  }
    15  
    16  // Interface for messaging.
    17  type Interface interface {
    18  
    19  	// Handle handles message from gate, the entry point for the messaging.
    20  	Handle(clientInfo *gate.Info, msg *messages.GlideMessage) error
    21  
    22  	AddHandler(i MessageHandler)
    23  }
    24  
    25  type Messaging interface {
    26  	Interface
    27  
    28  	SetSubscription(g subscription.Interface)
    29  
    30  	SetGate(g gate.Gateway)
    31  }
    32  
    33  // Server is the messaging server.
    34  type Server interface {
    35  	Messaging
    36  
    37  	Run() error
    38  }