add Track interface; remove adapter stuff
This commit is contained in:
parent
802ee6a4a6
commit
b38d22f1bb
2 changed files with 16 additions and 14 deletions
|
@ -10,7 +10,7 @@ type message struct {
|
||||||
*tracking.BaseTrack
|
*tracking.BaseTrack
|
||||||
}
|
}
|
||||||
|
|
||||||
func Message(tr *tracking.BaseTrack) tracking.Adapted {
|
func Message(tr *tracking.BaseTrack) *message {
|
||||||
return &message{tr}
|
return &message{tr}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ func MakeMessage(c *tracking.Container, h ...string) *tracking.BaseTrack {
|
||||||
if h[0] == "" {
|
if h[0] == "" {
|
||||||
h[0] = "scopes"
|
h[0] = "scopes"
|
||||||
}
|
}
|
||||||
return tracking.MakeTrack(c, h...).SetAdapterFactory(Message)
|
return tracking.MakeTrack(c, h...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (msg *message) Base() *tracking.BaseTrack {
|
func (msg *message) Base() *tracking.BaseTrack {
|
||||||
|
@ -37,7 +37,7 @@ func Messages(db *sql.Storage) *tracking.Container {
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(cont *tracking.Container, h ...string) *message {
|
func New(cont *tracking.Container, h ...string) *message {
|
||||||
return tracking.Adapt[*message](cont.NewTrack(h, nil))
|
return Message(cont.NewTrack(h, nil))
|
||||||
}
|
}
|
||||||
|
|
||||||
// message store action handler
|
// message store action handler
|
||||||
|
|
|
@ -22,6 +22,19 @@ type ItemFactory func(*Container, ...string) *track
|
||||||
type Adapted interface{}
|
type Adapted interface{}
|
||||||
type AdapterFactory func(*track) Adapted
|
type AdapterFactory func(*track) Adapted
|
||||||
|
|
||||||
|
type Track interface {
|
||||||
|
TrackId() lib.Ident
|
||||||
|
Head() lib.StrMap
|
||||||
|
TimeStamp() *time.Time
|
||||||
|
Data() lib.Map
|
||||||
|
Container() *Container
|
||||||
|
Uid() string
|
||||||
|
SetHead(...string)
|
||||||
|
SetTimeStamp(*time.Time)
|
||||||
|
SetData(lib.Map)
|
||||||
|
Base() *BaseTrack
|
||||||
|
}
|
||||||
|
|
||||||
// basic track implementation
|
// basic track implementation
|
||||||
|
|
||||||
type track struct {
|
type track struct {
|
||||||
|
@ -30,7 +43,6 @@ type track struct {
|
||||||
timeStamp *time.Time
|
timeStamp *time.Time
|
||||||
data lib.Map
|
data lib.Map
|
||||||
container *Container
|
container *Container
|
||||||
adapter AdapterFactory
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type BaseTrack = track
|
type BaseTrack = track
|
||||||
|
@ -40,7 +52,6 @@ func MakeTrack(cont *Container, h ...string) *track {
|
||||||
head: lib.StrMap{},
|
head: lib.StrMap{},
|
||||||
data: lib.Map{},
|
data: lib.Map{},
|
||||||
container: cont,
|
container: cont,
|
||||||
adapter: func(tr *track) Adapted { return tr },
|
|
||||||
}
|
}
|
||||||
tr.SetHead(h...)
|
tr.SetHead(h...)
|
||||||
return &tr
|
return &tr
|
||||||
|
@ -117,15 +128,6 @@ func (tr *track) ScanP(rows *sql.Rows) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tr *track) SetAdapterFactory(af AdapterFactory) *track {
|
|
||||||
tr.adapter = af
|
|
||||||
return tr
|
|
||||||
}
|
|
||||||
|
|
||||||
func Adapt[T Adapted](tr *track) T {
|
|
||||||
return tr.adapter(tr).(T)
|
|
||||||
}
|
|
||||||
|
|
||||||
// basic container implementation
|
// basic container implementation
|
||||||
|
|
||||||
type ContDef struct {
|
type ContDef struct {
|
||||||
|
|
Loading…
Add table
Reference in a new issue