File: streams.h

package info (click to toggle)
einstein 2.0.dfsg.2-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,552 kB
  • sloc: cpp: 10,437; makefile: 79; sh: 1
file content (41 lines) | stat: -rw-r--r-- 799 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef __STREAMS_H__
#define __STREAMS_H__


#include <fstream>
#include <list>


/// Read utf-8 file and convert it to wide characters
class UtfStreamReader
{
    private:
        /// Pointer to file stream
        std::ifstream *stream;

        /// Push back buffet
        std::list<wchar_t> backBuf;
    
    public:
        /// Create utf-8 stream reader.
        /// \param stream pointer to file stream.
        UtfStreamReader(std::ifstream *stream);
        
        /// Destructor
        ~UtfStreamReader();

    public:
        /// Read next unicode character.
        wchar_t getNextChar();

        /// Push back character.
        /// \param ch character to push back
        void ungetChar(wchar_t ch);

        /// Check if end of file reached.
        bool isEof();
};


#endif