package types

import (
	"p78git.ddns.net/svi/gobus/pkg/alias"
	"p78git.ddns.net/svi/gobus/pkg/net/netapi"
)

// ITopic -- интерфейс топика шины данных
type ITopic interface {
	// Name -- возвращает имя топика
	Name() alias.TopicName
	// Set -- устанавливает содержимое топика
	Set(*netapi.TopicMsg)
	// Get -- возвращает содержимое топика
	Get() *netapi.TopicMsg
	// Size -- возвращает размер топика
	Size() int
	// Subscribe -- подписывает клиента
	Subscribe(IClientProxy)
	// Unsubscribe -- отписывает клиента
	Unsubscribe(alias.ClientName)
}
