diff options
Diffstat (limited to 'Swift/Controllers/Roster/RosterItemOperation.h')
-rw-r--r-- | Swift/Controllers/Roster/RosterItemOperation.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Swift/Controllers/Roster/RosterItemOperation.h b/Swift/Controllers/Roster/RosterItemOperation.h new file mode 100644 index 0000000..691c8ef --- /dev/null +++ b/Swift/Controllers/Roster/RosterItemOperation.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "Swift/Controllers/Roster/RosterItem.h" + +namespace Swift { + +class RosterItemOperation { + public: + RosterItemOperation(bool requiresLookup = false, const JID& lookupJID = JID()) : requiresLookup_(requiresLookup), lookupJID_(lookupJID) {}; + virtual ~RosterItemOperation() {}; + bool requiresLookup() const {return requiresLookup_;}; + const JID& lookupJID() const {return lookupJID_;}; + /** + * This is called when iterating over possible subjects, so must check it's + * applying to the right items - even if requiresLookup() is true an item + * with the same bare JID but different full JID may be passed. + */ + virtual void operator() (RosterItem*) const = 0; + private: + bool requiresLookup_; + JID lookupJID_; +}; + +} |