Class TtlAwareSerializer<T>

  • All Implemented Interfaces:
    Serializable

    public class TtlAwareSerializer<T>
    extends org.apache.flink.api.common.typeutils.TypeSerializer<T>
    This class wraps a TypeSerializer with ttl awareness. It will return true when the wrapped TypeSerializer is instance of TtlStateFactory.TtlSerializer. Also, it wraps the value migration process between TtlSerializer and non-ttl typeSerializer.
    See Also:
    Serialized Form
    • Constructor Detail

      • TtlAwareSerializer

        public TtlAwareSerializer​(org.apache.flink.api.common.typeutils.TypeSerializer<T> typeSerializer)
    • Method Detail

      • isImmutableType

        public boolean isImmutableType()
        Specified by:
        isImmutableType in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • duplicate

        public org.apache.flink.api.common.typeutils.TypeSerializer<T> duplicate()
        Specified by:
        duplicate in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • createInstance

        public T createInstance()
        Specified by:
        createInstance in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • copy

        public T copy​(T from)
        Specified by:
        copy in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • copy

        public T copy​(T from,
                      T reuse)
        Specified by:
        copy in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • getLength

        public int getLength()
        Specified by:
        getLength in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • serialize

        public void serialize​(T record,
                              org.apache.flink.core.memory.DataOutputView target)
                       throws IOException
        Specified by:
        serialize in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
        Throws:
        IOException
      • deserialize

        public T deserialize​(org.apache.flink.core.memory.DataInputView source)
                      throws IOException
        Specified by:
        deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
        Throws:
        IOException
      • deserialize

        public T deserialize​(T reuse,
                             org.apache.flink.core.memory.DataInputView source)
                      throws IOException
        Specified by:
        deserialize in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
        Throws:
        IOException
      • equals

        public boolean equals​(Object o)
        Specified by:
        equals in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • migrateValueFromPriorSerializer

        public void migrateValueFromPriorSerializer​(TtlAwareSerializer<T> priorTtlAwareSerializer,
                                                    org.apache.flink.util.function.SupplierWithException<T,​IOException> inputSupplier,
                                                    org.apache.flink.core.memory.DataOutputView target,
                                                    TtlTimeProvider ttlTimeProvider)
                                             throws IOException
        Throws:
        IOException
      • copy

        public void copy​(org.apache.flink.core.memory.DataInputView source,
                         org.apache.flink.core.memory.DataOutputView target)
                  throws IOException
        Specified by:
        copy in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
        Throws:
        IOException
      • isTtlEnabled

        public boolean isTtlEnabled()
      • getOriginalTypeSerializer

        public org.apache.flink.api.common.typeutils.TypeSerializer<T> getOriginalTypeSerializer()
      • snapshotConfiguration

        public org.apache.flink.api.common.typeutils.TypeSerializerSnapshot<T> snapshotConfiguration()
        Specified by:
        snapshotConfiguration in class org.apache.flink.api.common.typeutils.TypeSerializer<T>
      • isSerializerTtlEnabled

        public static boolean isSerializerTtlEnabled​(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)
      • wrapTtlAwareSerializer

        public static org.apache.flink.api.common.typeutils.TypeSerializer<?> wrapTtlAwareSerializer​(org.apache.flink.api.common.typeutils.TypeSerializer<?> typeSerializer)