<!--
SPDX-FileCopyrightText: The Apache Software Foundation

SPDX-License-Identifier: Apache-2.0
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <title>ArrowFlightSQL.Server</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <meta charset="utf-8" />

  
  <meta property="og:type" content="website"/>

  

  
  <meta property="og:title" content="ArrowFlightSQL.Server"/>
  <meta property="og:description" content="Reference for ArrowFlightSQL.Server"/>
  <meta name="twitter:title" content="ArrowFlightSQL.Server"/>
  <meta name="twitter:description" content="Reference for ArrowFlightSQL.Server"/>


  
  <meta name="twitter:card" content="summary"/>

  
  
  
  

  <link rel="stylesheet" href="style.css" type="text/css" />

  

  
  <script src="urlmap.js"></script>
  
  
  <script src="fzy.js"></script>
  <script src="search.js"></script>
  
  <script src="main.js"></script>
</head>

<body>
  <div id="body-wrapper" tabindex="-1">

    <nav class="sidebar devhelp-hidden">
      
      
      <div class="search section">
        <form id="search-form" autocomplete="off">
          <input id="search-input" type="text" name="do-not-autocomplete" placeholder="Click, or press 's' to search" autocomplete="off"/>
        </form>
      </div>
      
      <div class="section namespace">
        <h3><a href="index.html">ArrowFlightSQL</a></h3>
        <p>API Version: 1.0</p>
        
        <p>Library Version: 22.0.0</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a class="current" href="class.Server.html#description">Server</a>
  </div>
</div>






<div class="section">
  <h5>Instance methods</h5>
  <div class="links">
  
    <a class="method" href="method.Server.close_prepared_statement.html">close_prepared_statement</a>
  
    <a class="method" href="method.Server.create_prepared_statement.html">create_prepared_statement</a>
  
    <a class="method" href="method.Server.do_get_statement.html">do_get_statement</a>
  
    <a class="method" href="method.Server.do_put_command_statement_update.html">do_put_command_statement_update</a>
  
    <a class="method" href="method.Server.do_put_prepared_statement_update.html">do_put_prepared_statement_update</a>
  
    <a class="method" href="method.Server.get_flight_info_statement.html">get_flight_info_statement</a>
  
  </div>
</div>









<div class="section">
  <h5>Virtual methods</h5>
  <div class="links">
  
    <a class="method" href="vfunc.Server.close_prepared_statement.html">close_prepared_statement</a>
  
    <a class="method" href="vfunc.Server.create_prepared_statement.html">create_prepared_statement</a>
  
    <a class="method" href="vfunc.Server.do_get_statement.html">do_get_statement</a>
  
    <a class="method" href="vfunc.Server.do_put_command_statement_update.html">do_put_command_statement_update</a>
  
    <a class="method" href="vfunc.Server.do_put_prepared_statement_update.html">do_put_prepared_statement_update</a>
  
    <a class="method" href="vfunc.Server.get_flight_info_statement.html">get_flight_info_statement</a>
  
  </div>
</div>



      <div class="section generator">
        <p>Generated by <a href="https://gitlab.gnome.org/GNOME/gi-docgen">gi-docgen</a> 2023.1</p>
      </div>
    </nav>

    <button id="btn-to-top" class="hidden"><span class="up-arrow"></span></button>

    
<section id="main" class="content">
  <header>
    <h3>Class</h3>
    <h1 aria-label="Name"><a href="index.html">ArrowFlightSQL</a><span class="sep" role="presentation"></span>Server</h1>
  </header>

  <section>
    <summary>
      <div class="docblock">
        <p></p>
      </div>

      <div class="toggle-wrapper">
        <h4 id="description" style="display:flex;">
          Description
          <a href="#description" class="anchor"></a>
          
        </h4>

        <pre><code>abstract class ArrowFlightSQL.Server : ArrowFlight.Server {
  parent_instance: GAFlightServer
}</pre></code>

        <div class="docblock">
          No description available.
        </div>

        <div class="docblock">
          
          
          
        </div>

        
      </div>
    </summary>

    

    
    <div class="toggle-wrapper ancestors">
      <h4 id="ancestors">
        Ancestors
        <a href="#ancestors" class="anchor"></a>
      </h4>

      <div class="docblock">
        <ul>
        
          
          <li class="class"><a class="external" href="javascript:void(0)" data-link="class.Server.html" data-namespace="ArrowFlight">GAFlightServer</a></li>
          
        
          
          <li class="class"><a class="external" href="javascript:void(0)" data-link="class.Object.html" data-namespace="GObject">GObject</a></li>
          
        
        </ul>
      </div>
    </div>
    

    

    
    <div class="toggle-wrapper implements">
      <h4 id="implements">
        Implements
        <a href="#implements" class="anchor"></a>
      </h4>

      <div class="docblock">
        <ul>
        
          
          <li class="interface"><a class="external" href="javascript:void(0)" data-link="iface.Servable.html" data-namespace="ArrowFlight">GAFlightServable</a></li>
          
        
        </ul>
      </div>
    </div>
    

    

    

    
    <div class="toggle-wrapper methods">
      <h4 id="methods">
        Instance methods
        <a href="#methods" class="anchor"></a>
      </h4>

      <div class="docblock">
      
        <div class="">
          <h6><a href="method.Server.close_prepared_statement.html">gaflightsql_server_close_prepared_statement</a></h6>
          <div class="docblock">
            No description available.
          </div>
          <div class="docblock">
            <p><span class="emblem available">since: 14.0.0</span></p>
          </div>
        </div>
      
        <div class="">
          <h6><a href="method.Server.create_prepared_statement.html">gaflightsql_server_create_prepared_statement</a></h6>
          <div class="docblock">
            No description available.
          </div>
          <div class="docblock">
            <p><span class="emblem available">since: 14.0.0</span></p>
          </div>
        </div>
      
        <div class="">
          <h6><a href="method.Server.do_get_statement.html">gaflightsql_server_do_get_statement</a></h6>
          <div class="docblock">
            No description available.
          </div>
          <div class="docblock">
            <p><span class="emblem available">since: 9.0.0</span></p>
          </div>
        </div>
      
        <div class="">
          <h6><a href="method.Server.do_put_command_statement_update.html">gaflightsql_server_do_put_command_statement_update</a></h6>
          <div class="docblock">
            No description available.
          </div>
          <div class="docblock">
            <p><span class="emblem available">since: 13.0.0</span></p>
          </div>
        </div>
      
        <div class="">
          <h6><a href="method.Server.do_put_prepared_statement_update.html">gaflightsql_server_do_put_prepared_statement_update</a></h6>
          <div class="docblock">
            No description available.
          </div>
          <div class="docblock">
            <p><span class="emblem available">since: 14.0.0</span></p>
          </div>
        </div>
      
        <div class="">
          <h6><a href="method.Server.get_flight_info_statement.html">gaflightsql_server_get_flight_info_statement</a></h6>
          <div class="docblock">
            No description available.
          </div>
          <div class="docblock">
            <p><span class="emblem available">since: 9.0.0</span></p>
          </div>
        </div>
      
      </div>

      
        
        <div class="toggle-wrapper default-hide ancestor-methods"><h5 style="display:block;">Methods inherited from <a class="external" href="javascript:void(0)" data-link="class.Server.html" data-namespace="ArrowFlight">GAFlightServer</a> (8)</h5>
          <div class="docblock">
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.do_get.html">gaflight_server_do_get</a></h6>
            <div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 6.0.0</span></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.do_put.html">gaflight_server_do_put</a></h6>
            <div class="docblock">
              <p>Processes a stream of <span class="caps">IPC</span> payloads sent from a&nbsp;client.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 18.0.0</span></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.get_flight_info.html">gaflight_server_get_flight_info</a></h6>
            <div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 9.0.0</span></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.get_port.html">gaflight_server_get_port</a></h6>
            <div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.list_flights.html">gaflight_server_list_flights</a></h6>
            <div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 5.0.0</span></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.listen.html">gaflight_server_listen</a></h6>
            <div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 5.0.0</span></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.shutdown.html">gaflight_server_shutdown</a></h6>
            <div class="docblock">
              <p>Shuts down the serve. This function can be called from signal
handler or another&nbsp;thread.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 5.0.0</span></p>
            </div>
          <h6><a class="external" href="javascript:void(0)" data-namespace="ArrowFlight" data-link="method.Server.wait.html">gaflight_server_wait</a></h6>
            <div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p></p>
            </div>
          
          </div>
        </div>
        
      
        
        <div class="toggle-wrapper default-hide ancestor-methods"><h5 style="display:block;">Methods inherited from <a class="external" href="javascript:void(0)" data-link="class.Object.html" data-namespace="GObject">GObject</a> (43)</h5>
          <div class="docblock">
          
            <div class="docblock">
              <p>Please see&nbsp;<a class="external" href="javascript:void(0)" data-link="class.Object.html#methods" data-namespace="GObject">GObject</a>&nbsp;for a full list of methods.</em></p>
            </div>
          
          </div>
        </div>
        
      

      
        
      
    </div>
    

    

    
    <div class="signals toggle-wrapper">
      <h4 id="signals">
        Signals
        <a href="#signals" class="anchor"></a>
      </h4>

      

      
        
      
        
        <div class="toggle-wrapper default-hide ancestor-signals"><h5 style="display:block;">Signals inherited from <a class="external" href="javascript:void(0)" data-link="class.Object.html" data-namespace="GObject">GObject</a> (1)</h5>
          <div class="docblock">
          <h6><a class="external" href="javascript:void(0)" data-namespace="GObject" data-link="signal.Object.notify.html">GObject::notify</a></h6>
            <div class="docblock">
              <p>The notify signal is emitted on an object when one of its properties has
its value set through g_object_set_property(), g_object_set(), et&nbsp;al.</p>
            </div>
            <div class="docblock">
              <p></p>
            </div>
          
          </div>
        </div>
        
      

      
        
      

    </div>
    

    
    <div class="class toggle-wrapper default-hide">
      <h4 id="class-struct">
        Class structure
        <a href="#class-struct" class="anchor"></a>
      </h4>

      <div class="docblock">
        <pre><code>struct ArrowFlightSQLServerClass {
  GAFlightServerClass parent_class;
  GAFlightInfo* (* get_flight_info_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLStatementQuery* command,
    GAFlightDescriptor* descriptor,
    GError** error
  );
  GAFlightDataStream* (* do_get_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLStatementQueryTicket* ticket,
    GError** error
  );
  gint64 (* do_put_command_statement_update) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLStatementUpdate* command,
    GError** error
  );
  gint64 (* do_put_prepared_statement_update) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLPreparedStatementUpdate* command,
    GAFlightMessageReader* reader,
    GError** error
  );
  GAFlightSQLCreatePreparedStatementResult* (* create_prepared_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLCreatePreparedStatementRequest* request,
    GError** error
  );
  void (* close_prepared_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLClosePreparedStatementRequest* request,
    GError** error
  );
  
}</code></pre>
      </div>

      <div class="docblock">
        No description available.
      </div>

      
      <div class="docblock">
        <h6>Class members</h6>

        <dl class="members">
        
          <dt><code>parent_class: GAFlightServerClass</code></dt>
          <dd>No description available.</dd>
        
          <dt><code>get_flight_info_statement: GAFlightInfo* (* get_flight_info_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLStatementQuery* command,
    GAFlightDescriptor* descriptor,
    GError** error
  )</code></dt>
          <dd>No description available.</dd>
        
          <dt><code>do_get_statement: GAFlightDataStream* (* do_get_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLStatementQueryTicket* ticket,
    GError** error
  )</code></dt>
          <dd>No description available.</dd>
        
          <dt><code>do_put_command_statement_update: gint64 (* do_put_command_statement_update) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLStatementUpdate* command,
    GError** error
  )</code></dt>
          <dd>No description available.</dd>
        
          <dt><code>do_put_prepared_statement_update: gint64 (* do_put_prepared_statement_update) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLPreparedStatementUpdate* command,
    GAFlightMessageReader* reader,
    GError** error
  )</code></dt>
          <dd>No description available.</dd>
        
          <dt><code>create_prepared_statement: GAFlightSQLCreatePreparedStatementResult* (* create_prepared_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLCreatePreparedStatementRequest* request,
    GError** error
  )</code></dt>
          <dd>No description available.</dd>
        
          <dt><code>close_prepared_statement: void (* close_prepared_statement) (
    GAFlightSQLServer* server,
    GAFlightServerCallContext* context,
    GAFlightSQLClosePreparedStatementRequest* request,
    GError** error
  )</code></dt>
          <dd>No description available.</dd>
        
        </dd>
      </div>
      
    </div>
    

    
    <div class="toggle-wrapper methods">
      <h4 id="virtual-methods">
        Virtual methods
        <a href="#virtual-methods" class="anchor"></a>
      </h4>

      <div class="docblock">
      
      <div class="">
        <h6 id="vfunc-close_prepared_statement"><a href="vfunc.Server.close_prepared_statement.html">ArrowFlightSQL.ServerClass.close_prepared_statement</a></h6>
        <div class="docblock">
          No description available.
        </div>
        <div class="docblock">
          <p><span class="emblem available">since: 14.0.0</span></p>
        </div>
      </div>
      
      <div class="">
        <h6 id="vfunc-create_prepared_statement"><a href="vfunc.Server.create_prepared_statement.html">ArrowFlightSQL.ServerClass.create_prepared_statement</a></h6>
        <div class="docblock">
          No description available.
        </div>
        <div class="docblock">
          <p><span class="emblem available">since: 14.0.0</span></p>
        </div>
      </div>
      
      <div class="">
        <h6 id="vfunc-do_get_statement"><a href="vfunc.Server.do_get_statement.html">ArrowFlightSQL.ServerClass.do_get_statement</a></h6>
        <div class="docblock">
          No description available.
        </div>
        <div class="docblock">
          <p><span class="emblem available">since: 9.0.0</span></p>
        </div>
      </div>
      
      <div class="">
        <h6 id="vfunc-do_put_command_statement_update"><a href="vfunc.Server.do_put_command_statement_update.html">ArrowFlightSQL.ServerClass.do_put_command_statement_update</a></h6>
        <div class="docblock">
          No description available.
        </div>
        <div class="docblock">
          <p><span class="emblem available">since: 13.0.0</span></p>
        </div>
      </div>
      
      <div class="">
        <h6 id="vfunc-do_put_prepared_statement_update"><a href="vfunc.Server.do_put_prepared_statement_update.html">ArrowFlightSQL.ServerClass.do_put_prepared_statement_update</a></h6>
        <div class="docblock">
          No description available.
        </div>
        <div class="docblock">
          <p><span class="emblem available">since: 14.0.0</span></p>
        </div>
      </div>
      
      <div class="">
        <h6 id="vfunc-get_flight_info_statement"><a href="vfunc.Server.get_flight_info_statement.html">ArrowFlightSQL.ServerClass.get_flight_info_statement</a></h6>
        <div class="docblock">
          No description available.
        </div>
        <div class="docblock">
          <p><span class="emblem available">since: 9.0.0</span></p>
        </div>
      </div>
      
      </div>
    </div>
    

    

  </section>
</section>


    
<div id="toc" class="toc">
  <nav aria-labelledby="toc-title">
    <p id="toc-title">Content</p>
    <ul class="toc-list">
      <li class="toc-list-item"><a href="#description"><span class="link-text">Description</span></a></li>
      
      
      
      <li class="toc-list-item"><a href="#ancestors"><span class="link-text">Ancestors</span></a></li>
      
      
      <li class="toc-list-item"><a href="#implements"><span class="link-text">Implements</span></a></li>
      
      

      

      
<li class="toc-list-item"><a href="#methods"><span class="link-text">Methods</span></a></li>


      

      

      

      
<li class="toc-list-item"><a href="#virtual-methods"><span class="link-text">Virtual methods</span></a></li>


    </ul>
  </nav>
</div>


    <section id="search" class="content hidden"></section>

    <footer>
    
    </footer>
  </div>
</body>
</html>