<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache Geode Native .NET Reference: Apache::Geode::Client::CqAttributesFactory&lt; TKey, TResult &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Apache Geode Native .NET Reference
   &#160;<span id="projectnumber">1.13.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00566.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Apache::Geode::Client::CqAttributesFactory&lt; TKey, TResult &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Creates instances of <code><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></code>.  
 <a href="a00566.html#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a449b853aecbb024b07882be90e8b9ec3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#a449b853aecbb024b07882be90e8b9ec3">AddCqListener</a> (<a class="el" href="a00558.html">Client::ICqListener</a>&lt; TKey, TResult &gt;^ cqListener)</td></tr>
<tr class="memdesc:a449b853aecbb024b07882be90e8b9ec3"><td class="mdescLeft">&#160;</td><td class="mdescRight">add a cqListener  <a href="#a449b853aecbb024b07882be90e8b9ec3">More...</a><br /></td></tr>
<tr class="separator:a449b853aecbb024b07882be90e8b9ec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11fbd4f5ec54fb01c006640926480110"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#a11fbd4f5ec54fb01c006640926480110">CqAttributesFactory</a> ()</td></tr>
<tr class="memdesc:a11fbd4f5ec54fb01c006640926480110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new instance of <code><a class="el" href="a00566.html" title="Creates instances of CqAttributes.">CqAttributesFactory</a></code> ready to create a <code><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></code> with default settings.  <a href="#a11fbd4f5ec54fb01c006640926480110">More...</a><br /></td></tr>
<tr class="separator:a11fbd4f5ec54fb01c006640926480110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d764a72b37a82cbb3a933ac452dff18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00562.html">Client::CqAttributes</a>&lt; TKey, TResult &gt; ^&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#a0d764a72b37a82cbb3a933ac452dff18">Create</a> ()</td></tr>
<tr class="memdesc:a0d764a72b37a82cbb3a933ac452dff18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a <code><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></code> with the current settings.  <a href="#a0d764a72b37a82cbb3a933ac452dff18">More...</a><br /></td></tr>
<tr class="separator:a0d764a72b37a82cbb3a933ac452dff18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe9e54a5d939e57b01a39d8121a98e39"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#afe9e54a5d939e57b01a39d8121a98e39">InitCqListeners</a> (array&lt; <a class="el" href="a00558.html">Client::ICqListener</a>&lt; TKey, TResult &gt;^&gt;^ cqListeners)</td></tr>
<tr class="memdesc:afe9e54a5d939e57b01a39d8121a98e39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize with an array of listeners  <a href="#afe9e54a5d939e57b01a39d8121a98e39">More...</a><br /></td></tr>
<tr class="separator:afe9e54a5d939e57b01a39d8121a98e39"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class TKey, class TResult&gt;<br />
class Apache::Geode::Client::CqAttributesFactory&lt; TKey, TResult &gt;</h3>

<p>Creates instances of <code><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></code>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a11fbd4f5ec54fb01c006640926480110"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11fbd4f5ec54fb01c006640926480110">&#9670;&nbsp;</a></span>CqAttributesFactory()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class TKey , class TResult &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00566.html">Apache::Geode::Client::CqAttributesFactory</a>&lt; TKey, TResult &gt;::<a class="el" href="a00566.html">CqAttributesFactory</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a new instance of <code><a class="el" href="a00566.html" title="Creates instances of CqAttributes.">CqAttributesFactory</a></code> ready to create a <code><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></code> with default settings. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a449b853aecbb024b07882be90e8b9ec3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a449b853aecbb024b07882be90e8b9ec3">&#9670;&nbsp;</a></span>AddCqListener()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class TKey , class TResult &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00566.html">Apache::Geode::Client::CqAttributesFactory</a>&lt; TKey, TResult &gt;::AddCqListener </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00558.html">Client::ICqListener</a>&lt; TKey, TResult &gt;^&#160;</td>
          <td class="paramname"><em>cqListener</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>add a cqListener </p>

</div>
</div>
<a id="a0d764a72b37a82cbb3a933ac452dff18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d764a72b37a82cbb3a933ac452dff18">&#9670;&nbsp;</a></span>Create()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class TKey , class TResult &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00562.html">Client::CqAttributes</a>&lt;TKey, TResult&gt; ^ <a class="el" href="a00566.html">Apache::Geode::Client::CqAttributesFactory</a>&lt; TKey, TResult &gt;::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a <code><a class="el" href="a00562.html" title="Defines attributes for configuring a cq.">CqAttributes</a></code> with the current settings. </p>

</div>
</div>
<a id="afe9e54a5d939e57b01a39d8121a98e39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe9e54a5d939e57b01a39d8121a98e39">&#9670;&nbsp;</a></span>InitCqListeners()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class TKey , class TResult &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a00566.html">Apache::Geode::Client::CqAttributesFactory</a>&lt; TKey, TResult &gt;::InitCqListeners </td>
          <td>(</td>
          <td class="paramtype">array&lt; <a class="el" href="a00558.html">Client::ICqListener</a>&lt; TKey, TResult &gt;^&gt;^&#160;</td>
          <td class="paramname"><em>cqListeners</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize with an array of listeners </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!--
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.
-->
<HR><address style="align: right;"><small>Apache Geode C++ Cache .NET API Documentation</small></address>
