Library: MongoDB
Package: MongoDB
Header: Poco/MongoDB/TopologyChangeNotification.h
Description
Notification sent when MongoDB replica set topology changes.
This notification is posted to Poco::NotificationCenter::defaultCenter() whenever a topology change is detected during topology refresh.
The notification contains a Dynamic::Struct with the following members: - replicaSet (std::string): The replica set name - timestamp (Poco::Int64): Timestamp in seconds since Unix epoch - topologyType (std::string): Human-readable topology type
(e.g., "Replica Set (with Primary)", "Single Server", etc.)
- changeDescription (std::string): Brief description of what changed
(e.g., "Primary elected: mongo1:27017", "Servers: 2 -> 3")
Example usage:
class MyClass
{
public:
MyClass()
{
// Register observer
NotificationCenter::defaultCenter().addNObserver(
*this,
&MyClass::handleTopologyChange
);
}
~MyClass()
{
// Unregister observer
NotificationCenter::defaultCenter().removeNObserver(
*this,
&MyClass::handleTopologyChange
);
}
void handleTopologyChange(const AutoPtr<TopologyChangeNotification>& pNf)
{
const auto& data = pNf->data();
std::string rsName = data["replicaSet"];
Poco::Int64 timestamp = data["timestamp"];
std::string topologyType = data["topologyType"];
std::string changeDesc = data["changeDescription"];
// Handle topology change...
}
};
Inheritance
Direct Base Classes: Poco::Notification
All Base Classes: Poco::Notification, Poco::RefCountedObject
Member Summary
Inherited Functions: duplicate, name, referenceCount, release
Types Aliases
Ptr
using Ptr = AutoPtr < TopologyChangeNotification >;
Constructors
TopologyChangeNotification
TopologyChangeNotification(
const Dynamic::Struct < std::string > & data
);
Creates a TopologyChangeNotification with the given data.
Member Functions
data
const Dynamic::Struct < std::string > & data() const;
Returns the topology change data.
name
std::string name() const override;
Returns the notification name.
See also: Poco::Notification::name()