The general rule is, that the apr_ namespace is unavailable, except to a select few files in the core.  Modules can not use the apr_ namespace.  The one exception to this is mod_openmrcp, where it gets access to the apr_namespace via the openmrcp libraries, as apr is used natively in that library.  Further, in the core, we should only be using the apr_ namespace for those functions that we have chosen not to wrap and expose out of the core.  The reasons for this are, more or less as stated.  We have already had several occasions where we have used the wrapper functions to correct bugs in apr, or to modify the behavior of functions, as we recently did with some of the socket code.
<br><br>Mike<br><br><div><span class="gmail_quote">On 11/9/07, <b class="gmail_sendername">Michael Collins</b> &lt;<a href="mailto:mcollins@fcnetwork.com">mcollins@fcnetwork.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Best policy is to use switch_ and not use the lazy apr_.<br><br>I tend to agree, at least from the standpoint of a non-coder who wants<br>(or needs) to read the source code.<br><br>&gt; I cannot think of a good reason, maybe others can -- but,
<br><br>I can&#39;t either.&nbsp;&nbsp;To preserve modularity, and to make it easier to<br>migrate away from apr if that need should arise, a clean and consistent<br>namespace seems appropriate.<br><br>&gt; If you find occurrences of non-conformance, patches are welcome!
<br><br>Sounds good.&nbsp;&nbsp;I&#39;m studying up on apr (and thusly switch_xxx) and if/when<br>I&#39;m comfortable submitting patches I will most definitely do so.<br><br>-MC<br><br><br>&gt;<br>&gt; m<br>&gt;<br>&gt;<br>&gt;<br>
&gt; On Thu, 8 Nov 2007, Michael Collins wrote:<br>&gt;<br>&gt; &gt; Guys,<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; bkw gave me some homework and now I have a few questions.&nbsp;&nbsp;I notice<br>that<br>&gt; &gt; in switch-types.h
 there are all sorts of typedef struct statements<br>that<br>&gt; &gt; create a switch_ version of the corresponding apr_ type.&nbsp;&nbsp;However,<br>I&#39;ve<br>&gt; &gt; also noticed that scattered throughout the source that there are
<br>&gt; &gt; numerous occasions where the apr_ namespace is used even when there<br>is a<br>&gt; &gt; switch_ equivalent available.&nbsp;&nbsp;Example: using apr_pool_t instead of<br>&gt; &gt; switch_memory_pool_t in mod_openmrcp.c.
<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; Questions:&nbsp;&nbsp;Is it FS standard policy/best practices always to use<br>the<br>&gt; &gt; switch_ namespace?&nbsp;&nbsp;Are there legitimate situations where one would<br>&gt; &gt; prefer apr_ instead of switch_?
<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; Thanks,<br>&gt; &gt;<br>&gt; &gt; MC<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; P.S. - If there are cases where apr_ is used when there are switch_<br>&gt; &gt; equivalents, does that mean there is an impending codebase cleanup
<br>&gt; &gt; project to make everything consistent?<br>&gt; &gt;<br>&gt; &gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; Freeswitch-dev mailing list<br>&gt; <a href="mailto:Freeswitch-dev@lists.freeswitch.org">
Freeswitch-dev@lists.freeswitch.org</a><br>&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev">
http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>&gt; <a href="http://www.freeswitch.org">http://www.freeswitch.org</a><br><br>_______________________________________________<br>Freeswitch-dev mailing list
<br><a href="mailto:Freeswitch-dev@lists.freeswitch.org">Freeswitch-dev@lists.freeswitch.org</a><br><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
</a><br>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br><a href="http://www.freeswitch.org">http://www.freeswitch.org</a><br>
</blockquote></div><br>