1: <?php
2: /**
3: * Copyright 2012-2014 Rackspace US, Inc.
4: *
5: * Licensed under the Apache License, Version 2.0 (the "License");
6: * you may not use this file except in compliance with the License.
7: * You may obtain a copy of the License at
8: *
9: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: namespace OpenCloud\DNS\Collection;
19:
20: use OpenCloud\Common\Collection\PaginatedIterator;
21:
22: class DnsIterator extends PaginatedIterator
23: {
24: const MARKER = 'offset';
25:
26: public function updateMarkerToCurrent()
27: {
28: $this->currentMarker = $this->key();
29: }
30:
31: protected function shouldAppend()
32: {
33: if (!$this->currentMarker) {
34: return false;
35: }
36:
37: if ($this->position > $this->getOption('limit.page') && $this->getOption('limit.page') % $this->position == 0) {
38: return true;
39: }
40:
41: if ($this->currentMarker % $this->getOption('limit.page') == 0) {
42: return true;
43: }
44:
45: return false;
46: }
47: }
48: