1 /* 2 SPDX-FileCopyrightText: 2015-2016 Krzysztof Nowicki <krissn@op.pl> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include "ewsitem.h" 10 #include "ewsitemshape.h" 11 #include "ewsrequest.h" 12 #include "ewstypes.h" 13 14 class EwsFindItemRequest : public EwsRequest 15 { 16 Q_OBJECT 17 public: 18 explicit EwsFindItemRequest(EwsClient &client, QObject *parent); 19 ~EwsFindItemRequest() override; 20 21 void setFolderId(const EwsId &id); 22 void setItemShape(const EwsItemShape &shape); setTraversal(EwsTraversalType traversal)23 void setTraversal(EwsTraversalType traversal) 24 { 25 mTraversal = traversal; 26 } 27 28 void setPagination(EwsIndexedViewBasePoint basePoint, unsigned offset, int maxItems = -1) 29 { 30 mFractional = false; 31 mMaxItems = maxItems; 32 mPageBasePoint = basePoint; 33 mPageOffset = offset; 34 mPagination = true; 35 } 36 37 void setFractional(unsigned numerator, unsigned denominator, int maxItems = -1) 38 { 39 mPagination = false; 40 mMaxItems = maxItems; 41 mFracNumerator = numerator; 42 mFracDenominator = denominator; 43 mFractional = true; 44 } 45 46 void start() override; 47 includesLastItem()48 bool includesLastItem() const 49 { 50 return mIncludesLastItem; 51 } 52 nextOffset()53 int nextOffset() const 54 { 55 return mNextOffset; 56 } 57 nextNumerator()58 int nextNumerator() const 59 { 60 return mNextNumerator; 61 } 62 nextDenominator()63 int nextDenominator() const 64 { 65 return mNextDenominator; 66 } 67 items()68 const QList<EwsItem> items() const 69 { 70 return mItems; 71 } 72 73 protected: 74 bool parseResult(QXmlStreamReader &reader) override; 75 bool parseItemsResponse(QXmlStreamReader &reader); 76 77 private: 78 EwsId mFolderId; 79 EwsItemShape mShape; 80 EwsTraversalType mTraversal; 81 bool mPagination; 82 EwsIndexedViewBasePoint mPageBasePoint; 83 unsigned mPageOffset; 84 bool mFractional; 85 int mMaxItems; 86 unsigned mFracNumerator; 87 unsigned mFracDenominator; 88 QList<EwsItem> mItems; 89 unsigned mTotalItems; 90 int mNextOffset; 91 int mNextNumerator; 92 int mNextDenominator; 93 bool mIncludesLastItem; 94 }; 95 96