Forráskód Böngészése

SVI Добавление словаря буферизованных проксей в дерево сервиса

SVI 2 éve
szülő
commit
f8bb61b713

+ 1 - 0
internal/dict_client_proxy_buffer/dict_client_proxy_buffer.go

@@ -33,6 +33,7 @@ func NewDictClientProxyBuffer(serv types.IService) (*DictClientProxyBuffer, erro
 		dictTopic: serv.DictTopic(),
 		dict:      make(map[alias.ClientName]types.IClientProxyBuffer),
 	}
+	_ = types.IDictClientProxyBuffer(sf)
 	return sf, nil
 }
 

+ 1 - 1
internal/serv_grpc/serv_subscribe_buffer/serv_subscribe_buffer.go

@@ -4,7 +4,6 @@ package serv_subscribe_buffer
 import (
 	"fmt"
 
-	"p78git.ddns.net/svi/gobus/pkg/alias"
 	"p78git.ddns.net/svi/gobus/pkg/net/client_proxy_buffer"
 	"p78git.ddns.net/svi/gobus/pkg/net/netapi"
 	"p78git.ddns.net/svi/gobus/pkg/types"
@@ -25,6 +24,7 @@ func NewServSubscribeBuffer(serv types.IService) (*ServSubscribeBuffer, error) {
 	sf := &ServSubscribeBuffer{
 		serv:      serv,
 		dictTopic: serv.DictTopic(),
+		dictProxyBuffer: serv.DictClientProxyBuffer(),
 	}
 	return sf, nil
 }

+ 17 - 6
internal/service/service.go

@@ -6,6 +6,7 @@ import (
 	"fmt"
 	"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/serv_grpc"
 	"p78git.ddns.net/svi/gobus/pkg/types"
@@ -13,11 +14,12 @@ import (
 
 // Service -- главный тип сервиса шины данных
 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 -- взвращае тновый сервис
@@ -30,7 +32,11 @@ func NewSevice() (*Service, error) {
 	var err error
 	sf.dictTopic, err = dict_topic.NewDictTopic()
 	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)
 	if err != nil {
@@ -39,6 +45,11 @@ func NewSevice() (*Service, error) {
 	return sf, nil
 }
 
+// DictClientProxyBuffer -- возвращает словарь проксей буферизованных клиентов
+func (sf *Service) DictClientProxyBuffer() types.IDictClientProxyBuffer {
+	return sf.dictClientProxyBuffer
+}
+
 // Run -- запускает сервис в работу
 func (sf *Service) Run() error {
 	log.Printf("Service.Run()\n")

+ 2 - 0
pkg/types/iservice.go

@@ -11,4 +11,6 @@ type IService interface {
 	CancelApp()
 	// DictTopic -- возвращает потокобезопасный словарь топиков
 	DictTopic() IDictTopic
+	// DictClientProxyBuffer -- возвращает словарь проксей для буферизованных клиентов
+	DictClientProxyBuffer() IDictClientProxyBuffer
 }