<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>Kudu C++ client API: kudu::client::KuduLoggingMemberCallback&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><b>kudu</b>::<b>client</b>::<a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">KuduLoggingMemberCallback</a>
  </div>
</div>
<div class="contents">
<h1>kudu::client::KuduLoggingMemberCallback&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="kudu::client::KuduLoggingMemberCallback" --><!-- doxytag: inherits="kudu::client::KuduLoggingCallback" -->
<p>The logging callback that invokes a member function of an object.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="callbacks_8h_source.html">callbacks.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for kudu::client::KuduLoggingMemberCallback&lt; T &gt;:</div>
<div class="dynsection">
 <div class="center">
  <img src="classkudu_1_1client_1_1KuduLoggingMemberCallback.gif" usemap="#kudu::client::KuduLoggingMemberCallback&lt; T &gt;_map" alt=""/>
  <map id="kudu::client::KuduLoggingMemberCallback&lt; T &gt;_map" name="kudu::client::KuduLoggingMemberCallback&lt; T &gt;_map">
<area href="classkudu_1_1client_1_1KuduLoggingCallback.html" alt="kudu::client::KuduLoggingCallback" shape="rect" coords="0,0,281,24"/>
</map>
 </div>
</div>

<p><a href="classkudu_1_1client_1_1KuduLoggingMemberCallback-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b9d3ed4c111163156a4836152c05afd"></a><!-- doxytag: member="kudu::client::KuduLoggingMemberCallback::MemberType" ref="a5b9d3ed4c111163156a4836152c05afd" args=")(KuduLogSeverity severity, const char *filename, int line_number, const struct::tm *time, const char *message, size_t message_len)" -->
typedef void(T::*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#a5b9d3ed4c111163156a4836152c05afd">MemberType</a> )(KuduLogSeverity severity, const char *filename, int line_number, const struct::tm *time, const char *message, size_t message_len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A handy typedef for the member function with appropriate signature. <br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#aeda4119b1288db0d055c9800e3485fd8">KuduLoggingMemberCallback</a> (T *object, <a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#a5b9d3ed4c111163156a4836152c05afd">MemberType</a> member)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#a3d75e43bb4af846af66735fabe642a88">Run</a> (KuduLogSeverity severity, const char *filename, int line_number, const struct::tm *time, const char *message, size_t message_len) OVERRIDE</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;typename T&gt;<br/>
 class kudu::client::KuduLoggingMemberCallback&lt; T &gt;</h3>

<p>The logging callback that invokes a member function of an object. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aeda4119b1288db0d055c9800e3485fd8"></a><!-- doxytag: member="kudu::client::KuduLoggingMemberCallback::KuduLoggingMemberCallback" ref="aeda4119b1288db0d055c9800e3485fd8" args="(T *object, MemberType member)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">kudu::client::KuduLoggingMemberCallback</a>&lt; T &gt;::<a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">KuduLoggingMemberCallback</a> </td>
          <td>(</td>
          <td class="paramtype">T *&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html#a5b9d3ed4c111163156a4836152c05afd">MemberType</a>&nbsp;</td>
          <td class="paramname"> <em>member</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Build an instance of <a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html" title="The logging callback that invokes a member function of an object.">KuduLoggingMemberCallback</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>object</em>&nbsp;</td><td>A pointer to the object. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>member</em>&nbsp;</td><td>A pointer to the member function of the <code>object</code> to invoke. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a3d75e43bb4af846af66735fabe642a88"></a><!-- doxytag: member="kudu::client::KuduLoggingMemberCallback::Run" ref="a3d75e43bb4af846af66735fabe642a88" args="(KuduLogSeverity severity, const char *filename, int line_number, const struct::tm *time, const char *message, size_t message_len) OVERRIDE" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classkudu_1_1client_1_1KuduLoggingMemberCallback.html">kudu::client::KuduLoggingMemberCallback</a>&lt; T &gt;::Run </td>
          <td>(</td>
          <td class="paramtype">KuduLogSeverity&nbsp;</td>
          <td class="paramname"> <em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>line_number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct::tm *&nbsp;</td>
          <td class="paramname"> <em>time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>message_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Log the message.<dl class="note"><dt><b>Note:</b></dt><dd>The <code>message</code> is NOT terminated with an endline.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>severity</em>&nbsp;</td><td>Severity of the log message. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>filename</em>&nbsp;</td><td>The name of the source file the message is originated from. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>line_number</em>&nbsp;</td><td>The line of the source file the message is originated from. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>time</em>&nbsp;</td><td>The absolute time when the log event was generated. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>message</em>&nbsp;</td><td>The message to log. It's not terminated with an endline. </td></tr>
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>message_len</em>&nbsp;</td><td>Number of characters in the <code>message</code>. </td></tr>
  </table>
  </dd>
</dl>
 </p>

<p>Implements <a class="el" href="classkudu_1_1client_1_1KuduLoggingCallback.html#ad9d5ac9b45246c5a4304d53ee86102eb">kudu::client::KuduLoggingCallback</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/kudu/client/<a class="el" href="callbacks_8h_source.html">callbacks.h</a></li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

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

<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
  <small>Generated for Kudu version 1.0.1 on Tue Oct 11 08:52:01 2016 by Doxygen 1.6.1</small>
  <br>
  <small>Copyright © 2016 The Apache Software Foundation.</small>
</address>
</body>
</html>
