Class ProducerBase<T>

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, org.apache.pulsar.client.api.Producer<T>
    Direct Known Subclasses:
    PartitionedProducerImpl, ProducerImpl

    public abstract class ProducerBase<T>
    extends java.lang.Object
    implements org.apache.pulsar.client.api.Producer<T>
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.apache.pulsar.client.api.Message<?> beforeSend​(org.apache.pulsar.client.api.Message<?> message)  
      protected boolean changeToConnecting()  
      protected boolean changeToReadyState()  
      protected boolean changeToRegisteringSchemaState()  
      void close()  
      abstract java.util.concurrent.CompletableFuture<java.lang.Void> closeAsync()  
      void flush()  
      protected org.apache.pulsar.client.impl.HandlerState.State getAndUpdateState​(java.util.function.UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater)  
      PulsarClientImpl getClient()  
      ProducerConfigurationData getConfiguration()  
      protected org.apache.pulsar.client.impl.HandlerState.State getState()  
      java.lang.String getTopic()  
      org.apache.pulsar.client.api.TypedMessageBuilder<T> newMessage()  
      <V> org.apache.pulsar.client.api.TypedMessageBuilder<V> newMessage​(org.apache.pulsar.client.api.Schema<V> schema)  
      org.apache.pulsar.client.api.TypedMessageBuilder<T> newMessage​(org.apache.pulsar.client.api.transaction.Transaction txn)  
      protected void onPartitionsChange​(java.lang.String topicName, int partitions)  
      protected void onSendAcknowledgement​(org.apache.pulsar.client.api.Message<?> message, org.apache.pulsar.client.api.MessageId msgId, java.lang.Throwable exception)  
      java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Producer<T>> producerCreatedFuture()  
      org.apache.pulsar.client.api.MessageId send​(org.apache.pulsar.client.api.Message<?> message)  
      org.apache.pulsar.client.api.MessageId send​(T message)  
      java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync​(org.apache.pulsar.client.api.Message<?> message)  
      java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync​(T message)  
      protected void setState​(org.apache.pulsar.client.impl.HandlerState.State s)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.apache.pulsar.client.api.Producer

        flushAsync, getLastDisconnectedTimestamp, getLastSequenceId, getProducerName, getStats, isConnected
    • Field Detail

      • producerCreatedFuture

        protected final java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Producer<T>> producerCreatedFuture
      • schema

        protected final org.apache.pulsar.client.api.Schema<T> schema
      • schemaCache

        protected final org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap<org.apache.pulsar.common.protocol.schema.SchemaHash,​byte[]> schemaCache
      • topic

        protected final java.lang.String topic
    • Constructor Detail

    • Method Detail

      • send

        public org.apache.pulsar.client.api.MessageId send​(T message)
                                                    throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        send in interface org.apache.pulsar.client.api.Producer<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • sendAsync

        public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync​(T message)
        Specified by:
        sendAsync in interface org.apache.pulsar.client.api.Producer<T>
      • sendAsync

        public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.MessageId> sendAsync​(org.apache.pulsar.client.api.Message<?> message)
      • newMessage

        public org.apache.pulsar.client.api.TypedMessageBuilder<T> newMessage()
        Specified by:
        newMessage in interface org.apache.pulsar.client.api.Producer<T>
      • newMessage

        public <V> org.apache.pulsar.client.api.TypedMessageBuilder<V> newMessage​(org.apache.pulsar.client.api.Schema<V> schema)
        Specified by:
        newMessage in interface org.apache.pulsar.client.api.Producer<T>
      • newMessage

        public org.apache.pulsar.client.api.TypedMessageBuilder<T> newMessage​(org.apache.pulsar.client.api.transaction.Transaction txn)
        Specified by:
        newMessage in interface org.apache.pulsar.client.api.Producer<T>
      • send

        public org.apache.pulsar.client.api.MessageId send​(org.apache.pulsar.client.api.Message<?> message)
                                                    throws org.apache.pulsar.client.api.PulsarClientException
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • flush

        public void flush()
                   throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        flush in interface org.apache.pulsar.client.api.Producer<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • close

        public void close()
                   throws org.apache.pulsar.client.api.PulsarClientException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in interface org.apache.pulsar.client.api.Producer<T>
        Throws:
        org.apache.pulsar.client.api.PulsarClientException
      • closeAsync

        public abstract java.util.concurrent.CompletableFuture<java.lang.Void> closeAsync()
        Specified by:
        closeAsync in interface org.apache.pulsar.client.api.Producer<T>
      • getTopic

        public java.lang.String getTopic()
        Specified by:
        getTopic in interface org.apache.pulsar.client.api.Producer<T>
      • producerCreatedFuture

        public java.util.concurrent.CompletableFuture<org.apache.pulsar.client.api.Producer<T>> producerCreatedFuture()
      • beforeSend

        protected org.apache.pulsar.client.api.Message<?> beforeSend​(org.apache.pulsar.client.api.Message<?> message)
      • onSendAcknowledgement

        protected void onSendAcknowledgement​(org.apache.pulsar.client.api.Message<?> message,
                                             org.apache.pulsar.client.api.MessageId msgId,
                                             java.lang.Throwable exception)
      • onPartitionsChange

        protected void onPartitionsChange​(java.lang.String topicName,
                                          int partitions)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • changeToReadyState

        protected boolean changeToReadyState()
      • changeToRegisteringSchemaState

        protected boolean changeToRegisteringSchemaState()
      • getState

        protected org.apache.pulsar.client.impl.HandlerState.State getState()
      • changeToConnecting

        protected boolean changeToConnecting()
      • setState

        protected void setState​(org.apache.pulsar.client.impl.HandlerState.State s)
      • getAndUpdateState

        protected org.apache.pulsar.client.impl.HandlerState.State getAndUpdateState​(java.util.function.UnaryOperator<org.apache.pulsar.client.impl.HandlerState.State> updater)