Class: CDC::Core::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/cdc/core/processor.rb

Overview

Base class for CDC event processors.

Subclasses implement #process and may opt into Ractor-safe execution by calling .ractor_safe!. cdc-core itself does not schedule Ractors; it only records processor capabilities for runtime layers such as cdc-ractor.

Direct Known Subclasses

CompositeProcessor

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.ractor_safe!true

Mark this processor class as safe to execute in Ractor-aware runtimes.

Returns:

  • (true)


14
15
16
# File 'lib/cdc/core/processor.rb', line 14

def self.ractor_safe!
  @ractor_safe = true
end

.ractor_safe?Boolean

Whether this processor class has declared Ractor safety.

Returns:

  • (Boolean)


21
22
23
# File 'lib/cdc/core/processor.rb', line 21

def self.ractor_safe?
  @ractor_safe == true
end

Instance Method Details

#process(_event) ⇒ Object

Process one event.

Subclasses must override this method.

Parameters:

Raises:

  • (NotImplementedError)

    when not implemented by a subclass



38
39
40
# File 'lib/cdc/core/processor.rb', line 38

def process(_event)
  raise NotImplementedError, "#{self.class} must implement #process"
end

#ractor_safe?Boolean

Whether this processor instance is Ractor-safe.

Returns:

  • (Boolean)


28
29
30
# File 'lib/cdc/core/processor.rb', line 28

def ractor_safe?
  self.class.ractor_safe?
end