/** @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 or Pete or send a message to the discussion list. All of the classes are listed in the annotated class index, the full alphabetical listing, and in the class hierarchy. The modules listing groups classes by library. See the %VOS website interreality.org for up to date news, docs and code.

%VOS core library

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..

Metaobject libraries

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.

Extension libraries

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.

Application utilities and tools

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.

Auxilliary libraries (non-VOS)

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: -lvos -lvutil */ /** @defgroup libvosext_revcontrol libvosext_revcontrol Provides extensions that record changes made to Vobjects on a site. @see libmetaobject_versioned Additional libraries required: -lvos -lvutil */ /** @defgroup libvosext_http libvosext_http Provides extensions that allow access to Vobjects and Properties via HTTP. Additional libraries required: -lvos -lvutil */ /** @defgroup libvosext_sqlpersist libvosext_sqlpersist Provides extensions that use an SQL database as a persistent Vobject backend. @see libvosext_mysqldb Additional libraries required: -lvos -lvutil */ /** @defgroup libvosext_mysqldb libvosext_mysqldb Provides access to mySQL for the SQL persistance extension. @see libvosext_sqlpersist Additional libraries required: -lvutil */ /** @defgroup libvosext_fspersist libvosext_fspersist Provides extensions that use files on the filesystem as a persistent Vobject backend. Additional libraries required: -lvos -lvutil */ /** @defgroup libvostoolbox libvostoolbox * A library of useful VOS tools. This includes generally useful listeners, * property filters, etc. * * Additional libraries required: -lmetaobject_misc -lvos -lvutil */ /** @defgroup libvosext_revcontrol libvosext_revcontrol Extension for storing object revisions on disk */