| --- |
| title: C++ Client API |
| --- |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| This section describes the primary classes and usage conventions for the C++ client API. It demonstrates how to use the API to create caches and perform data serialization. |
| |
| The C++ API documentation is available at [C++ API]((http://geode.apache.org/docs/). It provides extensive implementation details for the C++ structures and functions. |
| |
| Several example API programs are included in the `SampleCode` directory. See [QuickStart Examples](../examples.html). |
| |
| - **[About the C++ Client API](gfe-cpp-api.html)** |
| |
| The C++ client API allows C++ developers to programmatically create, populate, and manage a distributed system. The C++ library is thread-safe, except where specified otherwise in the API documentation. |
| |
| - **[Creating a Cache](creating-cache.html)** |
| |
| The code snippets in this section show cache creation. |
| |
| - **[Creating a Proxy Client-Side Region](creating-region.html)** |
| |
| This section provides code examples for creating and customizing proxy client-side regions. |
| |
| - **[Adding an Entry to the Cache](add-entry-to-cache.html)** |
| |
| You can populate a client region with cache entries using the `Region::put` or the `Region::create` API functions. Code examples demonstrate these actions. |
| |
| - **[Accessing an Entry](accessing-entry.html)** |
| |
| The standard `Region::get API` method returns the value associated with the specified key, and passes the callback argument to any cache loaders or cache writers that are invoked in the operation. |
| |
| - **[Removing an Entry](removing-entry.html)** |
| |
| The standard `Region::remove` API removes the entry with the specified key and provides a user-defined parameter object to any `CacheWriter` or `CacheListener` invoked in the process. |
| |
| - **[Serializing Data](../serialization/cpp-serialization/serialization-overview.html)** |
| |
| All data moved out of the local cache must be serializable. |
| |
| - **[Implementing User-Defined Objects in Java Clients](user-defined-objects.html)** |
| |
| You can use one of two methods to implement a user-defined object in a Java client that works with C++ clients: `Instantiator.register` and `DataSerializable`. |
| |
| - **[Using a Custom Class](using-custom-class.html)** |
| |
| This example shows how to use the defined `BankAccount` custom key type and the `AccountHistory` value type. |
| |
| - **[Creating New Statistics](creating-new-statistics.html)** |
| |
| This example provides a programmatic code sample for creating and registering new statistics. |
| |
| |