com.digitalasset.canton.domain.sequencing.sequencer.driver.isolation
SequencerDriverReflectionIsolatingProxy
final class SequencerDriverReflectionIsolatingProxy extends SequencerDriver
The idea is the following: this class, typically used by driver factories loaded by Canton via SPI,
proxies by reflection and loads in an isolated classloader an implementation of the "bare", i.e.
pure-JDK, BareSequencerDriver
interface. The "bare" implementation is packaged as an uberjar
included in the outer uberjar.
Note that in the future we may agree to promote the "bare" driver API as official driver API in Canton, thus reducing the scope of reflection-based adaptation to data conversions; the drawback is that pure-JDK APIs are far less expressive than rich Scala APIs, thus making it harder for the caller to write and maintain code.
- Alphabetic
- By Inheritance
- SequencerDriverReflectionIsolatingProxy
- SequencerDriver
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def acknowledge(acknowledgement: ByteString)(implicit traceContext: TraceContext): Future[Unit]
Distribute an acknowledgement request.
Distribute an acknowledgement request. Results in a com.digitalasset.canton.domain.block.RawLedgerBlock.RawBlockEvent.Acknowledgment.
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → SequencerDriver
- def adminServices: Seq[BindableService]
Services for administering the ledger driver.
Services for administering the ledger driver. These services will be exposed on the sequencer node's admin API endpoint.
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → SequencerDriver
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def close(): Unit
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → AutoCloseable
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def health(implicit traceContext: TraceContext): Future[SequencerDriverHealthStatus]
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → SequencerDriver
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def registerMember(member: String)(implicit traceContext: TraceContext): Future[Unit]
Register the given member.
Register the given member. Results in a com.digitalasset.canton.domain.block.RawLedgerBlock.RawBlockEvent.AddMember.
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → SequencerDriver
- def send(request: ByteString)(implicit traceContext: TraceContext): Future[Unit]
Send a submission request.
Send a submission request. Results in a com.digitalasset.canton.domain.block.RawLedgerBlock.RawBlockEvent.Send.
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → SequencerDriver
- def subscribe()(implicit traceContext: TraceContext): Source[block.RawLedgerBlock, KillSwitch]
Delivers a stream of blocks starting with
firstBlockHeight
(if specified in the factory call) or the first block serveable.Delivers a stream of blocks starting with
firstBlockHeight
(if specified in the factory call) or the first block serveable. Block heights must be consecutive.Fails if
firstBlockHeight
refers to a block whose sequencing the sequencer node has not yet observed or that has already been pruned.Must succeed if an earlier call to
subscribe
delivered a block with heightfirstBlockHeight
unless the block has been pruned in between.This method will be called only once, so implementations do not have to try to create separate sources on every call to this method. It is acceptable to for the driver to have one internal source and just return it here.
- Definition Classes
- SequencerDriverReflectionIsolatingProxy → SequencerDriver
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])