Om
Namespaces | Classes | Typedefs | Functions
Om Namespace Reference

The Om library.

Namespaces

 Language
 The Om language implementation.
 
 Macro
 A namespace for all code used to implement global macros.
 
 Sink
 A namespace for all sinks.
 
 Source
 A namespace for all sources.
 

Classes

class  Copyable
 An object that can be passed to Copy to be copied. More...
 
class  DefaultCopyable
 A partial implementation of Copyable. More...
 
class  DefaultGiveable
 A partial implementation of Giveable. More...
 
class  DefaultMoveable
 A partial implementation of Moveable. More...
 
class  Giveable
 An object that can be copied or moved via Give. More...
 
class  List
 A doubly-linked list in which nodes are unowned. More...
 
class  Moveable
 An object that can be passed to Move to be moved. More...
 
class  Owner
 A polymorphic object with value semantics. More...
 
class  Shareable
 A pointee for boost::intrusive_ptr. More...
 
class  Taker
 An object that can take (copy or swap) another of the same type. More...
 

Typedefs

typedef boost::locale::utf::code_point CodePoint
 A UTF-8 code point. More...
 
typedef boost::locale::utf::utf_traits< char > Utf8
 The UTF-8 traits type. More...
 

Functions

template<typename TheCopyable >
std::auto_ptr< TheCopyable > Copy (TheCopyable const &)
 
template<typename TheGiveable >
std::auto_ptr< TheGiveable > Give (TheGiveable &)
 Calls Move on the object. More...
 
template<typename TheGiveable >
std::auto_ptr< TheGiveable > Give (TheGiveable const &)
 Calls Copy on the object. More...
 
template<typename TheGiveable >
std::auto_ptr< TheGiveable > Give (std::auto_ptr< TheGiveable > &)
 Transfers pointer ownership. More...
 
template<typename TheGiveable >
std::auto_ptr< TheGiveable > Give (std::auto_ptr< TheGiveable > const &)
 Transfers pointer ownership. More...
 
template<typename TheMoveable >
std::auto_ptr< TheMoveable > Move (TheMoveable &)
 
template<typename TheOwnerCount >
void intrusive_ptr_add_ref (Shareable< TheOwnerCount > *const)
 
template<typename TheOwnerCount >
void intrusive_ptr_release (Shareable< TheOwnerCount > *const)
 
template<typename TheItem >
bool operator== (Source::Source< TheItem > const &, Source::Source< TheItem > const &)
 
template<typename TheItem >
bool operator!= (Source::Source< TheItem > const &, Source::Source< TheItem > const &)
 

Typedef Documentation

◆ CodePoint

typedef boost::locale::utf::code_point Om::CodePoint

Definition at line 32 of file code_point.hpp.

◆ Utf8

typedef boost::locale::utf::utf_traits<char> Om::Utf8

Definition at line 32 of file utf8.hpp.

Function Documentation

◆ Copy()

template<typename TheCopyable >
std::auto_ptr<TheCopyable> Om::Copy ( TheCopyable const &  )
Returns
A polymorphic copy of the object.

◆ Give() [1/4]

template<typename TheGiveable >
std::auto_ptr<TheGiveable> Om::Give ( TheGiveable &  )
Returns
The resulting object.

◆ Give() [2/4]

template<typename TheGiveable >
std::auto_ptr<TheGiveable> Om::Give ( TheGiveable const &  )
Returns
The resulting object.

◆ Give() [3/4]

template<typename TheGiveable >
std::auto_ptr<TheGiveable> Om::Give ( std::auto_ptr< TheGiveable > &  )
Returns
The resulting object.

◆ Give() [4/4]

template<typename TheGiveable >
std::auto_ptr<TheGiveable> Om::Give ( std::auto_ptr< TheGiveable > const &  )
Returns
The resulting object.

This is useful in situations where the argument auto_ptr is a member of a const class.

◆ Move()

template<typename TheMoveable >
std::auto_ptr<TheMoveable> Om::Move ( TheMoveable &  )
Returns
A polymorphic move of the object.

◆ intrusive_ptr_add_ref()

template<typename TheOwnerCount >
void Om::intrusive_ptr_add_ref ( Shareable< TheOwnerCount > * const  )
Exceptions
std::overflow_errorOn overflow.
Note
Called by the boost::intrusive_ptr constructors.

◆ intrusive_ptr_release()

template<typename TheOwnerCount >
void Om::intrusive_ptr_release ( Shareable< TheOwnerCount > * const  )
Note
Called by the boost::intrusive_ptr destructor.

◆ operator==()

template<typename TheItem >
bool Om::operator== ( Source::Source< TheItem > const &  ,
Source::Source< TheItem > const &   
)

◆ operator!=()

template<typename TheItem >
bool Om::operator!= ( Source::Source< TheItem > const &  ,
Source::Source< TheItem > const &   
)