00001 /** 00002 * @mainpage 00003 * 00004 * Coherence for C++ allows C++ applications to access Coherence clustered 00005 * services, including data, data events, and data processing from outside 00006 * the Coherence cluster. Typical uses of Coherence for C++ include desktop 00007 * and that require access to Coherence caches. 00008 * 00009 * The Coherence for C++ API consists of: 00010 * @li Shared libraries for a variety of compilers and operating systems 00011 * @li C++ API header files 00012 * @li API documentation 00013 * 00014 * The library allows applications to connect to Coherence*Extend proxies 00015 * running within the Coherence cluster using a high performance TCP/IP-based 00016 * communication layer. The library sends all client requests to the 00017 * Coherence*Extend clustered service which, in turn, responds to client 00018 * requests by delegating to an actual Coherence clustered service (for example 00019 * a Partitioned or Replicated cache service). As on other Coherence platforms, 00020 * C++ Coherence {@link coherence::net::NamedCache caches} are obtained from 00021 * the {@link coherence::net::CacheFactory CacheFactory}. 00022 * 00023 * In order for application data objects to be stored in the cluster they must 00024 * be serializable to the Coherence POF (Portable Object Format). This may be 00025 * accomplished by either modifying the data object to implement the 00026 * {@link coherence::io::pof::PortableObject PortableObject} interface, or 00027 * though the use of the helper template 00028 * {@link coherence::lang::Managed Managed<T>}. The latter offers an easy 00029 * integration route for existing C++ data objects as in most cases no changes 00030 * to the existing data object code are required. 00031 * 00032 * The Coherence for C++ API is pure C++ and is built on top of a managed object 00033 * model which handles the task of memory management. It is thus not necessary 00034 * or allowable to manually delete objects returned from or injected into the 00035 * cache. See {@link coherence::lang::Object Object} for an introduction to the 00036 * object model. 00037 */