Add length deferrer support to composer
This commit is contained in:
parent
55f99cb34a
commit
d40c50f80a
36
composer.go
36
composer.go
|
@ -6,16 +6,18 @@ package tusd
|
||||||
type StoreComposer struct {
|
type StoreComposer struct {
|
||||||
Core DataStore
|
Core DataStore
|
||||||
|
|
||||||
UsesTerminater bool
|
UsesTerminater bool
|
||||||
Terminater TerminaterDataStore
|
Terminater TerminaterDataStore
|
||||||
UsesFinisher bool
|
UsesFinisher bool
|
||||||
Finisher FinisherDataStore
|
Finisher FinisherDataStore
|
||||||
UsesLocker bool
|
UsesLocker bool
|
||||||
Locker LockerDataStore
|
Locker LockerDataStore
|
||||||
UsesGetReader bool
|
UsesGetReader bool
|
||||||
GetReader GetReaderDataStore
|
GetReader GetReaderDataStore
|
||||||
UsesConcater bool
|
UsesConcater bool
|
||||||
Concater ConcaterDataStore
|
Concater ConcaterDataStore
|
||||||
|
UsesLengthDeferrer bool
|
||||||
|
LengthDeferrer LengthDeferrerDataStore
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStoreComposer creates a new and empty store composer.
|
// NewStoreComposer creates a new and empty store composer.
|
||||||
|
@ -45,6 +47,9 @@ func newStoreComposerFromDataStore(store DataStore) *StoreComposer {
|
||||||
if mod, ok := store.(ConcaterDataStore); ok {
|
if mod, ok := store.(ConcaterDataStore); ok {
|
||||||
composer.UseConcater(mod)
|
composer.UseConcater(mod)
|
||||||
}
|
}
|
||||||
|
if mod, ok := store.(LengthDeferrerDataStore); ok {
|
||||||
|
composer.UseLengthDeferrer(mod)
|
||||||
|
}
|
||||||
|
|
||||||
return composer
|
return composer
|
||||||
}
|
}
|
||||||
|
@ -90,6 +95,12 @@ func (store *StoreComposer) Capabilities() string {
|
||||||
} else {
|
} else {
|
||||||
str += "✗"
|
str += "✗"
|
||||||
}
|
}
|
||||||
|
str += ` LengthDeferrer: `
|
||||||
|
if store.UsesLengthDeferrer {
|
||||||
|
str += "✓"
|
||||||
|
} else {
|
||||||
|
str += "✗"
|
||||||
|
}
|
||||||
|
|
||||||
return str
|
return str
|
||||||
}
|
}
|
||||||
|
@ -120,3 +131,8 @@ func (store *StoreComposer) UseConcater(ext ConcaterDataStore) {
|
||||||
store.UsesConcater = ext != nil
|
store.UsesConcater = ext != nil
|
||||||
store.Concater = ext
|
store.Concater = ext
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (store *StoreComposer) UseLengthDeferrer(ext LengthDeferrerDataStore) {
|
||||||
|
store.UsesLengthDeferrer = ext != nil
|
||||||
|
store.LengthDeferrer = ext
|
||||||
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ type StoreComposer struct {
|
||||||
USE_FIELD(Locker)
|
USE_FIELD(Locker)
|
||||||
USE_FIELD(GetReader)
|
USE_FIELD(GetReader)
|
||||||
USE_FIELD(Concater)
|
USE_FIELD(Concater)
|
||||||
|
USE_FIELD(LengthDeferrer)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewStoreComposer creates a new and empty store composer.
|
// NewStoreComposer creates a new and empty store composer.
|
||||||
|
@ -50,6 +51,7 @@ func newStoreComposerFromDataStore(store DataStore) *StoreComposer {
|
||||||
USE_FROM(Locker)
|
USE_FROM(Locker)
|
||||||
USE_FROM(GetReader)
|
USE_FROM(GetReader)
|
||||||
USE_FROM(Concater)
|
USE_FROM(Concater)
|
||||||
|
USE_FROM(LengthDeferrer)
|
||||||
|
|
||||||
return composer
|
return composer
|
||||||
}
|
}
|
||||||
|
@ -70,6 +72,7 @@ func (store *StoreComposer) Capabilities() string {
|
||||||
USE_CAP(Locker)
|
USE_CAP(Locker)
|
||||||
USE_CAP(GetReader)
|
USE_CAP(GetReader)
|
||||||
USE_CAP(Concater)
|
USE_CAP(Concater)
|
||||||
|
USE_CAP(LengthDeferrer)
|
||||||
|
|
||||||
return str
|
return str
|
||||||
}
|
}
|
||||||
|
@ -85,3 +88,4 @@ USE_FUNC(Finisher)
|
||||||
USE_FUNC(Locker)
|
USE_FUNC(Locker)
|
||||||
USE_FUNC(GetReader)
|
USE_FUNC(GetReader)
|
||||||
USE_FUNC(Concater)
|
USE_FUNC(Concater)
|
||||||
|
USE_FUNC(LengthDeferrer)
|
||||||
|
|
Loading…
Reference in New Issue