ECConvenientDepthABObjectTable.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 ECCONVENIENTDEPTHABOBJECTTABLE_H
  18. #define ECCONVENIENTDEPTHABOBJECTTABLE_H
  19. #include <kopano/zcdefs.h>
  20. #include "ECABObjectTable.h"
  21. struct soap;
  22. namespace KC {
  23. class ECConvenientDepthABObjectTable _kc_final : public ECABObjectTable {
  24. protected:
  25. ECConvenientDepthABObjectTable(ECSession *lpSession, unsigned int ulABId, unsigned int ulABType, unsigned int ulABParentId, unsigned int ulABParentType, unsigned int ulFlags, const ECLocale &locale);
  26. public:
  27. static ECRESULT Create(ECSession *, unsigned int ab_id, unsigned int ab_type, unsigned int ab_parent_id, unsigned int ab_parent_type, unsigned int flags, const ECLocale &, ECABObjectTable **);
  28. virtual ECRESULT Load();
  29. static ECRESULT QueryRowData(ECGenericObjectTable *lpThis, struct soap *soap, ECSession *lpSession, ECObjectTableList* lpRowList, struct propTagArray *lpsPropTagArray, void* lpObjectData, struct rowSet **lppRowSet, bool bTableData,bool bTableLimit);
  30. private:
  31. struct CONTAINERINFO {
  32. unsigned int ulId;
  33. unsigned int ulDepth;
  34. std::string strPath;
  35. };
  36. std::map<unsigned int, unsigned int> m_mapDepth;
  37. std::map<unsigned int, std::string> m_mapPath;
  38. };
  39. } /* namespace */
  40. #endif