trait HasProtocolVersionedWrapper[ValueClass] extends HasRepresentativeProtocolVersion
Trait for classes that can be serialized by using ProtoBuf. See "CONTRIBUTING.md" for our guidelines on serialization.
This wrapper is to be used when every instance can be tied to a single protocol version. Consequently, some attributes of the class may depend on the protocol version (e.g., the signature). The protocol version is then bundled with the instance and does not need to be passed to the toProtoVersioned, toByteString and getCryptographicEvidence methods.
The underlying ProtoClass is com.digitalasset.canton.version.UntypedVersionedMessage but we often specify the typed alias com.digitalasset.canton.version.VersionedMessage instead.
- Self Type
- HasProtocolVersionedWrapper[ValueClass] with ValueClass
- Alphabetic
- By Inheritance
- HasProtocolVersionedWrapper
- HasRepresentativeProtocolVersion
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def companionObj: HasProtocolVersionedWrapperCompanion[ValueClass]
- Attributes
- protected
- abstract def representativeProtocolVersion: RepresentativeProtocolVersion[ValueClass]
We have a correspondence {protobuf version} <-> {[protocol version]}: each proto version correspond to a list of consecutive protocol versions.
We have a correspondence {protobuf version} <-> {[protocol version]}: each proto version correspond to a list of consecutive protocol versions. The representative is one instance of this list, usually the smallest value. In other words, the protobuf versions induce an equivalence relation on the list of protocol version, thus use of
representative
.The method
protocolVersionRepresentativeFor
below allows to query the representative for an equivalence class.- Definition Classes
- HasProtocolVersionedWrapper → HasRepresentativeProtocolVersion
Concrete 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
- 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()
- 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 isEquivalentTo(protocolVersion: ProtocolVersion): Boolean
- 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 protobufVersion: ProtobufVersion
Yields the Protobuf version that this class will be serialized to
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toByteArray: Array[Byte]
Yields a byte array representation of the corresponding
UntypedVersionedMessage
wrapper of this instance. - def toByteString: ByteString
Yields a byte string representation of the corresponding
UntypedVersionedMessage
wrapper of this instance. - def toProtoVersioned: VersionedMessage[ValueClass]
Yields the proto representation of the class inside an
UntypedVersionedMessage
wrapper.Yields the proto representation of the class inside an
UntypedVersionedMessage
wrapper.Subclasses should make this method public by default, as this supports composing proto serializations. Keep it protected, if there are good reasons for it (e.g. com.digitalasset.canton.serialization.ProtocolVersionedMemoizedEvidence).
- 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])
- def writeToFile(outputFile: String): Unit