<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
<!--
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.
-->
 <HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
  <LINK REL="STYLESHEET" HREF="DocIndex.css" CHARSET="ISO-8859-1" TYPE="text/css">
  <TITLE>Apache Geode Native Client Documentation</TITLE>
  <style type="text/css">
<!--
.style2 {font-size: medium}
-->
  </style>
</HEAD>
<BODY bgcolor="#ffffff">
     <h1 align="left">
     <FONT size=6><b>
Apache Geode Native Client Documentation</H1>
     </b></FONT>
<p>
Access documentation at <a href="http://geode.apache.org/docs/" target="_blank"><b>Apache Geode Native Documentation</b></a>.
</p>

<hr color="#cc0000" width="75%" size="2" align="left">

<p>
This API documentation is specific to this version of the product.</b></a>.
</p>

<table border=0 cellspacing=0 cellpadding=4 width=101% >
  <tr>
  <td valign="top" width="24%"><a href="cppdocs/index.html">C++ API  Reference</a></td>
  <td valign="top"> The interfaces, classes, methods and fields for
   		the C++ API (HTML).
		<hr color="#330066" width="75%" size="1" align="left">	</td>
  </tr>
  
</table>

<br>
<hr color="#cc0000" width="75%" size="2" align="left">

</BODY>
</HTML>

