Public Types | Public Member Functions | Private Attributes | List of all members
CursorStreamWrapper< InputStream, Encoding > Class Template Reference

Cursor stream wrapper for counting line and column number if error exists. More...

#include <cursorstreamwrapper.h>

Inheritance diagram for CursorStreamWrapper< InputStream, Encoding >:
GenericStreamWrapper< InputStream, Encoding >

Public Types

typedef Encoding::Ch Ch
 
- Public Types inherited from GenericStreamWrapper< InputStream, Encoding >
typedef Encoding::Ch Ch
 

Public Member Functions

 CursorStreamWrapper (InputStream &is)
 
Ch Take ()
 
size_t GetLine () const
 Get the error line number, if error exists. More...
 
size_t GetColumn () const
 Get the error column number, if error exists. More...
 
- Public Member Functions inherited from GenericStreamWrapper< InputStream, Encoding >
 GenericStreamWrapper (InputStream &is)
 
Ch Peek () const
 
Ch Take ()
 
size_t Tell ()
 
ChPutBegin ()
 
void Put (Ch ch)
 
void Flush ()
 
size_t PutEnd (Ch *ch)
 
const ChPeek4 () const
 
UTFType GetType () const
 
bool HasBOM () const
 

Private Attributes

size_t line_
 Current Line. More...
 
size_t col_
 Current Column. More...
 

Additional Inherited Members

- Protected Attributes inherited from GenericStreamWrapper< InputStream, Encoding >
InputStream & is_
 

Detailed Description

template<typename InputStream, typename Encoding = UTF8<>>
class CursorStreamWrapper< InputStream, Encoding >

Cursor stream wrapper for counting line and column number if error exists.

Template Parameters
InputStreamAny stream that implements Stream Concept

Definition at line 39 of file cursorstreamwrapper.h.

Member Typedef Documentation

template<typename InputStream , typename Encoding = UTF8<>>
typedef Encoding::Ch CursorStreamWrapper< InputStream, Encoding >::Ch

Definition at line 41 of file cursorstreamwrapper.h.

Constructor & Destructor Documentation

template<typename InputStream , typename Encoding = UTF8<>>
CursorStreamWrapper< InputStream, Encoding >::CursorStreamWrapper ( InputStream &  is)
inline

Definition at line 43 of file cursorstreamwrapper.h.

43  :
size_t line_
Current Line.
A Stream Wrapper.
Definition: stream.h:119
size_t col_
Current Column.

Member Function Documentation

template<typename InputStream , typename Encoding = UTF8<>>
size_t CursorStreamWrapper< InputStream, Encoding >::GetColumn ( ) const
inline

Get the error column number, if error exists.

Definition at line 61 of file cursorstreamwrapper.h.

61 { return col_; }
size_t col_
Current Column.
template<typename InputStream , typename Encoding = UTF8<>>
size_t CursorStreamWrapper< InputStream, Encoding >::GetLine ( ) const
inline

Get the error line number, if error exists.

Definition at line 59 of file cursorstreamwrapper.h.

59 { return line_; }
size_t line_
Current Line.
template<typename InputStream , typename Encoding = UTF8<>>
Ch CursorStreamWrapper< InputStream, Encoding >::Take ( )
inline

Definition at line 47 of file cursorstreamwrapper.h.

47  {
48  Ch ch = this->is_.Take();
49  if(ch == '\n') {
50  line_ ++;
51  col_ = 0;
52  } else {
53  col_ ++;
54  }
55  return ch;
56  }
size_t line_
Current Line.
InputStream & is_
Definition: stream.h:140
size_t col_
Current Column.

Member Data Documentation

template<typename InputStream , typename Encoding = UTF8<>>
size_t CursorStreamWrapper< InputStream, Encoding >::col_
private

Current Column.

Definition at line 65 of file cursorstreamwrapper.h.

template<typename InputStream , typename Encoding = UTF8<>>
size_t CursorStreamWrapper< InputStream, Encoding >::line_
private

Current Line.

Definition at line 64 of file cursorstreamwrapper.h.


The documentation for this class was generated from the following file: