trait HasProtocolVersionedCompanion2[ValueClass <: HasRepresentativeProtocolVersion, DeserializedValueClass <: HasRepresentativeProtocolVersion] extends HasProtocolVersionedWrapperWithoutContextCompanion[ValueClass, DeserializedValueClass]
Trait for companion objects of serializable classes without memoization. Use this class if deserialization produces a different type than where serialization starts. For example, if a container can serialize its elements, but the container's deserializer does not deserialize the elements and instead leaves them as Bytestring.
Use HasProtocolVersionedCompanion if the type distinction between serialization and deserialization is not needed.
- Alphabetic
- By Inheritance
- HasProtocolVersionedCompanion2
- HasProtocolVersionedWrapperWithoutContextCompanion
- HasProtocolVersionedWrapperCompanion
- Serializable
- HasSupportedProtoVersions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type DataByteString = ByteString
- Definition Classes
- HasProtocolVersionedWrapperCompanion
- type Deserializer = (DataByteString) => ParsingResult[DeserializedValueClass]
- Definition Classes
- HasProtocolVersionedCompanion2 → HasSupportedProtoVersions
- type OriginalByteString = ByteString
- Definition Classes
- HasProtocolVersionedWrapperCompanion
- type Serializer = (ValueClass) => ByteString
- Definition Classes
- HasSupportedProtoVersions
- type ThisRepresentativeProtocolVersion = RepresentativeProtocolVersion[HasProtocolVersionedCompanion2.this.type]
- Attributes
- protected
- Definition Classes
- HasSupportedProtoVersions
- case class DefaultValueFromInclusive[T](attribute: (ValueClass) => T, attributeName: String, startInclusive: ThisRepresentativeProtocolVersion, defaultValue: T) extends DefaultValue[T] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- case class DefaultValueUntilExclusive[T](attribute: (ValueClass) => T, attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion, defaultValue: T) extends DefaultValue[T] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- case class EmptyOptionExactlyUntilExclusive[T](attribute: (ValueClass) => Option[T], attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion) extends DefaultValue[Option[T]] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- trait Invariant extends AnyRef
- Definition Classes
- HasSupportedProtoVersions
- case class LegacyProtoConverter extends ProtoCodec with PrettyPrinting with Product with Serializable
Used to (de)serialize classes which for legacy reasons where not wrapped in VersionedMessage Chances are this is NOT the class you want to use, use VersionedProtoConverter instead when adding serialization to a new class
Used to (de)serialize classes which for legacy reasons where not wrapped in VersionedMessage Chances are this is NOT the class you want to use, use VersionedProtoConverter instead when adding serialization to a new class
- Attributes
- protected[this]
- Definition Classes
- HasSupportedProtoVersions
- case class OneElementSeqExactlyUntilExclusive[T](attribute: (ValueClass) => Seq[T], attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion) extends DefaultValue[Seq[T]] with Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- sealed trait ProtoCodec extends AnyRef
Base class for (de)serializing from/to protobuf of ValueClass from a specific PV
Base class for (de)serializing from/to protobuf of ValueClass from a specific PV
- Definition Classes
- HasSupportedProtoVersions
- case class SupportedProtoVersions extends Product with Serializable
- Definition Classes
- HasSupportedProtoVersions
- case class UnsupportedProtoCodec(fromInclusive: RepresentativeProtocolVersion[HasSupportedProtoVersions.this.type]) extends ProtoCodec with PrettyPrinting with Product with Serializable
- Attributes
- protected[this]
- Definition Classes
- HasSupportedProtoVersions
- case class VersionedProtoConverter extends ProtoCodec with PrettyPrinting with Product with Serializable
Supported Proto version
Supported Proto version
- Attributes
- protected[this]
- Definition Classes
- HasSupportedProtoVersions
Abstract Value Members
- abstract def name: String
The name of the class as used for pretty-printing and error reporting
The name of the class as used for pretty-printing and error reporting
- Definition Classes
- HasProtocolVersionedWrapperCompanion → HasSupportedProtoVersions
- abstract def supportedProtoVersions: SupportedProtoVersions
Proto versions that are supported by
fromByteString
See the helpersupportedProtoVersion
below to define aParser
.Proto versions that are supported by
fromByteString
See the helpersupportedProtoVersion
below to define aParser
.- Definition Classes
- HasSupportedProtoVersions
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() @IntrinsicCandidate()
- def deserializationErrorK(error: ProtoDeserializationError): (DataByteString) => ParsingResult[DeserializedValueClass]
- Attributes
- protected
- Definition Classes
- HasProtocolVersionedCompanion2 → HasSupportedProtoVersions
- def deserializeForVersion(rpv: RepresentativeProtocolVersion[HasProtocolVersionedCompanion2.this.type], deserializeLegacyProto: (Deserializer) => ParsingResult[DeserializedValueClass], deserializeVersionedProto: => ParsingResult[DeserializedValueClass]): ParsingResult[DeserializedValueClass]
- Attributes
- protected
- Definition Classes
- HasProtocolVersionedWrapperCompanion
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def fromByteArrayUnsafe(bytes: Array[Byte]): ParsingResult[DeserializedValueClass]
Deserializes the given bytes without validation.
Deserializes the given bytes without validation.
Unsafe! Do NOT use this method unless you can justify that the given bytes originate from a trusted source. For example, this should be the case for deserialization of data that originates a database.
- bytes
trusted bytes with an embedded proto version
- def fromByteString(expectedProtocolVersion: ProtocolVersionValidation)(bytes: OriginalByteString): ParsingResult[DeserializedValueClass]
Variation of
fromByteString
that takes aProtocolVersionValidation
instead of aProtocolVersion
.Variation of
fromByteString
that takes aProtocolVersionValidation
instead of aProtocolVersion
.Use this method when sometimes no protocol version can be passed for the
expectedProtocolVersion
. For these cases useProtocolVersionValidation.NoValidation
.- Definition Classes
- HasProtocolVersionedCompanion2 → HasProtocolVersionedWrapperWithoutContextCompanion
- def fromByteString(expectedProtocolVersion: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[DeserializedValueClass]
Deserializes the given bytes and checks that the therein embedded proto version matches the
expectedProtocolVersion
.Deserializes the given bytes and checks that the therein embedded proto version matches the
expectedProtocolVersion
.Use this method whenever the origin of the given bytes cannot be trusted, and for example the proto version message field may be set maliciously. This should be your default choice for deserialization.
- expectedProtocolVersion
the protocol version on which the sync domain is running on
- bytes
an untrusted byte string with an embedded proto version
- Definition Classes
- HasProtocolVersionedCompanion2 → HasProtocolVersionedWrapperWithoutContextCompanion
- def fromByteStringLegacy(protocolVersion: ProtocolVersion)(bytes: OriginalByteString): ParsingResult[DeserializedValueClass]
Use this method when deserializing bytes for classes that have a legacy proto converter to explicitly set the version to use for the deserialization.
Use this method when deserializing bytes for classes that have a legacy proto converter to explicitly set the version to use for the deserialization.
- protocolVersion
protocol version of the bytes to be deserialized
- bytes
data
- def fromByteStringUnsafe(bytes: OriginalByteString): ParsingResult[DeserializedValueClass]
Deserializes the given bytes without validation.
Deserializes the given bytes without validation.
Unsafe! Do NOT use this method unless you can justify that the given bytes originate from a trusted source.
- bytes
a trusted byte string with an embedded proto version
- Definition Classes
- HasProtocolVersionedCompanion2 → HasProtocolVersionedWrapperWithoutContextCompanion
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- implicit def hasVersionedWrapperGetResult(implicit getResultByteArray: GetResult[Array[Byte]]): GetResult[DeserializedValueClass]
- implicit def hasVersionedWrapperGetResultO(implicit getResultByteArray: GetResult[Option[Array[Byte]]]): GetResult[Option[DeserializedValueClass]]
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def invariants: Seq[Invariant]
- Definition Classes
- HasSupportedProtoVersions
- 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() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def parseDelimitedFromUnsafe(input: InputStream): Option[ParsingResult[DeserializedValueClass]]
Deserializes a message using a delimiter (the message length) from the given input stream.
Deserializes a message using a delimiter (the message length) from the given input stream.
Unsafe! No deserialization validation is performed.
Do NOT use this method unless you can justify that the given bytes originate from a trusted source.
This method works in conjunction with com.digitalasset.canton.version.HasProtocolVersionedWrapper.writeDelimitedTo which should have been used to serialize the message. It is useful for deserializing multiple messages from a single input stream through repeated invocations.
Deserialization is only supported for com.digitalasset.canton.version.VersionedMessage.
- input
the source from which a message is deserialized
- returns
an Option that is None when there are no messages left anymore, otherwise it wraps an Either where left represents a deserialization error (exception) and right represents the successfully deserialized message
- def protoVersionFor(protocolVersion: ProtocolVersion): ProtoVersion
Return the Proto version corresponding to the protocol version
Return the Proto version corresponding to the protocol version
- Definition Classes
- HasSupportedProtoVersions
- def protoVersionFor(protocolVersion: RepresentativeProtocolVersion[HasProtocolVersionedCompanion2.this.type]): ProtoVersion
Return the Proto version corresponding to the representative protocol version
Return the Proto version corresponding to the representative protocol version
- Definition Classes
- HasSupportedProtoVersions
- def protocolVersionRepresentativeFor(protoVersion: ProtoVersion): ParsingResult[RepresentativeProtocolVersion[HasProtocolVersionedCompanion2.this.type]]
Return the representative protocol version corresponding to the proto version
Return the representative protocol version corresponding to the proto version
- Definition Classes
- HasSupportedProtoVersions
- def protocolVersionRepresentativeFor(protocolVersion: ProtocolVersion): RepresentativeProtocolVersion[HasProtocolVersionedCompanion2.this.type]
- Definition Classes
- HasSupportedProtoVersions
- def readFromFileUnsafe(inputFile: String): Either[String, DeserializedValueClass]
Deserializes the data from the given file without validation.
Deserializes the data from the given file without validation.
Unsafe! Do NOT use this method unless you can justify that the data originates from a trusted source.
- def supportedProtoVersion[Proto <: GeneratedMessage](p: GeneratedMessageCompanion[Proto])(fromProto: (Proto) => ParsingResult[DeserializedValueClass]): Deserializer
- Attributes
- protected
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tryProtocolVersionRepresentativeFor(protoVersion: ProtoVersion): RepresentativeProtocolVersion[HasProtocolVersionedCompanion2.this.type]
Returns the representative protocol version corresponding to the proto version, throws otherwise.
Returns the representative protocol version corresponding to the proto version, throws otherwise.
- Definition Classes
- HasSupportedProtoVersions
- def tryReadFromFileUnsafe(inputFile: String): DeserializedValueClass
Deserializes the data from the given file without validation.
Deserializes the data from the given file without validation.
Unsafe! Do NOT use this method unless you can justify that the data originates from a trusted source.
- def validateInstance(instance: ValueClass, representativeProtocolVersion: ThisRepresentativeProtocolVersion): Either[String, Unit]
Will check that default value rules defined in
companionObj.defaultValues
hold.Will check that default value rules defined in
companionObj.defaultValues
hold.- Definition Classes
- HasProtocolVersionedWrapperCompanion
- 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])
- object LegacyProtoConverter extends Serializable
- Definition Classes
- HasSupportedProtoVersions
- object SupportedProtoVersions extends Serializable
- Definition Classes
- HasSupportedProtoVersions
- object UnsupportedProtoCodec extends Serializable
- Definition Classes
- HasSupportedProtoVersions
- object VersionedProtoConverter extends Serializable
- Definition Classes
- HasSupportedProtoVersions