Samchon Framework for CPP  1.0.0
samchon::library Namespace Reference

Package of libraries. More...

Classes

class  Base64
 Utility class for base64 format's en-decoding. More...
 
class  CaseGenerator
 Case generator. More...
 
class  Charset
 A utility class supporting conversion between multiple character-sets. More...
 
class  CombinedPermutationGenerator
 A combined-permutation case generator. More...
 
class  CriticalAllocator
 An allocator ensuring concurrency. More...
 
class  Date
 Date (year, month, day in month) More...
 
class  Datetime
 Date and time. More...
 
class  ErrorEvent
 Event representing an error. More...
 
class  Event
 Represent an event running on background. More...
 
class  EventDispatcher
 Abstract class for dispatching Event. More...
 
class  FactorialGenerator
 Factorical case generator. More...
 
class  FTByteFile
 A binary file. More...
 
class  FTFactory
 A Factory and manager for file-tree. More...
 
class  FTFile
 A file. More...
 
class  FTFolder
 A folder. More...
 
class  FTInstance
 An interface of file-tree. More...
 
class  FTTextFile
 A text file. More...
 
class  GAParameters
 A structure containing parameters of genetic algorithm. More...
 
class  GAPopulation
 A population of a generation in G.A. More...
 
class  GeneticAlgorithm
 A genetic algorithm class. More...
 
class  HTTPLoader
 A http, web-page loader. More...
 
class  IOperator
 Interface for comparision operator. More...
 
class  Math
 Utility of Math. More...
 
class  MySQLi
 A SQL interface for My-SQL. More...
 
class  PermutationGenerator
 A permutation case generator. More...
 
class  ProgressEvent
 Event representing a progress. More...
 
class  RWMutex
 rw_mutex More...
 
class  Semaphore
 A semaphore. More...
 
class  SharedAcquire
 Shared acquire from a Semaphore. More...
 
class  SharedReadLock
 Shared lock from a RWMutex. More...
 
class  SharedWriteLock
 Shared lock from a RWMutex. More...
 
class  SQLi
 A SQL interface; DBMS connector. More...
 
class  SQLStatement
 A sql statement. More...
 
class  StringUtil
 Utility class for string. More...
 
class  TSQLi
 A SQL interface for T-SQL. More...
 
class  TSQLStatement
 A t-sql statement. More...
 
class  UniqueAcquire
 Unique acquire from a Semaphore. More...
 
class  UniqueReadLock
 Unique lock for reading. More...
 
class  UniqueWriteLock
 Unique lock for writing. More...
 
class  URLVariables
 URLVariables class is for representing variables of HTTP. More...
 
class  XML
 XML is a class representing xml object. More...
 

Typedefs

template<typename T , typename _Pr = std::less<std::string>>
using CriticalDictionary = CriticalMap< std::string, T, _Pr >
 A Dictionary ensures concurrency. More...
 
template<typename T >
using CriticalList = std::list< T, CriticalAllocator< T >>
 A std::list ensures concurrency. More...
 
template<typename _Kty , typename T , typename _Pr = std::less<_Kty>>
using CriticalMap = Map< _Kty, T, _Pr, CriticalAllocator< std::pair< const std::string, T >>>
 A Map ensures concurrency. More...
 
template<typename T , typename _Pr = std::less<T>>
using CriticalSet = std::set< T, _Pr, CriticalAllocator< T >>
 A Set ensures concurrency. More...
 
template<typename T >
using CriticalVector = std::vector< T, CriticalAllocator< T >>
 A std::vector ensures concurrency. More...
 
typedef std::vector< std::shared_ptr< XML > > XMLList
 A list of XML, tags are same. More...
 

Detailed Description

Package of libraries.

The library package supports some classes for package of protocol and nam-tree.

Furthermore, library package provides some utility libraries, which are not being supported by standard library (STL). Those can be helpful for users and those are like STL, independent from operating systems, so that can compile in any operating system.

The library package can be divided into some sectinos.

  • Common libraries.

    Common containers with utility methods.

    library_common.png

  • Mathmatical libaries.

    Utilty classes for mathmatical methods, or libraries of case generator and genetic algorithm. In those mathmatical part, lots of examples are supported.

    library_math.png

  • Critical section libraries.

    Classes handling critical section, like RWMutex and Semaphore which are not supported in STL yet.

    Of course, rw_mutex is already defined in linux C, semaphore is already defined in MFC. But they are dependent on their own operating system, so that cannot compile in multiple operating systems. It's the reason why Samchon Framework provides those classes.

    Furthermore, unique and shared lock of those critical section classes, which are managing locking and unlocking, and critical allocator are provided.

    library_critical_section.png

  • Data I/O libraries.

    Provides libraries about data I/O.

    SQLi and SQLStatement are the ODBC drivier designed to follow principles of OOP by adapter pattern. XML class is designed to follow composite relationship.

    library_data.png

  • Event libraries.

    Libraries representing events and dispatching those events, which are running on background, with own exclusive thread.

    But there's something to notice. Since C++11, calling member method of a class by new thread passing by static method and void pointer is recommended to avoid. By guidance of the STL, using std::thread and std::bind will be better. As that reason, Event and StaticEventDispatcher can be deprecated in next generation of Samchon Framework.

    library_event.png

  • File-tree libraries.

    A module for expressing folder and file instances. The objects in file-tree module are realized by protocol::Entity.

    They have recursive and hierarchical relationship and created by Factory class (FTFactory, factory pattern). Those objects can be archived in and loaded from Database. Using the pre-defined methods interaction with Databse, you can not only express real file and folder instances but also realize virtual file system.

    Classes in the Module of file-tree are all abstract, but package nam-tree can be an example inheriting and having real model from those abstract classes.

    library_file_tree.png

Author
Jeongho Nam http://samchon.org

Typedef Documentation

template<typename T , typename _Pr = std::less<std::string>>
using samchon::library::CriticalDictionary = typedef CriticalMap<std::string, T, _Pr>

A Dictionary ensures concurrency.

See also
library::CriticalAllocator
samchon::library
Author
Jeongho Nam http://samchon.org

Definition at line 16 of file CriticalDictionary.hpp.

template<typename T >
using samchon::library::CriticalList = typedef std::list<T, CriticalAllocator<T>>

A std::list ensures concurrency.

See also
library::CriticalAllocator
samchon::library
Author
Jeongho Nam http://samchon.org

Definition at line 18 of file CriticalList.hpp.

template<typename _Kty , typename T , typename _Pr = std::less<_Kty>>
using samchon::library::CriticalMap = typedef Map<_Kty, T, _Pr, CriticalAllocator<std::pair<const std::string, T>>>

A Map ensures concurrency.

See also
library::CriticalAllocator
samchon::library
Author
Jeongho Nam http://samchon.org

Definition at line 18 of file CriticalMap.hpp.

template<typename T , typename _Pr = std::less<T>>
using samchon::library::CriticalSet = typedef std::set<T, _Pr, CriticalAllocator<T>>

A Set ensures concurrency.

See also
library::CriticalAllocator
samchon::library
Author
Jeongho Nam http://samchon.org

Definition at line 18 of file CriticalSet.hpp.

template<typename T >
using samchon::library::CriticalVector = typedef std::vector<T, CriticalAllocator<T>>

A std::vector ensures concurrency.

See also
library::CriticalAllocator
samchon::library
Author
Jeongho Nam http://samchon.org

Definition at line 18 of file CriticalVector.hpp.

typedef std::vector<std::shared_ptr<XML> > samchon::library::XMLList

A list of XML, tags are same.

See also
samchon::library
Author
Jeongho Nam http://samchon.org

Definition at line 19 of file XMLList.hpp.