// package log_topic -- элемент лога шины топика package log_topic import ( "fmt" . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kalias" . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes" . "gitp78su.ipnodns.ru/svi/kern/v4/lev1/helpers" . "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result" ) // LogTopic -- элемент лога шины type LogTopic struct { topic ATopic // Топик, куда публиковать лог client IBusClient // С помощью чего публиковать лог } // NewLogTopic -- возвращает новый элемент лога func NewLogTopic(topic ATopic, client IBusClient) *LogTopic { Hassert(topic != "", "NewLogTopic(): topic is empty") Hassert(client != nil, "NewLogTopic(): IBusClient==nil") sf := &LogTopic{ topic: topic, client: client, } return sf } // Pub -- публикует сообщение в топик func (sf *LogTopic) Pub(binMsg []byte) IResult[bool] { res := sf.client.Publish(sf.topic, binMsg) if res.IsErr() { err := fmt.Errorf("LogTopic.Pub(): in pub with client, err=\n\t%v", res.Err()) return NewErr[bool](err) } return res }