A connection to the Cloud Pub/Sub service to publish events.
This interface defines pure-virtual methods for each of the user-facing overload sets in Publisher. That is, all of Publisher's overloads will forward to the one pure-virtual method declared in this interface. This allows users to inject custom behavior (e.g., with a Google Mock object) in a Publisher object for use in their own tests.
To create a concrete instance that connects you to the real Cloud Pub/Sub service, see MakePublisherConnection().
The *Params nested classes
Applications may define classes derived from PublisherConnection, for example, because they want to mock the class. To avoid breaking all such derived classes when we change the number or type of the arguments to the member functions we define lightweight structures to pass the arguments.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class PublisherConnection (2.39.0)\n\nVersion 2.39.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/pubsub/latest/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.41.0](/cpp/docs/reference/pubsub/2.41.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.40.0](/cpp/docs/reference/pubsub/2.40.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.39.0](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.38.0](/cpp/docs/reference/pubsub/2.38.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.37.0](/cpp/docs/reference/pubsub/2.37.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.36.0](/cpp/docs/reference/pubsub/2.36.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.35.0](/cpp/docs/reference/pubsub/2.35.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.34.0](/cpp/docs/reference/pubsub/2.34.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.33.0](/cpp/docs/reference/pubsub/2.33.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.32.0](/cpp/docs/reference/pubsub/2.32.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.31.0](/cpp/docs/reference/pubsub/2.31.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.30.0](/cpp/docs/reference/pubsub/2.30.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.29.0](/cpp/docs/reference/pubsub/2.29.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.28.0](/cpp/docs/reference/pubsub/2.28.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.27.0](/cpp/docs/reference/pubsub/2.27.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.26.0](/cpp/docs/reference/pubsub/2.26.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.25.1](/cpp/docs/reference/pubsub/2.25.1/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.24.0](/cpp/docs/reference/pubsub/2.24.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.23.0](/cpp/docs/reference/pubsub/2.23.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.22.1](/cpp/docs/reference/pubsub/2.22.1/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.21.0](/cpp/docs/reference/pubsub/2.21.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.20.0](/cpp/docs/reference/pubsub/2.20.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.19.0](/cpp/docs/reference/pubsub/2.19.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.18.0](/cpp/docs/reference/pubsub/2.18.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.17.0](/cpp/docs/reference/pubsub/2.17.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.16.0](/cpp/docs/reference/pubsub/2.16.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.15.1](/cpp/docs/reference/pubsub/2.15.1/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.14.0](/cpp/docs/reference/pubsub/2.14.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.13.0](/cpp/docs/reference/pubsub/2.13.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.12.0](/cpp/docs/reference/pubsub/2.12.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection)\n- [2.11.0](/cpp/docs/reference/pubsub/2.11.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection) \nA connection to the Cloud Pub/Sub service to publish events. \nThis interface defines pure-virtual methods for each of the user-facing overload sets in [`Publisher`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1Publisher). That is, all of [`Publisher`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1Publisher)'s overloads will forward to the one pure-virtual method declared in this interface. This allows users to inject custom behavior (e.g., with a Google Mock object) in a [`Publisher`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1Publisher) object for use in their own tests.\n\nTo create a concrete instance that connects you to the real Cloud Pub/Sub service, see [`MakePublisherConnection()`](/cpp/docs/reference/pubsub/2.39.0/namespacegoogle_1_1cloud_1_1pubsub).\n\n###### The \\*Params nested classes\n\nApplications may define classes derived from [`PublisherConnection`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1PublisherConnection), for example, because they want to mock the class. To avoid breaking all such derived classes when we change the number or type of the arguments to the member functions we define lightweight structures to pass the arguments.\n\nFunctions\n---------\n\n### virtual Publish(PublishParams)\n\nDefines the interface for [`Publisher::Publish()`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1Publisher#classgoogle_1_1cloud_1_1pubsub_1_1Publisher_1adcaba4f8339e31d6d296eab026164a4a)\n\n### virtual Flush(FlushParams)\n\nDefines the interface for [`Publisher::Flush()`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1Publisher#classgoogle_1_1cloud_1_1pubsub_1_1Publisher_1a11bcd982eb45108761f74ad20c634593)\n\n### virtual ResumePublish(ResumePublishParams)\n\nDefines the interface for [`Publisher::ResumePublish()`](/cpp/docs/reference/pubsub/2.39.0/classgoogle_1_1cloud_1_1pubsub_1_1Publisher#classgoogle_1_1cloud_1_1pubsub_1_1Publisher_1a1390dff08accd0d88ee196ee7075d908)"]]