libpqxx  7.6.1
notification.hxx
1 /* Definition of the pqxx::notification_receiver functor interface.
2  *
3  * pqxx::notification_receiver handles incoming notifications.
4  *
5  * DO NOT INCLUDE THIS FILE DIRECTLY; include pqxx/notification instead.
6  *
7  * Copyright (c) 2000-2022, Jeroen T. Vermeulen.
8  *
9  * See COPYING for copyright license. If you did not receive a file called
10  * COPYING with this source code, please notify the distributor of this
11  * mistake, or contact the author.
12  */
13 #ifndef PQXX_H_NOTIFICATION
14 #define PQXX_H_NOTIFICATION
15 
16 #include "pqxx/compiler-public.hxx"
17 #include "pqxx/internal/compiler-internal-pre.hxx"
18 
19 #include <string>
20 
21 #include "pqxx/types.hxx"
22 
23 
24 namespace pqxx
25 {
27 
55 class PQXX_LIBEXPORT PQXX_NOVTABLE notification_receiver
56 {
57 public:
59 
63  notification_receiver(connection &c, std::string_view channel);
69  virtual ~notification_receiver();
70 
72  [[nodiscard]] std::string const &channel() const { return m_channel; }
73 
74  // TODO: Change API to take payload as zview instead of string ref.
76 
83  virtual void operator()(std::string const &payload, int backend_pid) = 0;
84 
85 protected:
86  connection &conn() const noexcept { return m_conn; }
87 
88 private:
89  connection &m_conn;
90  std::string m_channel;
91 };
92 } // namespace pqxx
93 
94 #include "pqxx/internal/compiler-internal-post.hxx"
95 #endif
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:26
Connection to a database.
Definition: connection.hxx:181
Definition: notification.hxx:56
notification_receiver(notification_receiver const &)=delete
Register the receiver with a connection.
notification_receiver & operator=(notification_receiver const &)=delete
Register the receiver with a connection.
std::string const & channel() const
The channel that this receiver listens on.
Definition: notification.hxx:72
virtual void operator()(std::string const &payload, int backend_pid)=0
Overridable: action to invoke when notification arrives.
connection & conn() const noexcept
Definition: notification.hxx:86