Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

segusoland C++ Library


Files

file  segusoland.hpp

Classes

class  SLConfig
 This class holds the configuration variables and their values. More...

class  SLConfig::NotFoundException
 Thrown when an element is not found in the container. More...

class  SLDevice
 This class holds a device name and its kind. More...

class  SLDeviceList
 Holds a list of SLDevice instances. More...

class  SLDirectory
 this class holds a directory (without the leading /) More...

class  SLDirectoryList
 Holds a list of SLDirectory instances. More...

class  SLException
 The exceptions top level class. More...

class  SLFile
 This class is used as a container for file names. More...

class  SLFile::Timestamp
class  SLFileExt
 This class hold a file extention. More...

class  SLFileList
 Holds a list of SLFile instances. More...

class  SLIOException
 This class is the parent of all IO Exceptions. More...

class  SLMime
 This class describe the mime type of a SLFile object. More...

class  SLNotFoundException
 this class is the parent for all failures of finding elements. More...

class  SLString
 This class output localized UTF8 strings from any char* encoding. More...


Detailed Description

Here is the stuff related to shared tools among all modules and plugins like UTF8 stuff and so one...

The classes provided make use of boost/shared_ptr. The template shared_ptr fix the main issues about memory leaks with C++ objects that contains pointer in a very clean fashion.

For example , with shared_ptr, there is no need to add "copy constructors" neither "affectation operators" because class instances are freed only when their last parent aggregate is destroyed.

More details here :

http://www.boost.org/libs/smart_ptr/shared_ptr.htm

Examples of code :

SLString s("This is a string"); // obviously s contains a pointer somewhere SLString s2("Another string"); // idem s = s2; // this is safe s = SLString("Another one string"); // safe too // The code above is safe because shared_ptr fix the issue of references // by keeping up to date a reference counter.

In general, the objects in this library makes deep copy of non-instance data in their constructor (char* strings for example) and makes fast copy with the class instances of objects from this library.

Example :

SLString s1("hello there"); // deep copy of "hello there" SLString s2(s1); // fast copy, the string "hello there" is accessible from // s1 and s2 but is present only once in memory. // When s1 and s2 will be destroyed, the string // "hello there" will be freed only once. magic! ;)

Many examples of code using library objects can be found in the library test file here : CVSROOT/segusoland/src/lib/test_lib.cpp


Generated on Mon Apr 19 01:03:40 2004 for segusoLand by doxygen 1.3.6-20040222