From d40c50f80a7e2dfb67daa7078893ae298299af97 Mon Sep 17 00:00:00 2001 From: Adam Jensen Date: Sun, 13 May 2018 10:27:38 -0400 Subject: [PATCH] Add length deferrer support to composer --- composer.go | 36 ++++++++++++++++++++++++++---------- composer.mgo | 4 ++++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/composer.go b/composer.go index f15b38a..9ec8aa2 100644 --- a/composer.go +++ b/composer.go @@ -6,16 +6,18 @@ package tusd type StoreComposer struct { Core DataStore - UsesTerminater bool - Terminater TerminaterDataStore - UsesFinisher bool - Finisher FinisherDataStore - UsesLocker bool - Locker LockerDataStore - UsesGetReader bool - GetReader GetReaderDataStore - UsesConcater bool - Concater ConcaterDataStore + UsesTerminater bool + Terminater TerminaterDataStore + UsesFinisher bool + Finisher FinisherDataStore + UsesLocker bool + Locker LockerDataStore + UsesGetReader bool + GetReader GetReaderDataStore + UsesConcater bool + Concater ConcaterDataStore + UsesLengthDeferrer bool + LengthDeferrer LengthDeferrerDataStore } // NewStoreComposer creates a new and empty store composer. @@ -45,6 +47,9 @@ func newStoreComposerFromDataStore(store DataStore) *StoreComposer { if mod, ok := store.(ConcaterDataStore); ok { composer.UseConcater(mod) } + if mod, ok := store.(LengthDeferrerDataStore); ok { + composer.UseLengthDeferrer(mod) + } return composer } @@ -90,6 +95,12 @@ func (store *StoreComposer) Capabilities() string { } else { str += "✗" } + str += ` LengthDeferrer: ` + if store.UsesLengthDeferrer { + str += "✓" + } else { + str += "✗" + } return str } @@ -120,3 +131,8 @@ func (store *StoreComposer) UseConcater(ext ConcaterDataStore) { store.UsesConcater = ext != nil store.Concater = ext } + +func (store *StoreComposer) UseLengthDeferrer(ext LengthDeferrerDataStore) { + store.UsesLengthDeferrer = ext != nil + store.LengthDeferrer = ext +} diff --git a/composer.mgo b/composer.mgo index 32db7ea..247cdb8 100644 --- a/composer.mgo +++ b/composer.mgo @@ -31,6 +31,7 @@ type StoreComposer struct { USE_FIELD(Locker) USE_FIELD(GetReader) USE_FIELD(Concater) + USE_FIELD(LengthDeferrer) } // NewStoreComposer creates a new and empty store composer. @@ -50,6 +51,7 @@ func newStoreComposerFromDataStore(store DataStore) *StoreComposer { USE_FROM(Locker) USE_FROM(GetReader) USE_FROM(Concater) + USE_FROM(LengthDeferrer) return composer } @@ -70,6 +72,7 @@ func (store *StoreComposer) Capabilities() string { USE_CAP(Locker) USE_CAP(GetReader) USE_CAP(Concater) + USE_CAP(LengthDeferrer) return str } @@ -85,3 +88,4 @@ USE_FUNC(Finisher) USE_FUNC(Locker) USE_FUNC(GetReader) USE_FUNC(Concater) +USE_FUNC(LengthDeferrer)