MyGUI  3.2.0
MyGUI_IDataStream.h
Go to the documentation of this file.
1 
6 /*
7  This file is part of MyGUI.
8 
9  MyGUI is free software: you can redistribute it and/or modify
10  it under the terms of the GNU Lesser General Public License as published by
11  the Free Software Foundation, either version 3 of the License, or
12  (at your option) any later version.
13 
14  MyGUI is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public License
20  along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
21 */
22 #ifndef __MYGUI_I_DATA_STREAM_H__
23 #define __MYGUI_I_DATA_STREAM_H__
24 
25 #include "MyGUI_Prerequest.h"
26 #include "MyGUI_Types.h"
27 
28 namespace MyGUI
29 {
30 
32  {
33  public:
34  virtual ~IDataStream() { }
35 
36  virtual bool eof() = 0;
37  virtual size_t size() = 0;
38  virtual void readline(std::string& _source, Char _delim = '\n') = 0;
39  virtual size_t read(void* _buf, size_t _count) = 0;
40  };
41 
43  {
44  public:
46  mData(_data)
47  {
48  }
49 
51  {
52  delete mData;
53  }
54 
56  {
57  return mData;
58  }
59 
60  private:
61  IDataStream* mData;
62  };
63 
64 } // namespace MyGUI
65 
66 #endif // __MYGUI_I_DATA_STREAM_H__
DataStreamHolder(IDataStream *_data)
#define MYGUI_EXPORT
unsigned int Char
Definition: MyGUI_Types.h:66