37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
/*
|
|
Copyright (c) 2013 IOnU Security Inc. All rights reserved
|
|
Created October 2013 by Kendrick Webster
|
|
|
|
K2Daemon/OfficeSubscriptions.h - header for office subscriptions module
|
|
|
|
Clients may subscribe to online/offline status notifications for clients
|
|
within a specified list of offices. This module keeps track of which
|
|
clients are interested in which offices. It also facilitates the
|
|
delivery of status notifications to interested clients.
|
|
*/
|
|
#pragma once
|
|
|
|
namespace OfficeSubscriptions
|
|
{
|
|
// Subscribe a client to a list of offices (represented as
|
|
// office URNs delimited by <K2IPC_OFFICE_DELIMITER>).
|
|
// The list is replaced (not appended).
|
|
// An empty list ("") removes all subscriptions.
|
|
void Subscribe(const char* client_urn, const char* office_urns);
|
|
|
|
// Send status notifications to clients interested in the
|
|
// office to which <client_urn> belongs.
|
|
typedef enum
|
|
{
|
|
OFFLINE,
|
|
ONLINE
|
|
} client_state_t;
|
|
void NotifyStatus(const char* client_urn, client_state_t client_state);
|
|
|
|
// returns the number of subscribed offices
|
|
unsigned int OfficeCount(void);
|
|
|
|
// returns the number of subscriptions (client * office)
|
|
unsigned int SubscriptionCount(void);
|
|
}
|