inputStreamMAPIAdapter.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 INPUT_STREAM_MAPI_ADAPTER_H
  18. #define INPUT_STREAM_MAPI_ADAPTER_H
  19. #include <kopano/zcdefs.h>
  20. #include <mapidefs.h>
  21. #include <vmime/utility/inputStream.hpp>
  22. namespace KC {
  23. class inputStreamMAPIAdapter _kc_final : public vmime::utility::inputStream {
  24. public:
  25. inputStreamMAPIAdapter(IStream *lpStream);
  26. virtual ~inputStreamMAPIAdapter();
  27. virtual size_t read(vmime::byte_t *, size_t) _kc_override;
  28. virtual size_t skip(size_t) _kc_override;
  29. virtual void reset(void) _kc_override;
  30. virtual bool eof(void) const _kc_override { return this->ateof; }
  31. private:
  32. bool ateof = false;
  33. IStream *lpStream;
  34. };
  35. } /* namespace */
  36. #endif