| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
#include "ctkEvent.h"class ctkEventPrivate {public:  ctkEventPrivate(const QString& topic, const ctkLDAPSearchFilter::Dictionary& properties)    : ref(1), topic(topic), properties(properties)  {  }  QAtomicInt ref;  const QString topic;  const ctkLDAPSearchFilter::Dictionary properties;};ctkEvent::ctkEvent(const QString& topic, const ctkLDAPSearchFilter::Dictionary& properties)  : d(new ctkEventPrivate(topic, properties)){}/* * This is fast thanks to implicit sharing */ctkEvent::ctkEvent(const ctkEvent &event)  : d(event.d){  d->ref.ref();}ctkEvent::~ctkEvent(){  if (!d->ref.deref())    delete d;}bool ctkEvent::operator==(const ctkEvent& other) const{  if (d == other.d)    return true;  if (d->topic == other.d->topic &&      d->properties == other.d->properties)    return true;  return false;}QVariant ctkEvent::property(const QString& name) const{  return d->properties[name];}QStringList ctkEvent::propertyNames() const{  return d->properties.keys();}const QString& ctkEvent::topic() const{  return d->topic;}bool ctkEvent::matches(const ctkLDAPSearchFilter& filter) const{  Q_UNUSED(filter)  // TODO  return true;}
 |