Class: Mammoth::OperationalState::Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/mammoth/operational_state/adapter.rb

Overview

Base contract for operational state adapters.

Direct Known Subclasses

SQLiteAdapter

Instance Method Summary collapse

Constructor Details

#initializevoid



9
# File 'lib/mammoth/operational_state/adapter.rb', line 9

def initialize; end

Instance Method Details

#bootstrap!Mammoth::OperationalState::Adapter

Initialize the adapter's durable state.

Returns:

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/mammoth/operational_state/adapter.rb', line 29

def bootstrap!
  raise NotImplementedError, "#{self.class} must implement #bootstrap!"
end

#checkpoint_storeMammoth::CheckpointStore

Returns:

Raises:

  • (NotImplementedError)


12
13
14
# File 'lib/mammoth/operational_state/adapter.rb', line 12

def checkpoint_store
  raise NotImplementedError, "#{self.class} must implement #checkpoint_store"
end

#dead_letter_storeMammoth::DeadLetterStore

Returns:

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/mammoth/operational_state/adapter.rb', line 17

def dead_letter_store
  raise NotImplementedError, "#{self.class} must implement #dead_letter_store"
end

#delivered_envelope_storeMammoth::DeliveredEnvelopeStore

Returns:

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/mammoth/operational_state/adapter.rb', line 22

def delivered_envelope_store
  raise NotImplementedError, "#{self.class} must implement #delivered_envelope_store"
end

#ready?Boolean

Report whether the adapter can serve operational state.

Implementations must translate backend-specific failures into false.

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


38
39
40
# File 'lib/mammoth/operational_state/adapter.rb', line 38

def ready?
  raise NotImplementedError, "#{self.class} must implement #ready?"
end

#summaryHash

Returns JSON-friendly state summary.

Returns:

  • (Hash)

    JSON-friendly state summary



43
44
45
46
47
48
49
50
# File 'lib/mammoth/operational_state/adapter.rb', line 43

def summary
  {
    adapter: "unknown",
    checkpoints: checkpoint_store.count,
    dead_letters: dead_letter_store.count,
    delivered_envelopes: delivered_envelope_store.count
  }
end