<!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="DotNetDocs/index.html">.NET API Sandcastle Reference</a></td>
   <td valign="top"> The interfaces, classes, methods and fields for
    	the .NET API (HTML).
 	<hr color="#330066" width="75%" size="1" align="left">	</td>
  </tr>
  <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>

