|
@@ -6,6 +6,7 @@ import (
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"log"
|
|
"log"
|
|
|
|
|
|
|
|
|
|
+ "p78git.ddns.net/svi/gobus/internal/dict_client_proxy_buffer"
|
|
|
"p78git.ddns.net/svi/gobus/internal/dict_topic"
|
|
"p78git.ddns.net/svi/gobus/internal/dict_topic"
|
|
|
"p78git.ddns.net/svi/gobus/internal/serv_grpc"
|
|
"p78git.ddns.net/svi/gobus/internal/serv_grpc"
|
|
|
"p78git.ddns.net/svi/gobus/pkg/types"
|
|
"p78git.ddns.net/svi/gobus/pkg/types"
|
|
@@ -13,11 +14,12 @@ import (
|
|
|
|
|
|
|
|
// Service -- главный тип сервиса шины данных
|
|
// Service -- главный тип сервиса шины данных
|
|
|
type Service struct {
|
|
type Service struct {
|
|
|
- ctxBg context.Context // Неотменяемый контекст приложения
|
|
|
|
|
- ctx context.Context // Отменяемый контекст приложения
|
|
|
|
|
- fnCancel func() // Функция отмены контекста приложения
|
|
|
|
|
- dictTopic types.IDictTopic // Потокобезопасный словарь топиков
|
|
|
|
|
- servGrpc *serv_grpc.ServGrpc
|
|
|
|
|
|
|
+ ctxBg context.Context // Неотменяемый контекст приложения
|
|
|
|
|
+ ctx context.Context // Отменяемый контекст приложения
|
|
|
|
|
+ fnCancel func() // Функция отмены контекста приложения
|
|
|
|
|
+ dictTopic types.IDictTopic // Потокобезопасный словарь топиков
|
|
|
|
|
+ dictClientProxyBuffer types.IDictClientProxyBuffer // Словарь проксей буферизованных клиентов
|
|
|
|
|
+ servGrpc *serv_grpc.ServGrpc
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewSevice -- взвращае тновый сервис
|
|
// NewSevice -- взвращае тновый сервис
|
|
@@ -30,7 +32,11 @@ func NewSevice() (*Service, error) {
|
|
|
var err error
|
|
var err error
|
|
|
sf.dictTopic, err = dict_topic.NewDictTopic()
|
|
sf.dictTopic, err = dict_topic.NewDictTopic()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- return nil, fmt.Errorf("NewService(): in create DictTopic, err=\n\t%w", err)
|
|
|
|
|
|
|
+ return nil, fmt.Errorf("NewService(): in create IDictTopic, err=\n\t%w", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ sf.dictClientProxyBuffer, err = dict_client_proxy_buffer.NewDictClientProxyBuffer(sf)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ return nil, fmt.Errorf("NewService(): in create IDictClientProxyBuffer, err=\n\t%w", err)
|
|
|
}
|
|
}
|
|
|
sf.servGrpc, err = serv_grpc.NewServGrpc(sf)
|
|
sf.servGrpc, err = serv_grpc.NewServGrpc(sf)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -39,6 +45,11 @@ func NewSevice() (*Service, error) {
|
|
|
return sf, nil
|
|
return sf, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// DictClientProxyBuffer -- возвращает словарь проксей буферизованных клиентов
|
|
|
|
|
+func (sf *Service) DictClientProxyBuffer() types.IDictClientProxyBuffer {
|
|
|
|
|
+ return sf.dictClientProxyBuffer
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// Run -- запускает сервис в работу
|
|
// Run -- запускает сервис в работу
|
|
|
func (sf *Service) Run() error {
|
|
func (sf *Service) Run() error {
|
|
|
log.Printf("Service.Run()\n")
|
|
log.Printf("Service.Run()\n")
|