|
|
@@ -3,31 +3,34 @@ package kern
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
-
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/helpers"
|
|
|
- . "gitp78su.ipnodns.ru/svi/kern/v3/kc/helpers"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/local_ctx"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/log_buf"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/safe_bool"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/safe_bool_react"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/safe_int"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/kc/safe_string"
|
|
|
- . "gitp78su.ipnodns.ru/svi/kern/v3/krn/kalias"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kbus/kbus_http"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kbus/kbus_http/client_bus_http"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kbus/kbus_local"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kbus/kbus_local/client_bus_local"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kctx"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kint"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kmodule"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kmonolit"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kserv_http"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kstore_kv"
|
|
|
- . "gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/mds/mod_kctx"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/mds/mod_keeper"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/mds/mod_serv_http"
|
|
|
- "gitp78su.ipnodns.ru/svi/kern/v3/mds/mod_wui"
|
|
|
+ "fmt"
|
|
|
+
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/kc/log_buf"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/kc/safe_bool_react"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/kc/safe_int"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/kc/safe_string"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kbus/kbus_http"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kbus/kbus_http/client_bus_http"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kbus/kbus_local"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kbus/kbus_local/client_bus_local"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kctx"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kint"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kmodule"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kmonolit"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kserv_http"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/krn/kstore_kv"
|
|
|
+ . "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/helpers"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/lev1/local_ctx"
|
|
|
+ . "gitp78su.ipnodns.ru/svi/kern/v4/lev1/option"
|
|
|
+ . "gitp78su.ipnodns.ru/svi/kern/v4/lev1/result"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/mds/mod_kctx"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/mds/mod_keeper"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/mds/mod_serv_http"
|
|
|
+ "gitp78su.ipnodns.ru/svi/kern/v4/mds/mod_wui"
|
|
|
)
|
|
|
|
|
|
// GetKernelCtx -- возвращает контекст ядра
|
|
|
@@ -43,7 +46,7 @@ func GetKernelStoreKv() IKernelStoreKv {
|
|
|
}
|
|
|
|
|
|
// GetKernelServerHttp -- возвращает веб-сервер ядра
|
|
|
-func GetKernelServerHttp() IKernelServerHttp {
|
|
|
+func GetKernelServerHttp() IResult[IKernelServerHttp] {
|
|
|
kernServHttp := kserv_http.GetKernelServHttp()
|
|
|
return kernServHttp
|
|
|
}
|
|
|
@@ -63,13 +66,13 @@ func GetKernelBusLocal() IKernelBus {
|
|
|
}
|
|
|
|
|
|
// GetKernelBusHttp -- возвращает HTTP шину данных
|
|
|
-func GetKernelBusHttp() IKernelBus {
|
|
|
+func GetKernelBusHttp() IResult[IKernelBus] {
|
|
|
bus := kbus_http.GetKernelBusHttp()
|
|
|
return bus
|
|
|
}
|
|
|
|
|
|
// GetMonolitLocal -- возвращает монолит с локальной шиной
|
|
|
-func GetMonolitLocal(name string) IKernelMonolit {
|
|
|
+func GetMonolitLocal(name string) IResult[IKernelMonolit] {
|
|
|
ctx := kctx.GetKernelCtx()
|
|
|
ctx.Set("isLocal", true, "bus type")
|
|
|
for {
|
|
|
@@ -78,13 +81,17 @@ func GetMonolitLocal(name string) IKernelMonolit {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- monolit := kmonolit.GetMonolit(name)
|
|
|
+ res := kmonolit.GetMonolit(name)
|
|
|
+ if res.IsErr() {
|
|
|
+ err := fmt.Errorf("GetMonolitLocal(): err=\n\t%w", res.Err())
|
|
|
+ return NewErr[IKernelMonolit](err)
|
|
|
+ }
|
|
|
_ = kbus_local.GetKernelBusLocal()
|
|
|
- return monolit
|
|
|
+ return NewRes(IKernelMonolit(res.Val()))
|
|
|
}
|
|
|
|
|
|
// GetMonolitHttp -- возвращает монолит с локальной шиной поверх HTTP
|
|
|
-func GetMonolitHttp(name string) IKernelMonolit {
|
|
|
+func GetMonolitHttp(name string) IResult[IKernelMonolit] {
|
|
|
ctx := kctx.GetKernelCtx()
|
|
|
_ = kbus_http.GetKernelBusHttp()
|
|
|
ctx.Set("isLocal", false, "bus type")
|
|
|
@@ -94,14 +101,18 @@ func GetMonolitHttp(name string) IKernelMonolit {
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- monolit := kmonolit.GetMonolit(name)
|
|
|
- return monolit
|
|
|
+ res := kmonolit.GetMonolit(name)
|
|
|
+ if res.IsErr() {
|
|
|
+ err := fmt.Errorf("GetMonolitHttp(): err=\n\t%w", res.Err())
|
|
|
+ return NewErr[IKernelMonolit](err)
|
|
|
+ }
|
|
|
+ return NewRes(IKernelMonolit(res.Val()))
|
|
|
}
|
|
|
|
|
|
// NewKernelModule -- возвращает новый модуль на ядре
|
|
|
-func NewKernelModule(name AModuleName) IKernelModule {
|
|
|
- mod := kmodule.NewKernelModule(name)
|
|
|
- return mod
|
|
|
+func NewKernelModule(name AModuleName) IResult[IKernelModule] {
|
|
|
+ resMod := kmodule.NewKernelModule(name)
|
|
|
+ return resMod
|
|
|
}
|
|
|
|
|
|
// NewClientBusLocal -- возвращает клиент для работы с локальной шиной
|
|
|
@@ -111,33 +122,53 @@ func NewClientBusLocal() IBusClient {
|
|
|
}
|
|
|
|
|
|
// NewClientBusHttp -- возвращает клиент для работы с шиной поверх HTTP
|
|
|
-func NewClientBusHttp(url string) IBusClient {
|
|
|
+func NewClientBusHttp(url string) IResult[IBusClient] {
|
|
|
client := client_bus_http.NewClientBusHttp(url)
|
|
|
return client
|
|
|
}
|
|
|
|
|
|
// GetModuleServHttp -- возвращает модуль для IKernelServHttp
|
|
|
-func GetModuleServHttp() IKernelModule {
|
|
|
- modServHttp := mod_serv_http.GetModuleServHttp()
|
|
|
- return modServHttp
|
|
|
+func GetModuleServHttp() IResult[IKernelModule] {
|
|
|
+ resHttp := mod_serv_http.GetModuleServHttp()
|
|
|
+ if resHttp.IsErr() {
|
|
|
+ err := fmt.Errorf("GetModuleServHttp(): err=\n\t%w", resHttp.Err())
|
|
|
+ return NewErr[IKernelModule](err)
|
|
|
+ }
|
|
|
+ modServHttp := resHttp.Val()
|
|
|
+ return NewRes(IKernelModule(modServHttp))
|
|
|
}
|
|
|
|
|
|
// GetModuleKernelCtx -- возвращает модуль для IKernelCtx
|
|
|
-func GetModuleKernelCtx() IKernelModule {
|
|
|
- modKernelCtx := mod_kctx.GetModuleKernelCtx()
|
|
|
- return modKernelCtx
|
|
|
+func GetModuleKernelCtx() IResult[IKernelModule] {
|
|
|
+ resMod := mod_kctx.GetModuleKernelCtx()
|
|
|
+ if resMod.IsErr() {
|
|
|
+ err := fmt.Errorf("GetModuleKernelCtx(): err=\n\t%w", resMod.Err())
|
|
|
+ return NewErr[IKernelModule](err)
|
|
|
+ }
|
|
|
+ mod := resMod.Val()
|
|
|
+ return NewRes(IKernelModule(mod))
|
|
|
}
|
|
|
|
|
|
// GetModuleKernelKeeper -- возвращает модуль для IKernelKeeper
|
|
|
-func GetModuleKernelKeeper() IKernelModule {
|
|
|
- modKernelKeeper := mod_keeper.GetModuleKeeper()
|
|
|
- return modKernelKeeper
|
|
|
+func GetModuleKernelKeeper() IResult[IKernelModule] {
|
|
|
+ resKeeper := mod_keeper.GetModuleKeeper()
|
|
|
+ if resKeeper.IsErr() {
|
|
|
+ err := fmt.Errorf("GetModuleKernelKeeper(): err=\n\t%w", resKeeper.Err())
|
|
|
+ return NewErr[IKernelModule](err)
|
|
|
+ }
|
|
|
+ modKernelKeeper := resKeeper.Val()
|
|
|
+ return NewRes(IKernelModule(modKernelKeeper))
|
|
|
}
|
|
|
|
|
|
// GetModuleWui -- возвращает модуль для WUI
|
|
|
-func GetModuleWui() IKernelModule {
|
|
|
- mod := mod_wui.GetModuleWui()
|
|
|
- return mod
|
|
|
+func GetModuleWui() IResult[IKernelModule] {
|
|
|
+ resMod := mod_wui.GetModuleWui()
|
|
|
+ if resMod.IsErr() {
|
|
|
+ err := fmt.Errorf("GetModuleWui(): err=\n\t%w", resMod.Err())
|
|
|
+ return NewErr[IKernelModule](err)
|
|
|
+ }
|
|
|
+ modWui := resMod.Val()
|
|
|
+ return NewRes(IKernelModule(modWui))
|
|
|
}
|
|
|
|
|
|
// NewLogBuf -- возвращает новый буферизованный лог
|
|
|
@@ -177,22 +208,22 @@ func NewSafeString() ISafeString {
|
|
|
}
|
|
|
|
|
|
// MakeOk -- возвращает новый положительный результат операции
|
|
|
-func MakeOk[T any](res T) Result[T] {
|
|
|
- return NewOk(res)
|
|
|
+func MakeOk[T any](res T) IResult[T] {
|
|
|
+ return NewRes(res)
|
|
|
}
|
|
|
|
|
|
// MakeErr -- возвращает новую ошибку результат операции
|
|
|
-func MakeErr[T any](err error) Result[T] {
|
|
|
+func MakeErr[T any](err error) IResult[T] {
|
|
|
return NewErr[T](err)
|
|
|
}
|
|
|
|
|
|
// MakeSome -- возвращает новый не пустой результат операции
|
|
|
-func MakeSome[T any](some T) Option[T] {
|
|
|
- return NewSome(some)
|
|
|
+func MakeSome[T any](some T) IOption[T] {
|
|
|
+ return NewOpt(some)
|
|
|
}
|
|
|
|
|
|
// MakeNone -- возвращает новый пустой результат операции
|
|
|
-func MakeNone[T any]() Option[T] {
|
|
|
+func MakeNone[T any]() IOption[T] {
|
|
|
return NewNone[T]()
|
|
|
}
|
|
|
|