deleter.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright 2005 - 2016 Zarafa and its licensors
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU Affero General Public License, version 3,
  6. * as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU Affero General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU Affero General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. *
  16. */
  17. #ifndef deleter_INCLUDED
  18. #define deleter_INCLUDED
  19. #include <kopano/zcdefs.h>
  20. #include "operations.h"
  21. #include <kopano/archiver-common.h>
  22. #include <list>
  23. namespace KC { namespace operations {
  24. /**
  25. * Performs the delete part of the archive operation.
  26. */
  27. class Deleter _kc_final : public ArchiveOperationBaseEx {
  28. public:
  29. Deleter(ECArchiverLogger *lpLogger, int ulAge, bool bProcessUnread);
  30. ~Deleter();
  31. private:
  32. HRESULT EnterFolder(LPMAPIFOLDER)_kc_override { return hrSuccess; }
  33. HRESULT LeaveFolder(void) _kc_override;
  34. HRESULT DoProcessEntry(ULONG cProps, const LPSPropValue &lpProps) _kc_override;
  35. HRESULT PurgeQueuedMessages();
  36. std::list<entryid_t> m_lstEntryIds;
  37. };
  38. }} /* namespace */
  39. #endif // ndef deleter_INCLUDED