Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

SExpressionStreamCharbuf Class Reference

#include <sstream.hpp>

Inheritance diagram for SExpressionStreamCharbuf:

Inheritance graph
[legend]
Collaboration diagram for SExpressionStreamCharbuf:

Collaboration graph
[legend]
List of all members.

Detailed Description

Stream formed as a queue of characters.

Definition at line 140 of file sstream.hpp.

Public Member Functions

 SExpressionStreamCharbuf (char *initbuf=((void *) 0), bool mpass=false)
void AddChar (char)
void AddString (char *)
void Cleanup ()
virtual int Getc ()
 read one char like fgetc(3)
virtual int Ungetc (int c)
 return a char to the input buffer just like ungetc(3)
virtual int Putc (int c)
 output a single char
virtual int Puts (char *s)
 output a string
virtual char * Gets (char *buf, int bufsize)
 read a string just like fgets(3)
virtual int Seek (long pos)
 perform positioning operation (like lseek(fd, pos, SEEK_SET))
virtual long Tell ()
 return the current position
virtual int Close ()
 close the stream
virtual int Flush ()
 perform flush operation if it is supported
virtual int Fileno ()
 returns the corresponding file descriptor, or -1 if none
virtual SString TextRepresentation ()
virtual class SString TextRepresentation () const =0
 Text representation of the S-expression.
const IntelibTypeIdTermType () const
 Actual S-expression type.
bool IsChangeable () const
 Can it be changed during the lifetime of the object?
virtual SExpressionClone () const
 Clone a changeable object.
virtual bool SpecificEql (const SExpression *) const
 Are the two objects EQL (while not EQ).

Static Public Attributes

static IntelibTypeId TypeId
 The type identifier.

Protected Member Functions

 ~SExpressionStreamCharbuf ()
bool CanDie ()
 Is it OK to delete the object now?


Constructor & Destructor Documentation

SExpressionStreamCharbuf::SExpressionStreamCharbuf char *  initbuf = ((void *) 0),
bool  mpass = false
 

Definition at line 103 of file sstream.cpp.

SExpressionStreamCharbuf::~SExpressionStreamCharbuf  )  [protected]
 

Definition at line 110 of file sstream.cpp.


Member Function Documentation

void SExpressionStreamCharbuf::AddChar char   ) 
 

Definition at line 113 of file sstream.cpp.

void SExpressionStreamCharbuf::AddString char *   ) 
 

Definition at line 118 of file sstream.cpp.

void SExpressionStreamCharbuf::Cleanup  ) 
 

Definition at line 123 of file sstream.cpp.

References SString::c_str().

int SExpressionStreamCharbuf::Getc  )  [virtual]
 

read one char like fgetc(3)

Implements SExpressionStream.

Definition at line 130 of file sstream.cpp.

References EOF, and SString::length().

int SExpressionStreamCharbuf::Ungetc int  c  )  [virtual]
 

return a char to the input buffer just like ungetc(3)

Implements SExpressionStream.

Definition at line 141 of file sstream.cpp.

References SString::c_str().

int SExpressionStreamCharbuf::Putc int  c  )  [virtual]
 

output a single char

Implements SExpressionStream.

Definition at line 152 of file sstream.cpp.

int SExpressionStreamCharbuf::Puts char *  s  )  [virtual]
 

output a string

Implements SExpressionStream.

Definition at line 159 of file sstream.cpp.

char * SExpressionStreamCharbuf::Gets char *  buf,
int  bufsize
[virtual]
 

read a string just like fgets(3)

Implements SExpressionStream.

Definition at line 165 of file sstream.cpp.

References SString::length().

int SExpressionStreamCharbuf::Seek long  pos  )  [virtual]
 

perform positioning operation (like lseek(fd, pos, SEEK_SET))

Implements SExpressionStream.

Definition at line 183 of file sstream.cpp.

References SString::length().

long SExpressionStreamCharbuf::Tell  )  [virtual]
 

return the current position

Implements SExpressionStream.

Definition at line 196 of file sstream.cpp.

int SExpressionStreamCharbuf::Close  )  [virtual]
 

close the stream

Implements SExpressionStream.

Definition at line 201 of file sstream.cpp.

int SExpressionStreamCharbuf::Flush  )  [virtual]
 

perform flush operation if it is supported

Implements SExpressionStream.

Definition at line 207 of file sstream.cpp.

int SExpressionStreamCharbuf::Fileno  )  [virtual]
 

returns the corresponding file descriptor, or -1 if none

Implements SExpressionStream.

Definition at line 212 of file sstream.cpp.

SString SExpressionStream::TextRepresentation  )  [virtual, inherited]
 

Definition at line 27 of file sstream.cpp.

References SExpressionStream::Fileno().

virtual class SString SExpression::TextRepresentation  )  const [pure virtual, inherited]
 

Text representation of the S-expression.

Returns the text string which represents the given S-expression as for real Lisp (for example, (25 36 49))

Implemented in SExpressionDoubleList, SExpressionInt, SExpressionFloat, SExpressionChar, SExpressionString, SExpressionClassicAtom, SExpressionLabel, SExpressionCons, SExpressionHashTable, SExpressionLocation, SExpressionRawBuffer, SExpressionVector, SExpressionWrapper< Data >, SExpressionIndirect, SExpressionIndirectAccessor, LExpressionContext, LExpressionLambda, LExpressionMacro, LExpressionUserCFunction, SchExpressionContext, and SchExpressionLambda.

Referenced by SExpressionVector::TextRepresentation(), SchReference::TextRepresentation(), and LReference::TextRepresentation().

const IntelibTypeId& SExpression::TermType  )  const [inherited]
 

Actual S-expression type.

Definition at line 195 of file sexpress.hpp.

Referenced by SReference::DynamicCastGetPtr(), SchReference::IsEql(), LReference::IsEql(), SReference::SimpleCastGetPtr(), SchReference::TextRepresentation(), and LReference::TextRepresentation().

bool SExpression::IsChangeable  )  const [inherited]
 

Can it be changed during the lifetime of the object?

Definition at line 198 of file sexpress.hpp.

References IntelibTypeId::IsChangeable().

virtual SExpression* SExpression::Clone  )  const [virtual, inherited]
 

Clone a changeable object.

The method should return the pointer created with new

Note:
It can (and should) return null pointer for non-changeables
Warning:
This method will hang your program being called for a looped data structure, including looped lists, a hash table which references a list in which it is a member, etc.

If you create a changeable S-expression, you MUST make sure this method duplicates your object in such a way that nothing is shared between the old and new objects, that is, changing the new object can not in any way change the old object.

Reimplemented in SExpressionBacklink, SExpressionCons, SExpressionHashTable, SExpressionRawBuffer, and SExpressionVector.

Definition at line 214 of file sexpress.hpp.

virtual bool SExpression::SpecificEql const SExpression  )  const [virtual, inherited]
 

Are the two objects EQL (while not EQ).

This function is overriden by those SExpressions able to be EQL while being not EQ.

Warning:
It is not demanded that this function return true if it's arguments are the same SExpression (that is, they're EQ). It is only called by the EQL predicate implementation when it has been checked that the operands are not the same object.

Reimplemented in SExpressionInt, SExpressionFloat, SExpressionChar, and SExpressionString.

Definition at line 235 of file sexpress.hpp.

Referenced by SchReference::IsEql(), and LReference::IsEql().

bool GarbageSafe::CanDie  )  [protected, inherited]
 

Is it OK to delete the object now?

Our children have no access to the private attribute RefCount and should never need it except when checking if the destruction is not an error. This solves the problem.

Definition at line 53 of file refcount.hpp.


Member Data Documentation

IntelibTypeId SExpressionStream::TypeId [static, inherited]
 

The type identifier.

Reimplemented from SExpression.

Reimplemented in SExpressionStreamFile, and SExpressionStreamTextInput.

Referenced by SExpressionStream::SExpressionStream().


The documentation for this class was generated from the following files:
Generated on Tue Dec 18 00:41:30 2007 for InteLib by  doxygen 1.4.1