fesa::SubscriptionFilter Class Reference

#include <SubscriptionFilter.h>

Inheritance diagram for fesa::SubscriptionFilter:
fesa::AbstractSubscriptionFilter

List of all members.

Public Member Functions

 SubscriptionFilter (AbstractDevice &device, Property &property, const rdaData &newFilter, bool useFastUpdate, NotificationThread *pNotificationThread)
 ~SubscriptionFilter ()
void addSubscriber (const std::string &cycleSelector, rdaValueChangeListener *subscriber)
bool removeSubscriber (const std::string &cycleSelector, rdaValueChangeListener *subscriber, bool &isEmpty, bool &toBeDeleted)
void notify (MultiplexingContext &muxContext, RequestType &reqType, std::vector< std::string > &validCS)
void doUpdate (MultiplexingContext &muxContext, RequestType &reqType, std::vector< std::string > &validCS)

Private Attributes

NotificationThreadpNotificationThread_
bool cancelled_
 A SubscriptionFilter can't be deleted immediately on reception of a monitorOFF because it can be used by a notification thread. Instead it is just marked (in a critical section) to be removed. Since this flag is raised teh notification thread cannot use it anymore.
uint32_t pendingNotification_
 incremented each time a notification message is posted decremented when the notification message is consumed This is used to manage the deletion of the object.

Detailed Description

Definition at line 108 of file SubscriptionFilter.h.


Constructor & Destructor Documentation

fesa::SubscriptionFilter::SubscriptionFilter ( AbstractDevice device,
Property property,
const rdaData &  newFilter,
bool  useFastUpdate,
NotificationThread pNotificationThread 
)

Definition at line 225 of file SubscriptionFilter.cpp.

fesa::SubscriptionFilter::~SubscriptionFilter (  ) 

Definition at line 230 of file SubscriptionFilter.cpp.


Member Function Documentation

void fesa::SubscriptionFilter::addSubscriber ( const std::string &  cycleSelector,
rdaValueChangeListener *  subscriber 
) [virtual]
void fesa::SubscriptionFilter::doUpdate ( MultiplexingContext muxContext,
RequestType reqType,
std::vector< std::string > &  validCS 
)
void fesa::SubscriptionFilter::notify ( MultiplexingContext muxContext,
RequestType reqType,
std::vector< std::string > &  validCS 
) [virtual]
bool fesa::SubscriptionFilter::removeSubscriber ( const std::string &  cycleSelector,
rdaValueChangeListener *  subscriber,
bool &  isEmpty,
bool &  toBeDeleted 
) [virtual]

Member Data Documentation

A SubscriptionFilter can't be deleted immediately on reception of a monitorOFF because it can be used by a notification thread. Instead it is just marked (in a critical section) to be removed. Since this flag is raised teh notification thread cannot use it anymore.

Definition at line 132 of file SubscriptionFilter.h.

Referenced by doUpdate(), and removeSubscriber().

incremented each time a notification message is posted decremented when the notification message is consumed This is used to manage the deletion of the object.

Definition at line 139 of file SubscriptionFilter.h.

Referenced by doUpdate(), notify(), and removeSubscriber().

Definition at line 125 of file SubscriptionFilter.h.

Referenced by addSubscriber(), doUpdate(), notify(), and removeSubscriber().


The documentation for this class was generated from the following files:

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1