layer1: add namespace subscriber adapter step 19

This commit is contained in:
Naeel
2026-04-26 10:24:01 +03:00
parent 022960ade7
commit bcf34d6b1a
3 changed files with 80 additions and 0 deletions
+32
View File
@@ -14,6 +14,38 @@ type NamespaceSubscriber interface {
OnNamespaceResync(ctx context.Context, record NamespaceRecord) error
}
type NamespaceSubscriberFuncs struct {
SubscriberName string
AddFunc func(ctx context.Context, record NamespaceRecord) error
RemoveFunc func(ctx context.Context, record NamespaceRecord) error
ResyncFunc func(ctx context.Context, record NamespaceRecord) error
}
func (s NamespaceSubscriberFuncs) Name() string {
return s.SubscriberName
}
func (s NamespaceSubscriberFuncs) OnNamespaceAdd(ctx context.Context, record NamespaceRecord) error {
if s.AddFunc == nil {
return nil
}
return s.AddFunc(ctx, record)
}
func (s NamespaceSubscriberFuncs) OnNamespaceRemove(ctx context.Context, record NamespaceRecord) error {
if s.RemoveFunc == nil {
return nil
}
return s.RemoveFunc(ctx, record)
}
func (s NamespaceSubscriberFuncs) OnNamespaceResync(ctx context.Context, record NamespaceRecord) error {
if s.ResyncFunc == nil {
return nil
}
return s.ResyncFunc(ctx, record)
}
type NamespaceManager interface {
Snapshot() []string
SnapshotRecords() []NamespaceRecord