diff options
Diffstat (limited to 'Swift/Controllers/Roster/ItemOperations/RosterItemOperation.h')
-rw-r--r-- | Swift/Controllers/Roster/ItemOperations/RosterItemOperation.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Swift/Controllers/Roster/ItemOperations/RosterItemOperation.h b/Swift/Controllers/Roster/ItemOperations/RosterItemOperation.h new file mode 100644 index 0000000..c633c20 --- /dev/null +++ b/Swift/Controllers/Roster/ItemOperations/RosterItemOperation.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2010-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +#pragma once + +#include <Swiften/JID/JID.h> + +#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_; +}; + +} |