aboutsummaryrefslogtreecommitdiff
path: root/object/store/quarantine.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-30 18:18:06 +0000
committerGravatar Runxi Yu2026-03-30 18:18:06 +0000
commit3ba67c27db0cf52b120e4f15c09047aa96d3bcb4 (patch)
treecbd94566f5c9d2732f8527e88815e3b63413a694 /object/store/quarantine.go
parentobject/store/dual: Dual shouldn't satisfy {Object,Pack}Quarantiner at all (diff)
signatureNo signature
object/store: Unify writers and fix naming v0.1.160
Diffstat (limited to 'object/store/quarantine.go')
-rw-r--r--object/store/quarantine.go25
1 files changed, 14 insertions, 11 deletions
diff --git a/object/store/quarantine.go b/object/store/quarantine.go
index a9ba4f55..6db12084 100644
--- a/object/store/quarantine.go
+++ b/object/store/quarantine.go
@@ -1,17 +1,20 @@
package objectstore
-// Quarantine is one quarantined write. It is intended to be embedded.
+// WriterQuarantine represents one quarantined write that accepts both object-
+// wise and pack-wise writes.
type Quarantine interface {
- // Reader exposes the objects written into this quarantine.
- Reader
+ BaseQuarantine
+ Writer
+}
- // Promote publishes quarantined writes into their final destination.
- //
- // Promote invalidates the receiver.
- Promote() error
+// QuarantineOptions controls the options for one coordinated quarantine creation.
+type QuarantineOptions struct {
+ Object ObjectQuarantineOptions
+ Pack PackQuarantineOptions
+}
- // Discard abandons quarantined writes.
- //
- // Discard invalidates the receiver.
- Discard() error
+// WriterQuarantiner creates coordinated quarantines that support both object-
+// wise and pack-wise writes.
+type Quarantiner interface {
+ BeginQuarantine(opts QuarantineOptions) (Quarantine, error)
}