Просмотр исходного кода

SVI Рабочее сохранение

SVI 2 дней назад
Родитель
Сommit
42d9e58dd1

+ 8 - 9
v4/kern.go

@@ -8,10 +8,9 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev1"
 
 	// "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
-	mL1 "gitp78su.ipnodns.ru/svi/kern/v4/lev1"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev1"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/comp_spec"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kmodule"
@@ -82,7 +81,7 @@ type ISafeBool = core_spec.ISafeBool
 //
 
 func NewSafeBool(val defs.Bool) ISafeBool {
-	sb := mL1.NewSafeBool(val)
+	sb := lev1.NewSafeBool(val)
 	return sb
 }
 
@@ -201,13 +200,13 @@ func GetModuleWui() mod_spec.IKernelModule {
 type ILogBuf = comp_spec.ILogBuf
 
 // LogBufParam -- параметры для создания нового буферизованного лога.
-type LogBufParam = mL1.LogBufParam
+type LogBufParam = lev1.LogBufParam
 
 // NewLogBuf -- возвращает новый буферизованный лог.
 //
 
 func NewLogBuf(param *LogBufParam) ILogBuf {
-	log := mL1.NewLogBuf(param)
+	log := lev1.NewLogBuf(param)
 	return log
 }
 
@@ -215,7 +214,7 @@ func NewLogBuf(param *LogBufParam) ILogBuf {
 //
 
 func NewSafeBoolReact() core_spec.ISafeBoolReact {
-	val := mL1.NewSafeBoolReact()
+	val := lev1.NewSafeBoolReact()
 	return val
 }
 
@@ -239,7 +238,7 @@ func LetInt(val lev0.Num) *lev0.LNum {
 //
 
 func NewLocalCtx(ctx context.Context) comp_spec.ILocalCtx {
-	lCtx := mL1.NewLocalCtx(ctx)
+	lCtx := lev1.NewLocalCtx(ctx)
 	return lCtx
 }
 
@@ -247,11 +246,11 @@ func NewLocalCtx(ctx context.Context) comp_spec.ILocalCtx {
 type TxtConstraint=lev0.TxtConstraint
 
 // MSafeTxt -- потокобезопасный внутренний текст.
-type MSafeTxt=lev1.MSafeTxt
+type MSafeTxt=lev0.MSafeTxt
 
 // MutSafeTxt -- возвращает новую потокобезопасный текст.
 func MutSafeTxt[T TxtConstraint](txt T, arg ...any) *MSafeTxt {
-	str := mL1.MutSafeTxt(txt, arg...)
+	str := lev0.MutSafeTxt(txt, arg...)
 	return str
 }
 

+ 16 - 0
v4/lev0/defs/defs.go

@@ -10,6 +10,7 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_time"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_num"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_txt"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
 )
@@ -174,3 +175,18 @@ func MutSafeNum(val Num) *MSafeNum {
 	val_ := safe_num.MutSafeNum(val)
 	return val_
 }
+
+// MSafeTxt -- потокобезопасный внутренний текст.
+type MSafeTxt = safe_txt.MSafeTxt
+
+// MutSafeTxt -- возвращает новый потокобезопасный текст.
+func MutSafeTxt[T TxtConstraint](txt T, arg ...any) *MSafeTxt {
+	str := safe_txt.MutSafeTxt(txt, arg...)
+	return str
+}
+
+// MutSafeTxt -- возвращает новый потокобезопасный текст.
+func MutSafeTxtFromEnv(env *LTxt) *Result[*MSafeTxt] {
+	str := safe_txt.MutSafeTxtFromEnv(env)
+	return str
+}

+ 25 - 18
v4/lev1/safe_txt/safe_txt.go → v4/lev0/defs/safe_txt/safe_txt.go

@@ -5,32 +5,35 @@ import (
 	"os"
 	"sync"
 
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_err"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
 )
 
 // MSafeTxt -- потокобезопасный внутренний текст.
 type MSafeTxt struct {
 	sync.RWMutex
-	val *lev0.MTxt
+	val *def_txt.MTxt
 }
 
 // MutSafeTxt -- возвращает новую потокобезопасный внутренний текст.
-func MutSafeTxt[T lev0.TxtConstraint](txt T, arg ...any) *MSafeTxt {
+func MutSafeTxt[T def_spec_base.TxtConstraint](txt T, arg ...any) *MSafeTxt {
 	sf := &MSafeTxt{
-		val: lev0.MutTxt(txt, arg...),
+		val: def_txt.MutTxt(txt, arg...),
 	}
 	return sf
 }
 
 // MutSafeTxtFromEnv -- возвращает новую потокобезопасный внутрений текст из окружения.
-func MutSafeTxtFromEnv(env *lev0.LTxt) *lev0.Result[*MSafeTxt] {
+func MutSafeTxtFromEnv(env *def_txt.LTxt) *result.Result[*MSafeTxt] {
 	sf := MutSafeTxt("")
 	res := sf.FromEnv(env)
 	if res.IsErr() {
-		err := lev0.LetErr("NewSafeStringGetenv(): in get from env(%v), err=\n\t%w", env, res.Err())
-		return lev0.ResErr[*MSafeTxt](err)
+		err := def_err.LetErr("NewSafeStringGetenv(): in get from env(%v), err=\n\t%w", env, res.Err())
+		return result.ResErr[*MSafeTxt](err)
 	}
-	return lev0.ResOk(sf)
+	return result.ResOk(sf)
 }
 
 // Byte -- возвращает байтовое представление текста.
@@ -41,20 +44,20 @@ func (sf *MSafeTxt) Byte() []byte {
 }
 
 // Get -- возвращает хранимый текст.
-func (sf *MSafeTxt) Get() *lev0.LTxt {
+func (sf *MSafeTxt) Get() *def_txt.LTxt {
 	sf.RLock()
 	defer sf.RUnlock()
 	return sf.val.Let()
 }
 
 // Set -- устанавливает текст.
-func (sf *MSafeTxt) Set(val *lev0.LTxt) {
+func (sf *MSafeTxt) Set(val *def_txt.LTxt) {
 	sf.Lock()
 	defer sf.Unlock()
 	sf.val.Set(val.Get())
 }
 
-// Reset -- сбрасывает ьекст.
+// Reset -- сбрасывает текст.
 func (sf *MSafeTxt) Reset() {
 	sf.Lock()
 	defer sf.Unlock()
@@ -62,17 +65,21 @@ func (sf *MSafeTxt) Reset() {
 }
 
 // FromEnv -- получает значение из окружения.
-func (sf *MSafeTxt) FromEnv(env *lev0.LTxt) *lev0.Result[*lev0.LTxt] {
-	txtVal := lev0.ATxt(os.Getenv(env.String()))
+func (sf *MSafeTxt) FromEnv(env *def_txt.LTxt) *result.Result[*def_txt.LTxt] {
+	sf.Lock()
+	defer sf.Unlock()
+	txtVal := def_spec_base.Txt(os.Getenv(env.String()))
 	if txtVal == "" {
-		err := lev0.LetErr("safeString.Getenv(): from env(%v), val is empty", env)
-		return lev0.ResErr[*lev0.LTxt](err)
+		err := def_err.LetErr("safeString.Getenv(): from env(%v), val is empty", env)
+		return result.ResErr[*def_txt.LTxt](err)
 	}
-	sf.val = lev0.MutTxt(txtVal)
-	return lev0.ResOk(sf.val.Let())
+	sf.val = def_txt.MutTxt(txtVal)
+	return result.ResOk(sf.val.Let())
 }
 
 // TrimSuffix -- обрезает суффикс хранимаого текста
-func (sf *MSafeTxt) TrimSuffix(txt lev0.ATxt) lev0.ATxt {
+func (sf *MSafeTxt) TrimSuffix(txt def_spec_base.Txt) def_spec_base.Txt {
+	sf.Lock()
+	defer sf.Unlock()
 	return sf.val.TrimSuffix(txt)
 }

+ 4 - 4
v4/lev1/safe_txt/safe_txt_test.go → v4/lev0/defs/safe_txt/safe_txt_test.go

@@ -4,7 +4,7 @@ import (
 	"os"
 	"testing"
 
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev0"
+	"gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
 )
 
 type tester struct {
@@ -30,7 +30,7 @@ func (sf *tester) newFromEnv() {
 	sf.newFromEnvGood2()
 }
 
-var testBool = lev0.LetTxt("TEST_BOOL")
+var testBool = def_txt.LetTxt("TEST_BOOL")
 
 func (sf *tester) newFromEnvGood2() {
 	sf.t.Log("newFromEnvGood2")
@@ -88,11 +88,11 @@ func (sf *tester) reset() {
 // Установка хранимого значения.
 func (sf *tester) set() {
 	sf.t.Log("set")
-	sf.ss.Set(lev0.LetTxt("77"))
+	sf.ss.Set(def_txt.LetTxt("77"))
 	if sf.ss.Get().Get() != "77" {
 		sf.t.Fatalf("set(): ISafeString!='77'")
 	}
-	sf.ss.Set(lev0.LetTxt("-56"))
+	sf.ss.Set(def_txt.LetTxt("-56"))
 	if sf.ss.Get().Get() != "-56" {
 		sf.t.Fatalf("set(): ISafeString!='-56'")
 	}

+ 14 - 0
v4/lev0/lev0.go

@@ -188,3 +188,17 @@ func MutSafeNum(val Num) *MSafeNum {
 	val_ := defs.MutSafeNum(val)
 	return val_
 }
+
+// MSafeTxt -- потокобезопасный внутренний текст.
+type MSafeTxt = defs.MSafeTxt
+
+// MutSafeTxt -- возвращает новый потокобезопасный текст.
+func MutSafeTxt[T TxtConstraint](txt T, arg ...any) *MSafeTxt {
+	str := defs.MutSafeTxt(txt, arg...)
+	return str
+}
+// MutSafeTxt -- возвращает новый потокобезопасный текст.
+func MutSafeTxtFromEnv(env *LTxt) *Result[*MSafeTxt] {
+	str := defs.MutSafeTxtFromEnv(env)
+	return str
+}

+ 0 - 10
v4/lev1/lev1.go

@@ -13,7 +13,6 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/mock_env"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool_react"
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_txt"
 )
 
 type IMockEnv = mock_env.IMockEnv
@@ -33,15 +32,6 @@ func NewLogBuf(param *LogBufParam) comp_spec.ILogBuf {
 	return log
 }
 
-// MSafeTxt -- потокобезопасный внутренний текст.
-type MSafeTxt = safe_txt.MSafeTxt
-
-// MutSafeTxt -- возвращает новый потокобезопасный текст.
-func MutSafeTxt[T lev0.TxtConstraint](txt T, arg ...any) *MSafeTxt {
-	str := safe_txt.MutSafeTxt(txt, arg...)
-	return str
-}
-
 // NewSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную.
 func NewSafeBoolReact() lev0.ISafeBoolReact {
 	val := safe_bool_react.NewSafeBoolReact()

+ 8 - 8
v4/lev1/lev1_test.go

@@ -17,7 +17,7 @@ func TestLev1(t *testing.T) {
 	}
 	sf.makeEnv()
 	sf.newLogBuf()
-	sf.newSafeString()
+//	sf.newSafeString()
 //	sf.newSafeIntFromStr()
 // 	sf.newSafeIntGetenv()
 }
@@ -38,13 +38,13 @@ func TestLev1(t *testing.T) {
 // 	}
 // }
 
-func (sf *tester) newSafeString() {
-	sf.t.Log("newSafeString")
-	safeString := MutSafeTxt("test string")
-	if safeString == nil {
-		sf.t.Fatalf("newSafeString(): safeString==nil")
-	}
-}
+// func (sf *tester) newSafeString() {
+// 	sf.t.Log("newSafeString")
+// 	safeString := MutSafeTxt("test string")
+// 	if safeString == nil {
+// 		sf.t.Fatalf("newSafeString(): safeString==nil")
+// 	}
+// }
 
 func (sf *tester) newLogBuf() {
 	sf.t.Log("newLogBuf")

+ 1 - 2
v4/lev2/lti/kbus_http/client_bus_http/client_bus_http.go

@@ -14,7 +14,6 @@ import (
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/comp_spec"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/log_buf"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool"
-	"gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_txt"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_ent/topic"
 	"gitp78su.ipnodns.ru/svi/kern/v4/lev2/lti/bus_spec"
@@ -42,7 +41,7 @@ func NewClientBusHttp(urlRemote *lev0.LTxt) bus_spec.IBusClient {
 	log.Debug("NewClientBusHttp()")
 	lev0.If(urlRemote == nil).Hassert("NewClientBusHttp(): urlRemote is empty", []any{})
 	kCtx := kctx.GetKernelCtx()
-	resLocal := safe_txt.MutSafeTxtFromEnv(
+	resLocal := lev0.MutSafeTxtFromEnv(
 		lev0.LetTxt("LOCAL_HTTP_URL"))
 	resLocal.Hassert("NewClientBusHttp(): in get env LOCAL_HTTP_URL)")
 	urlLocal := resLocal.Ok()