
/** @mainpage VOS API Documentation

    Welcome to the %VOS library. This API documentation contains fairly complete
    information about the C++ classes that make up the core %VOS library, as well
    as various MetaObjects, Auxilliary and Utility libraries.

    Please send feedback on this documentation so we can make it as clear and
    complete as possible. Email Reed <reed@interreality.org> or Pete
    <tetron@interreality.org> or send  a message to
    <a href="http://interreality.org/lists">the discussion list</a>.

    All of the classes are listed in the <a href="annotated.html">annotated class
    index</a>, the <a href="classes.html">full alphabetical listing</a>,
    and in the <a href="hierarchy.html">class hierarchy</a>. The <a
    href="modules.html">modules listing</a> groups classes by library.

    See the %VOS website <a href="http://www.interreality.org">interreality.org</a>
    for up to date news, docs and code.

    <h3>%VOS core library</h3>

    Some of the more important classes you should take a look at are VUtil::vRef, 
     VOS::Vobject,
    VOS::MetaObject, VOS::Site, VOS::LocalVipSiteExtension, VUtil::Log,
    VOS::ParentChildRelation, and VOS::ChildChangeListener, from the @ref libvos
    and @ref libvutil libraries..
    
    <h3>Metaobject libraries</h3>

    For working with properties, see VOS::Property and VOS::PropertyListener.

    For 3D objects, see the A3DL namespace in the @ref libmetaobject_a3dl library. 

    Also of interest are VOS::Avatar, VOS::Talkative,  VOS::Search, VOS::Hypercard,  
    and VOS::Metadata from the @ref libmetaobject_misc library.

    For the service discovery metaobject, see VOS::Services from the
    @ref libmetaobject_services library.

    For object versioning, see VOS::VersionedVobject in the @ref 
    libmetaobject_versioned library and  VOS::RevisionControlPersistance in 
    the @ref libvosext_revcontrol extension library.

    <h3>Extension libraries</h3>

    Use VOS::HTTPServer in @ref libvosext_http for
    accessing Vobjects through HTTP.  
    
    Use VOS::SQLPersistance (abstract interface) in
    @ref libvosext_sqlpersist and @ref libvosext_mysqldb (which provides 
    an implementation for mySQL)
    for saving object information in a database
    backend, and VOS::FileSystemPersistance in @ref libvosext_fspersist for
    saving object information as files.  Use VOS::RevisionControlPersistance 
    in libvosext_revcontrol to enable object revision control and save revisions
    in files on disk.
    
    
    <h3>Application utilities and tools</h3>

    Useful classes for making %VOS based applications are VOS::VOSApp and
    VOS::VOSPlugin.  
    
    @ref libvostoolbox libvostoolbox contains a set of property and 
    listener subclasses that do various useful things.

    <h3>Auxilliary libraries (non-VOS)</h3>

    For the ASE library (@ref libASE), see libASE.h

    libvutil contains within it TinyXML (see TiXmlDocument and
    http://tinyxml.sourceforge.net), a class that can compute MD5 hashes (see
    VUtil::MD5), threading tools (see VUtil::Task and VUtil::TaskQueue etc.),
    and more.
*/

/** @defgroup libvos libvos 
    VOS Library.
    required libraries: -lvutil
*/
/** @defgroup libmetaobject_misc libmetaobject_misc 
    Misc metaobjects.
    Required libraries: -lvos -lvutil
*/
/** @defgroup libmetaobject_services libmetaobject_services 
    Service list metaobject.
    Additional libraries required: -lvos -lmetaobject_misc -lvutil
        
*/
/** @defgroup libmetaobject_a3dl libmetaobject_a3dl 
    3D metaobjects.
    Additional libraries required: -lvos -lvutil
*/
/** @defgroup libvosapp libvosapp 
    Daemon utility library.
    Additional libraries required: -lvos -lmetaobject_misc -lmetaobject_services -lvutil
    */
/** @defgroup libASE libASE 
    ASE (3D Studio Max ASCII Scene Export) library.
*/

/** @defgroup libmetaobject_versioned libmetaobject_versioned
    Provides MetaObject interface to object versions.
    @sa libvosext_revcontrol

    Additional libraries required: <code>-lvos -lvutil</code>
*/

/** @defgroup libvosext_revcontrol libvosext_revcontrol
    Provides extensions that record changes made to Vobjects on a site.
    @see libmetaobject_versioned

    Additional libraries required: <code>-lvos -lvutil</code>
*/

/** @defgroup libvosext_http libvosext_http
    Provides extensions that allow access to Vobjects and Properties via HTTP.

    Additional libraries required: <code>-lvos  -lvutil</code>
*/

/** @defgroup libvosext_sqlpersist libvosext_sqlpersist
    Provides extensions that use an SQL database as a persistent Vobject
    backend.
    @see libvosext_mysqldb

    Additional libraries required: <code>-lvos -lvutil</code>
*/

/** @defgroup libvosext_mysqldb libvosext_mysqldb
    Provides access to mySQL for the SQL persistance extension.
    @see libvosext_sqlpersist
    
    Additional libraries required: <code> -lvutil</code>
*/

/** @defgroup libvosext_fspersist libvosext_fspersist
    Provides extensions that use files on the filesystem as a persistent
    Vobject backend.

    Additional libraries required: <code>-lvos -lvutil</code>
*/

/** @defgroup libvostoolbox libvostoolbox
 *  A library of useful VOS tools. This includes generally useful listeners,
 *  property filters, etc.
 * 
 *  Additional libraries required: <code>-lmetaobject_misc -lvos -lvutil</code>
 */
/** @defgroup libvosext_revcontrol libvosext_revcontrol
    Extension for storing object revisions on disk
*/


