blob: f9273d545e5ea860216193ee1d14cd28dc563088 [file] [log] [blame]
<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>pulsar-client-cpp: pulsar::Producer Class 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="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>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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">pulsar-client-cpp
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</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">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.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)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="classes.html"><span>Class&#160;Index</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></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)">
</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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_producer.html">Producer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classpulsar_1_1_producer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">pulsar::Producer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<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:a013069fbb382f7f3c7dd58522765698b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a013069fbb382f7f3c7dd58522765698b">Producer</a> ()</td></tr>
<tr class="separator:a013069fbb382f7f3c7dd58522765698b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4af83fb29b1f4835a0a28597f70e195"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#ab4af83fb29b1f4835a0a28597f70e195">getTopic</a> () const </td></tr>
<tr class="separator:ab4af83fb29b1f4835a0a28597f70e195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a43751abd70ca64a1c0f84103a502bf"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a6a43751abd70ca64a1c0f84103a502bf">getProducerName</a> () const </td></tr>
<tr class="separator:a6a43751abd70ca64a1c0f84103a502bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4737186cf798acfb24a167796259443"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#ad4737186cf798acfb24a167796259443">send</a> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</td></tr>
<tr class="separator:ad4737186cf798acfb24a167796259443"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b31f92eb0362bdff32316fc9ab70fd7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a7b31f92eb0362bdff32316fc9ab70fd7">sendAsync</a> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg, SendCallback callback)</td></tr>
<tr class="separator:a7b31f92eb0362bdff32316fc9ab70fd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cd59ffc4a23162eca39183ba4278146"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a1cd59ffc4a23162eca39183ba4278146">flush</a> ()</td></tr>
<tr class="separator:a1cd59ffc4a23162eca39183ba4278146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3173d56da00ea2225f03e152c8c3df22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a3173d56da00ea2225f03e152c8c3df22">flushAsync</a> (FlushCallback callback)</td></tr>
<tr class="separator:a3173d56da00ea2225f03e152c8c3df22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5f958205d95c8a556bfbc1dc7b7596c"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#ad5f958205d95c8a556bfbc1dc7b7596c">getLastSequenceId</a> () const </td></tr>
<tr class="separator:ad5f958205d95c8a556bfbc1dc7b7596c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b4a93617a0c0f8d172633a7bf8ba06b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a0b4a93617a0c0f8d172633a7bf8ba06b">close</a> ()</td></tr>
<tr class="separator:a0b4a93617a0c0f8d172633a7bf8ba06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40f5268e6754c9e61e2406d432cffe2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_producer.html#a40f5268e6754c9e61e2406d432cffe2f">closeAsync</a> (CloseCallback callback)</td></tr>
<tr class="separator:a40f5268e6754c9e61e2406d432cffe2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a23637ad877ca400a3039fbd27d25db4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23637ad877ca400a3039fbd27d25db4c"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>ClientImpl</b></td></tr>
<tr class="separator:a23637ad877ca400a3039fbd27d25db4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1899b25eaceed54fad39b7b44d8a00f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1899b25eaceed54fad39b7b44d8a00f"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarFriend</b></td></tr>
<tr class="separator:ac1899b25eaceed54fad39b7b44d8a00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec24ec969dcf4df0185304ccbf6d653c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec24ec969dcf4df0185304ccbf6d653c"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></td></tr>
<tr class="separator:aec24ec969dcf4df0185304ccbf6d653c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a013069fbb382f7f3c7dd58522765698b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">pulsar::Producer::Producer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct an uninitialized <a class="el" href="classpulsar_1_1_producer.html">Producer</a>. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a0b4a93617a0c0f8d172633a7bf8ba06b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::Producer::close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the producer and release resources allocated.</p>
<p>No more writes will be accepted from this producer. Waits until all pending write requests are persisted. In case of errors, pending writes will not be retried.</p>
<dl class="section return"><dt>Returns</dt><dd>an error code to indicate the success or failure </dd></dl>
</div>
</div>
<a class="anchor" id="a40f5268e6754c9e61e2406d432cffe2f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pulsar::Producer::closeAsync </td>
<td>(</td>
<td class="paramtype">CloseCallback&#160;</td>
<td class="paramname"><em>callback</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close the producer and release resources allocated.</p>
<p>No more writes will be accepted from this producer. The provided callback will be triggered when all pending write requests are persisted. In case of errors, pending writes will not be retried. </p>
</div>
</div>
<a class="anchor" id="a1cd59ffc4a23162eca39183ba4278146"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::Producer::flush </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flush all the messages buffered in the client and wait until all messages have been successfully persisted. </p>
</div>
</div>
<a class="anchor" id="a3173d56da00ea2225f03e152c8c3df22"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pulsar::Producer::flushAsync </td>
<td>(</td>
<td class="paramtype">FlushCallback&#160;</td>
<td class="paramname"><em>callback</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Flush all the messages buffered in the client and wait until all messages have been successfully persisted. </p>
</div>
</div>
<a class="anchor" id="ad5f958205d95c8a556bfbc1dc7b7596c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int64_t pulsar::Producer::getLastSequenceId </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the last sequence id that was published by this producer.</p>
<p>This represent either the automatically assigned or custom sequence id (set on the <a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a>) that was published and acknowledged by the broker.</p>
<p>After recreating a producer with the same producer name, this will return the last message that was published in the previous producer session, or -1 if there no message was ever published.</p>
<dl class="section return"><dt>Returns</dt><dd>the last sequence id published by this producer </dd></dl>
</div>
</div>
<a class="anchor" id="a6a43751abd70ca64a1c0f84103a502bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string&amp; pulsar::Producer::getProducerName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the producer name which could have been assigned by the system or specified by the client </dd></dl>
</div>
</div>
<a class="anchor" id="ab4af83fb29b1f4835a0a28597f70e195"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string&amp; pulsar::Producer::getTopic </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the topic to which producer is publishing to </dd></dl>
</div>
</div>
<a class="anchor" id="ad4737186cf798acfb24a167796259443"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespacepulsar.html#ae85314d6b9e8afd831cf8c66705f2dbb">Result</a> pulsar::Producer::send </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;&#160;</td>
<td class="paramname"><em>msg</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Publish a message on the topic associated with this <a class="el" href="classpulsar_1_1_producer.html">Producer</a>.</p>
<p>This method will block until the message will be accepted and persisted by the broker. In case of errors, the client library will try to automatically recover and use a different broker.</p>
<p>If it wasn't possible to successfully publish the message within the sendTimeout, an error will be returned.</p>
<p>This method is equivalent to asyncSend() and wait until the callback is triggered.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>message to publish </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ResultOk if the message was published successfully </dd>
<dd>
ResultWriteError if it wasn't possible to publish the message </dd></dl>
</div>
</div>
<a class="anchor" id="a7b31f92eb0362bdff32316fc9ab70fd7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void pulsar::Producer::sendAsync </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">SendCallback&#160;</td>
<td class="paramname"><em>callback</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Asynchronously publish a message on the topic associated with this <a class="el" href="classpulsar_1_1_producer.html">Producer</a>.</p>
<p>This method will initiate the publish operation and return immediately. The provided callback will be triggered when the message has been be accepted and persisted by the broker. In case of errors, the client library will try to automatically recover and use a different broker.</p>
<p>If it wasn't possible to successfully publish the message within the sendTimeout, the callback will be triggered with a Result::WriteError code.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">msg</td><td>message to publish </td></tr>
<tr><td class="paramname">callback</td><td>the callback to get notification of the completion </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/pulsar/<a class="el" href="_producer_8h_source.html">Producer.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>