1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\VObject\Splitter; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehler/** 6*a1a3b679SAndreas Boehler * VObject splitter 7*a1a3b679SAndreas Boehler * 8*a1a3b679SAndreas Boehler * The splitter is responsible for reading a large vCard or iCalendar object, 9*a1a3b679SAndreas Boehler * and splitting it into multiple objects. 10*a1a3b679SAndreas Boehler * 11*a1a3b679SAndreas Boehler * This is for example for Card and CalDAV, which require every event and vcard 12*a1a3b679SAndreas Boehler * to exist in their own objects, instead of one large one. 13*a1a3b679SAndreas Boehler * 14*a1a3b679SAndreas Boehler * @copyright Copyright (C) 2011-2015 fruux GmbH (https://fruux.com/). 15*a1a3b679SAndreas Boehler * @author Dominik Tobschall 16*a1a3b679SAndreas Boehler * @license http://sabre.io/license/ Modified BSD License 17*a1a3b679SAndreas Boehler */ 18*a1a3b679SAndreas Boehlerinterface SplitterInterface { 19*a1a3b679SAndreas Boehler 20*a1a3b679SAndreas Boehler /** 21*a1a3b679SAndreas Boehler * Constructor 22*a1a3b679SAndreas Boehler * 23*a1a3b679SAndreas Boehler * The splitter should receive an readable file stream as it's input. 24*a1a3b679SAndreas Boehler * 25*a1a3b679SAndreas Boehler * @param resource $input 26*a1a3b679SAndreas Boehler */ 27*a1a3b679SAndreas Boehler public function __construct($input); 28*a1a3b679SAndreas Boehler 29*a1a3b679SAndreas Boehler /** 30*a1a3b679SAndreas Boehler * Every time getNext() is called, a new object will be parsed, until we 31*a1a3b679SAndreas Boehler * hit the end of the stream. 32*a1a3b679SAndreas Boehler * 33*a1a3b679SAndreas Boehler * When the end is reached, null will be returned. 34*a1a3b679SAndreas Boehler * 35*a1a3b679SAndreas Boehler * @return Sabre\VObject\Component|null 36*a1a3b679SAndreas Boehler */ 37*a1a3b679SAndreas Boehler public function getNext(); 38*a1a3b679SAndreas Boehler 39*a1a3b679SAndreas Boehler} 40