qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gordon Sim (Confluence)" <conflue...@apache.org>
Subject [CONF] Apache Qpid > CppApiGuide
Date Tue, 16 Jul 2013 12:43:00 GMT
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/en/2176/1/21/_/styles/combined.css?spaceKey=qpid&amp;forWysiwyg=true"
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h4>Page <b>removed</b> by             <a href="https://cwiki.apache.org/confluence/display/~gsim@redhat.com">Gordon
     <div class="notificationGreySide">
         <h1><a name="CppApiGuide-C%5CpublicAPIguidelines."></a>C+&#43;
public API guidelines.</h1>

<p>These guidelines are for the public client API to be released in qpid 1.0. The "plugin"
API exposed for bdbstore should eventually follow these guidelines but it can be deferred.</p>

<h2><a name="CppApiGuide-Publicheaderfiles"></a>Public header files</h2>

<p>Public headers under: qpid/cpp/src/include&nbsp;</p>

<p>Non-unit client tests&nbsp; should be built with &#45;I include and <em>without</em>
&#45;I . so that missing public headers can be quickly identified.</p>

<p>&nbsp;Only src/include headers are installed with package qpidc-devel. Package
qpidd-devel should only install src/include headers, but for 1.0 it may still install private

<h2><a name="CppApiGuide-PIMPLidiom"></a>PIMPL idiom</h2>

<p>Value classes needed by the user (e.g. framing data types, message content) are exposed
as normal classes in public headers.</p>

<p>Service classes (e.g. Session, Connection etc) use the pimpl idiom for&nbsp;
compatibility isolation. See <a href="http://en.wikipedia.org/wiki/Pimpl" class="external-link"

<h2><a name="CppApiGuide-Threadsafety"></a>Thread safety</h2>

<p>I believe making the session thread safe will make it simpler to use in various circumstances
(some of which may be unforeseen). I don't think it necessarily adds significant overhead
(though this is something we can verify).</p>

To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org

View raw message