Packages

t

com.digitalasset.canton.version

HasMemoizedProtocolVersionedWithContextCompanion2

trait HasMemoizedProtocolVersionedWithContextCompanion2[ValueClass <: HasRepresentativeProtocolVersion, DeserializedValueClass <: HasRepresentativeProtocolVersion, Context] extends HasProtocolVersionedWrapperWithContextCompanion[ValueClass, DeserializedValueClass, Context]

Trait for companion objects of serializable classes with memoization and a (de)serialization context. 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 HasMemoizedProtocolVersionedWithContextCompanion if the type distinction between serialization and deserialization is not needed.

Linear Supertypes
HasProtocolVersionedWrapperWithContextCompanion[ValueClass, DeserializedValueClass, Context], HasProtocolVersionedWrapperCompanion[ValueClass, DeserializedValueClass], Serializable, HasSupportedProtoVersions[ValueClass], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HasMemoizedProtocolVersionedWithContextCompanion2
  2. HasProtocolVersionedWrapperWithContextCompanion
  3. HasProtocolVersionedWrapperCompanion
  4. Serializable
  5. HasSupportedProtoVersions
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. type DataByteString = ByteString
  2. type Deserializer = (Context, OriginalByteString, DataByteString) => ParsingResult[DeserializedValueClass]
  3. type OriginalByteString = ByteString
  4. type Serializer = (ValueClass) => ByteString
    Definition Classes
    HasSupportedProtoVersions
  5. type ThisRepresentativeProtocolVersion = RepresentativeProtocolVersion[HasMemoizedProtocolVersionedWithContextCompanion2.this.type]
    Attributes
    protected
    Definition Classes
    HasSupportedProtoVersions
  6. case class DefaultValueFromInclusive[T](attribute: (ValueClass) => T, attributeName: String, startInclusive: ThisRepresentativeProtocolVersion, defaultValue: T) extends DefaultValue[T] with Product with Serializable
    Definition Classes
    HasSupportedProtoVersions
  7. case class DefaultValueUntilExclusive[T](attribute: (ValueClass) => T, attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion, defaultValue: T) extends DefaultValue[T] with Product with Serializable
    Definition Classes
    HasSupportedProtoVersions
  8. case class EmptyOptionExactlyUntilExclusive[T](attribute: (ValueClass) => Option[T], attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion) extends DefaultValue[Option[T]] with Product with Serializable
    Definition Classes
    HasSupportedProtoVersions
  9. trait Invariant extends AnyRef
    Definition Classes
    HasSupportedProtoVersions
  10. 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
  11. case class OneElementSeqExactlyUntilExclusive[T](attribute: (ValueClass) => Seq[T], attributeName: String, untilExclusive: ThisRepresentativeProtocolVersion) extends DefaultValue[Seq[T]] with Product with Serializable
    Definition Classes
    HasSupportedProtoVersions
  12. 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
  13. case class SupportedProtoVersions extends Product with Serializable
    Definition Classes
    HasSupportedProtoVersions
  14. case class UnsupportedProtoCodec(fromInclusive: RepresentativeProtocolVersion[HasSupportedProtoVersions.this.type]) extends ProtoCodec with PrettyPrinting with Product with Serializable
    Attributes
    protected[this]
    Definition Classes
    HasSupportedProtoVersions
  15. 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

  1. 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
    HasProtocolVersionedWrapperCompanionHasSupportedProtoVersions
  2. abstract def supportedProtoVersions: SupportedProtoVersions

    Proto versions that are supported by fromByteString See the helper supportedProtoVersion below to define a Parser.

    Proto versions that are supported by fromByteString See the helper supportedProtoVersion below to define a Parser.

    Definition Classes
    HasSupportedProtoVersions

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. def deserializationErrorK(error: ProtoDeserializationError): (Context, OriginalByteString, DataByteString) => ParsingResult[DeserializedValueClass]
  7. def deserializeForVersion(rpv: RepresentativeProtocolVersion[HasMemoizedProtocolVersionedWithContextCompanion2.this.type], deserializeLegacyProto: (Deserializer) => ParsingResult[DeserializedValueClass], deserializeVersionedProto: => ParsingResult[DeserializedValueClass]): ParsingResult[DeserializedValueClass]
    Attributes
    protected
    Definition Classes
    HasProtocolVersionedWrapperCompanion
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. def fromByteString(expectedProtocolVersion: ProtocolVersionValidation)(context: Context)(bytes: OriginalByteString): ParsingResult[DeserializedValueClass]

    Variation of fromByteString that takes a ProtocolVersionValidation instead of a ProtocolVersion.

    Variation of fromByteString that takes a ProtocolVersionValidation instead of a ProtocolVersion.

    Use this method when sometimes no protocol version can be passed for the expectedProtocolVersion. For these cases use ProtocolVersionValidation.NoValidation.

    Definition Classes
    HasMemoizedProtocolVersionedWithContextCompanion2HasProtocolVersionedWrapperWithContextCompanion
  11. def fromByteString(expectedProtocolVersion: ProtocolVersion)(context: Context)(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.

    Hint: If the ValueClass requires the domain protocol version for its implementation, pass it as part of the deserialization context and consider using one of the traits suffixed with ValidationCompanion to avoid possibly confusing argument duplication of the domain protocol version.

    expectedProtocolVersion

    the protocol version on which the sync domain is running on

    context

    additional information which is required for the deserialization

    bytes

    an untrusted byte string with an embedded proto version

    Definition Classes
    HasMemoizedProtocolVersionedWithContextCompanion2HasProtocolVersionedWrapperWithContextCompanion
  12. def fromByteStringUnsafe(context: Context)(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.

    Hint: If the ValueClass requires the domain protocol version for its implementation, pass it as part of the deserialization context and consider using one of the traits suffixed with ValidationCompanion to avoid possibly confusing argument duplication of the domain protocol version.

    context

    additional information which required for the deserialization

    bytes

    a trusted byte string with an embedded proto version

    Definition Classes
    HasMemoizedProtocolVersionedWithContextCompanion2HasProtocolVersionedWrapperWithContextCompanion
  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  15. def invariants: Seq[Invariant]
    Definition Classes
    HasSupportedProtoVersions
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  20. 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
  21. def protoVersionFor(protocolVersion: RepresentativeProtocolVersion[HasMemoizedProtocolVersionedWithContextCompanion2.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
  22. def protocolVersionRepresentativeFor(protoVersion: ProtoVersion): ParsingResult[RepresentativeProtocolVersion[HasMemoizedProtocolVersionedWithContextCompanion2.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
  23. def protocolVersionRepresentativeFor(protocolVersion: ProtocolVersion): RepresentativeProtocolVersion[HasMemoizedProtocolVersionedWithContextCompanion2.this.type]
    Definition Classes
    HasSupportedProtoVersions
  24. def supportedProtoVersionMemoized[Proto <: GeneratedMessage](p: GeneratedMessageCompanion[Proto])(fromProto: (Context, Proto) => (OriginalByteString) => ParsingResult[DeserializedValueClass]): Deserializer
    Attributes
    protected
  25. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    AnyRef → Any
  27. def tryProtocolVersionRepresentativeFor(protoVersion: ProtoVersion): RepresentativeProtocolVersion[HasMemoizedProtocolVersionedWithContextCompanion2.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
  28. 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
  29. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  30. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. object LegacyProtoConverter extends Serializable
    Definition Classes
    HasSupportedProtoVersions
  33. object SupportedProtoVersions extends Serializable
    Definition Classes
    HasSupportedProtoVersions
  34. object UnsupportedProtoCodec extends Serializable
    Definition Classes
    HasSupportedProtoVersions
  35. object VersionedProtoConverter extends Serializable
    Definition Classes
    HasSupportedProtoVersions

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
    Deprecated

Inherited from HasProtocolVersionedWrapperWithContextCompanion[ValueClass, DeserializedValueClass, Context]

Inherited from HasProtocolVersionedWrapperCompanion[ValueClass, DeserializedValueClass]

Inherited from Serializable

Inherited from HasSupportedProtoVersions[ValueClass]

Inherited from AnyRef

Inherited from Any

Ungrouped