Documentation ¶
Index ¶
- type Config
- type DistributedMessages
- func (m *DistributedMessages) GetServers() ([](*api.MessagesServer), error)
- func (m *DistributedMessages) Join(id, addr string) error
- func (m *DistributedMessages) Leave(id string) error
- func (m *DistributedMessages) ReadOneMessage(ctx context.Context, userId usermodel.UserId, id int) (model.Message, error)
- func (m *DistributedMessages) ReadUserMessages(ctx context.Context, userId usermodel.UserId) ([]model.Message, error)
- func (m *DistributedMessages) SaveMessage(ctx context.Context, msg *model.Message) error
- func (m *DistributedMessages) WaitForLeader(timeout time.Duration) error
- type Repository
- type StreamLayer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Raft raft.Config StreamLayer *StreamLayer Bootstrap bool DataDir string }
type DistributedMessages ¶
type DistributedMessages struct {
// contains filtered or unexported fields
}
func New ¶
func New(repo Repository, config Config) ( *DistributedMessages, error, )
func (*DistributedMessages) GetServers ¶
func (m *DistributedMessages) GetServers() ([](*api.MessagesServer), error)
func (*DistributedMessages) Join ¶
func (m *DistributedMessages) Join(id, addr string) error
func (*DistributedMessages) Leave ¶
func (m *DistributedMessages) Leave(id string) error
func (*DistributedMessages) ReadOneMessage ¶
func (*DistributedMessages) ReadUserMessages ¶
func (*DistributedMessages) SaveMessage ¶
func (*DistributedMessages) WaitForLeader ¶
func (m *DistributedMessages) WaitForLeader(timeout time.Duration) error
type Repository ¶
type Repository interface { Put(context.Context, *model.Message) error Get(context.Context, usermodel.UserId) ([]model.Message, error) PutBatch(context.Context, [](*model.Message)) error GetBatch(context.Context) ([]model.Message, error) GetOne(context.Context, usermodel.UserId, int) (model.Message, error) Truncate(context.Context) error }
type StreamLayer ¶
type StreamLayer struct {
// contains filtered or unexported fields
}
func NewStreamLayer ¶
func NewStreamLayer(ln net.Listener) *StreamLayer
func (*StreamLayer) Addr ¶
func (s *StreamLayer) Addr() net.Addr
func (*StreamLayer) Close ¶
func (s *StreamLayer) Close() error
func (*StreamLayer) Dial ¶
func (s *StreamLayer) Dial( addr raft.ServerAddress, timeout time.Duration, ) (net.Conn, error)
Click to show internal directories.
Click to hide internal directories.