<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Rampart/C: rampart_callback.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_2ab6243317ac98a7842daf660931c511.html">include</a>
  </div>
</div>
</div>
<h1>rampart_callback.h</h1><a href="rampart__callback_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">* Licensed to the Apache Software Foundation (ASF) under one or more</span>
<a name="l00003"></a>00003 <span class="comment">* contributor license agreements.  See the NOTICE file distributed with</span>
<a name="l00004"></a>00004 <span class="comment">* this work for additional information regarding copyright ownership.</span>
<a name="l00005"></a>00005 <span class="comment">* The ASF licenses this file to You under the Apache License, Version 2.0</span>
<a name="l00006"></a>00006 <span class="comment">* (the "License"); you may not use this file except in compliance with</span>
<a name="l00007"></a>00007 <span class="comment">* the License.  You may obtain a copy of the License at</span>
<a name="l00008"></a>00008 <span class="comment">*</span>
<a name="l00009"></a>00009 <span class="comment">*      http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00010"></a>00010 <span class="comment">*</span>
<a name="l00011"></a>00011 <span class="comment">* Unless required by applicable law or agreed to in writing, software</span>
<a name="l00012"></a>00012 <span class="comment">* distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00013"></a>00013 <span class="comment">* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00014"></a>00014 <span class="comment">* See the License for the specific language governing permissions and</span>
<a name="l00015"></a>00015 <span class="comment">* limitations under the License.</span>
<a name="l00016"></a>00016 <span class="comment">*/</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#include &lt;axutil_utils_defines.h&gt;</span>
<a name="l00019"></a>00019 <span class="preprocessor">#include &lt;axis2_defines.h&gt;</span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;axutil_param.h&gt;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#ifndef RAMPART_CALLBACK_H</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define RAMPART_CALLBACK_H</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span>
<a name="l00030"></a>00030 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span>
<a name="l00041"></a>00041     <span class="keyword">typedef</span> <span class="keyword">struct </span>rampart_callback_ops rampart_callback_ops_t;
<a name="l00042"></a>00042     <span class="keyword">typedef</span> <span class="keyword">struct </span>rampart_callback rampart_callback_t;
<a name="l00043"></a>00043 
<a name="l00044"></a>00044     <span class="keyword">struct </span>rampart_callback_ops
<a name="l00045"></a>00045     {
<a name="l00056"></a>00056         axis2_char_t *(AXIS2_CALL*
<a name="l00057"></a>00057                        callback_password)(rampart_callback_t *callback,
<a name="l00058"></a>00058                                           <span class="keyword">const</span> axutil_env_t *env,
<a name="l00059"></a>00059                                           <span class="keyword">const</span> axis2_char_t *username,
<a name="l00060"></a>00060                                           <span class="keywordtype">void</span> *param);
<a name="l00072"></a>00072                 axis2_char_t *(AXIS2_CALL*
<a name="l00073"></a>00073                                            callback_pkcs12_password)(rampart_callback_t *callback,
<a name="l00074"></a>00074                                                                                                 <span class="keyword">const</span> axutil_env_t *env,
<a name="l00075"></a>00075                                                                                                 <span class="keyword">const</span> axis2_char_t *username,
<a name="l00076"></a>00076                                                                                                 <span class="keywordtype">void</span> *param);
<a name="l00083"></a>00083         axis2_status_t (AXIS2_CALL*
<a name="l00084"></a>00084                         free)(rampart_callback_t *rcb,
<a name="l00085"></a>00085                               <span class="keyword">const</span> axutil_env_t* env);
<a name="l00086"></a>00086 
<a name="l00087"></a>00087     };
<a name="l00088"></a>00088 
<a name="l00089"></a>00089     <span class="keyword">struct </span>rampart_callback
<a name="l00090"></a>00090     {
<a name="l00091"></a>00091         rampart_callback_ops_t *ops;
<a name="l00092"></a>00092         axutil_param_t *param;
<a name="l00093"></a>00093     };
<a name="l00094"></a>00094 
<a name="l00095"></a>00095     <span class="comment">/*************************** Function macros **********************************/</span>
<a name="l00096"></a>00096 <span class="preprocessor">#define RAMPART_CALLBACK_FREE(callback, env) \</span>
<a name="l00097"></a>00097 <span class="preprocessor">      ((callback)-&gt;ops-&gt;free (callback, env))</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span>
<a name="l00099"></a>00099 <span class="preprocessor">#define RAMPART_CALLBACK_CALLBACK_PASSWORD(callback, env, username, param) \</span>
<a name="l00100"></a>00100 <span class="preprocessor">      ((callback)-&gt;ops-&gt;callback_password(callback, env, username, param))</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span>
<a name="l00102"></a>00102 <span class="preprocessor">#define RAMPART_CALLBACK_CALLBACK_PKCS12_PASSWORD(callback, env, username, param) \</span>
<a name="l00103"></a>00103 <span class="preprocessor">          ((callback)-&gt;ops-&gt;callback_pkcs12_password(callback, env, username, param))</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span>
<a name="l00106"></a>00106 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span>}
<a name="l00108"></a>00108 <span class="preprocessor">#endif</span>
<a name="l00109"></a>00109 <span class="preprocessor"></span>
<a name="l00110"></a>00110 <span class="preprocessor">#endif </span><span class="comment">/* RAMPART_CALLBACK_H */</span>
<a name="l00111"></a>00111 
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed May 13 10:52:53 2009 for Rampart/C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>
