class ServiceListener

File Information

Library: OSP
Package: Service
Header: Poco/OSP/ServiceListener.h


ServiceListener objects are used to dynamically react to service registrations and unregistrations.

A ServiceListener is created with a query string (in same format as the one passed to ServiceRegistry::find()), as well as two event delegates by calling ServiceRegistry::createListener().

Whenever a service is registered that matches the given query, the serviceRegistered event is fired.

Correspondingly, when a matching service is unregistered, the serviceUnregistered event is fired.

When the ServiceListener is created and there are already services registered that match the query, the serviceRegistered delegate is immediately called for each service.


Direct Base Classes: Poco::RefCountedObject

All Base Classes: Poco::RefCountedObject

Member Summary

Member Functions: init, onServiceRefRegistered, onServiceRefUnregistered, onServiceRegistered, onServiceUnregistered

Inherited Functions: duplicate, referenceCount, release

Types Aliases


using ConstPtr = const Ptr;


using Ptr = Poco::AutoPtr < ServiceListener >;


ServiceListener protected inline

template < typename Delegate > ServiceListener(
    ServiceRegistry & registry,
    const std::string & query,
    const Delegate & registeredDelegate,
    const Delegate & unregisteredDelegate


~ServiceListener virtual


Destroys the ServiceListener.

Member Functions

init protected

void init(
    const std::string & query

onServiceRefRegistered protected

void onServiceRefRegistered(
    const ServiceRef::Ptr & pServiceRef

onServiceRefUnregistered protected

void onServiceRefUnregistered(
    const ServiceRef::Ptr & pServiceRef

onServiceRegistered protected

void onServiceRegistered(
    ServiceEvent & event

onServiceUnregistered protected

void onServiceUnregistered(
    ServiceEvent & event



Poco::BasicEvent < const ServiceRef::Ptr > serviceRegistered;

Fired when a service matching the query string has been newly registered.


Poco::BasicEvent < const ServiceRef::Ptr > serviceUnregistered;

Fired when a previously registered service matching the query string has been unregistered.