Skip to content
  • Daniel Vrátil's avatar
    Implement notification subscription management via Protocol · f257797f
    Daniel Vrátil authored
    NotificationManager now lives in separete thread. It creates
    NotificationSubscriber object for each new connection on NotificationServer.
    Each connection does not have its own thread as in case of Connection,
    because the communication there is minimal and we don't mind if the
    NotificationManager thread gets blocked for a short moment.
    
    Each Subscriber keeps state of the subscription. When a notification is
    delivered to NotificationManager, it will pass them to all subscribers
    which will then decide whether they accept the notification and eventually
    send it to subscribed client.
    
    Currently this breaks notification and subscriber debugging because we
    completely removed the DBus introspection. The plan is to introduce a
    subscription change notification (a type of Protocol::ChangeNotification)
    that clients like AkonadiConsole could subscribe to to get information about
    new or removed subscribers and their subscription state.
    f257797f