File: XSECSafeBufferFormatter_8hpp-source.html

package info (click to toggle)
xml-security-c 1.2.1-3
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 24,464 kB
  • ctags: 6,673
  • sloc: cpp: 36,830; xml: 23,415; sh: 2,365; makefile: 340; perl: 221
file content (159 lines) | stat: -rw-r--r-- 14,222 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>XML-Security-C: XSECSafeBufferFormatter.hpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">src</a>&nbsp;/&nbsp;<a class="el" href="dir_000010.html">utils</a></div>
<h1>XSECSafeBufferFormatter.hpp</h1><a href="XSECSafeBufferFormatter_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/*</span>
00002 <span class="comment"> * Copyright 2002-2005 The Apache Software Foundation.</span>
00003 <span class="comment"> *</span>
00004 <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span>
00005 <span class="comment"> * you may not use this file except in compliance with the License.</span>
00006 <span class="comment"> * You may obtain a copy of the License at</span>
00007 <span class="comment"> *</span>
00008 <span class="comment"> *     http://www.apache.org/licenses/LICENSE-2.0</span>
00009 <span class="comment"> *</span>
00010 <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span>
00011 <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span>
00012 <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
00013 <span class="comment"> * See the License for the specific language governing permissions and</span>
00014 <span class="comment"> * limitations under the License.</span>
00015 <span class="comment"> */</span>
00016 
00017 <span class="comment">/*</span>
00018 <span class="comment"> * XSEC</span>
00019 <span class="comment"> *</span>
00020 <span class="comment"> * XSECSafeBufferFormatter := Class for formatting DOMStrings into SafeBuffers</span>
00021 <span class="comment"> *</span>
00022 <span class="comment"> * Author(s): Berin Lautenbach</span>
00023 <span class="comment"> *</span>
00024 <span class="comment"> * $Id: XSECSafeBufferFormatter.hpp,v 1.9 2005/02/03 13:53:54 milan Exp $</span>
00025 <span class="comment"> *</span>
00026 <span class="comment"> */</span>
00027 
00028 <span class="preprocessor">#ifndef XSECSAFEBUFFERFORMATTER_INCLUDE</span>
00029 <span class="preprocessor"></span><span class="preprocessor">#define XSECSAFEBUFFERFORMATTER_INCLUDE</span>
00030 <span class="preprocessor"></span>
00031 <span class="comment">// XSEC includes</span>
00032 
00033 <span class="preprocessor">#include &lt;xsec/utils/XSECSafeBuffer.hpp&gt;</span>
00034 
00035 <span class="comment">// Xerces includes</span>
00036 
00037 <span class="preprocessor">#include &lt;xercesc/framework/XMLFormatter.hpp&gt;</span>
00038 
<a name="l00043"></a><a class="code" href="classsbFormatTarget.html">00043</a> <span class="keyword">class </span><a class="code" href="classsbFormatTarget.html">sbFormatTarget</a> : <span class="keyword">public</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatTarget
00044 {
00045 <span class="keyword">public</span>:
00046     
<a name="l00047"></a><a class="code" href="classsbFormatTarget.html#a0">00047</a>     <a class="code" href="classsbFormatTarget.html#a0">sbFormatTarget</a>()  {m_offset = 0;}
<a name="l00048"></a><a class="code" href="classsbFormatTarget.html#a1">00048</a>     <a class="code" href="classsbFormatTarget.html#a1">~sbFormatTarget</a>() {}
00049 
<a name="l00050"></a><a class="code" href="classsbFormatTarget.html#a2">00050</a>     <span class="keywordtype">void</span> <a class="code" href="classsbFormatTarget.html#a2">setBuffer</a> (<a class="code" href="classsafeBuffer.html">safeBuffer</a> * toSet) {m_buffer = toSet;};
00051 
00052 
00053     <span class="comment">// -----------------------------------------------------------------------</span>
00054     <span class="comment">//  Implementations of the format target interface</span>
00055     <span class="comment">//  Based on Xerces/Xalan example code</span>
00056     <span class="comment">// -----------------------------------------------------------------------</span>
00057 
<a name="l00058"></a><a class="code" href="classsbFormatTarget.html#a3">00058</a>     <span class="keywordtype">void</span> <a class="code" href="classsbFormatTarget.html#a3">writeChars</a>(<span class="keyword">const</span>   XMLByte* <span class="keyword">const</span>  toWrite,
00059                     <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    count,
00060                     <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter * <span class="keyword">const</span> formatter)
00061     {
00062          m_buffer-&gt;<a class="code" href="classsafeBuffer.html#a13">sbMemcpyIn</a>(m_offset, (<span class="keywordtype">char</span> *) toWrite, (<span class="keywordtype">int</span>) count);
00063          m_buffer-&gt;<a class="code" href="classsafeBuffer.html#a37">setBufferType</a>(<a class="code" href="classsafeBuffer.html#w3w1">safeBuffer::BUFFER_CHAR</a>);
00064          m_offset += count;
00065         (*m_buffer)[m_offset] = <span class="charliteral">'\0'</span>;
00066     };
00067 
<a name="l00068"></a><a class="code" href="classsbFormatTarget.html#a4">00068</a>     <span class="keywordtype">void</span> <a class="code" href="classsbFormatTarget.html#a4">reset</a>(<span class="keywordtype">void</span>) {m_offset = 0;(*m_buffer)[0] = <span class="charliteral">'\0'</span>;}
00069 
00070 <span class="keyword">private</span>:
00071 
00072     <a class="code" href="classsbFormatTarget.html#a0">sbFormatTarget</a>(<span class="keyword">const</span> <a class="code" href="classsbFormatTarget.html">sbFormatTarget</a>&amp; other);
00073     <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classsbFormatTarget.html">sbFormatTarget</a>&amp; rhs);
00074 
00075     <a class="code" href="classsafeBuffer.html">safeBuffer</a>                  * m_buffer;     <span class="comment">// Buffer to write to</span>
00076     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>                m_offset;
00077     
00078 };
00079 
<a name="l00088"></a><a class="code" href="classXSECSafeBufferFormatter.html">00088</a> <span class="keyword">class </span><a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a> {
00089 
00090     <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter     
00091                         * formatter;        <span class="comment">// To actually perform the formatting</span>
00092     <a class="code" href="classsafeBuffer.html">safeBuffer</a>          formatBuffer;       <span class="comment">// Storage of translated strings</span>
00093     <a class="code" href="classsbFormatTarget.html">sbFormatTarget</a>      * sbf;              <span class="comment">// Format target used by XMLFormatter</span>
00094 
00095 <span class="keyword">public</span>:
00096 
00097     <span class="comment">// Constructor</span>
00098 
00099     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>(
00100         <span class="keyword">const</span> XMLCh * <span class="keyword">const</span>                     outEncoding,
00101         <span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::EscapeFlags          
00102                 escapeFlags=<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::NoEscapes,
00103         <span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRepFlags           
00104                 unrepFlags=<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRep_Fail
00105     );
00106 
00107     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>(
00108         <span class="keyword">const</span> <span class="keywordtype">char</span> * <span class="keyword">const</span>                      outEncoding,
00109         <span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::EscapeFlags          
00110                 escapeFlags=<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::NoEscapes,
00111         <span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRepFlags           
00112                 unrepFlags=<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRep_Fail
00113     );
00114 
00115     <span class="comment">// Destructor</span>
00116 
00117     <a class="code" href="classXSECSafeBufferFormatter.html#a2">~XSECSafeBufferFormatter</a>();
00118 
00119     <span class="comment">// Reimplementation of XMLFormatter functions</span>
00120 
00121     <span class="keywordtype">void</span>  <a class="code" href="classXSECSafeBufferFormatter.html#a3">formatBuf</a> (
00122         <span class="keyword">const</span> XMLCh *<span class="keyword">const</span> toFormat,
00123         <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count,
00124         <span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::EscapeFlags 
00125                 escapeFlags=<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::DefaultEscape,
00126         <span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRepFlags 
00127                 unrepFlags=<a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::DefaultUnRep
00128     );      <span class="comment">// Format a buffer</span>
00129 
00130     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>&amp;  <a class="code" href="classXSECSafeBufferFormatter.html#a4">operator&lt;&lt; </a>(
00131         <span class="keyword">const</span> XMLCh *<span class="keyword">const</span> toFormat);                   <span class="comment">// Format a buffer</span>
00132     
00133     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>&amp;  <a class="code" href="classXSECSafeBufferFormatter.html#a4">operator&lt;&lt; </a>(
00134         <span class="keyword">const</span> XMLCh toFormat);                          <span class="comment">// Format a character</span>
00135 
00136     <span class="keyword">const</span> XMLCh*  <a class="code" href="classXSECSafeBufferFormatter.html#a6">getEncodingName</a> ()<span class="keyword">const</span>;              <span class="comment">// Get current encoding</span>
00137 
00138     <span class="keywordtype">void</span>  <a class="code" href="classXSECSafeBufferFormatter.html#a7">setEscapeFlags</a> (<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::EscapeFlags newFlags);
00139     <span class="keywordtype">void</span>  <a class="code" href="classXSECSafeBufferFormatter.html#a8">setUnRepFlags</a> (<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRepFlags newFlags);
00140 
00141     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>&amp;  <a class="code" href="classXSECSafeBufferFormatter.html#a4">operator&lt;&lt; </a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::EscapeFlags newFlags); 
00142     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>&amp;  <a class="code" href="classXSECSafeBufferFormatter.html#a4">operator&lt;&lt; </a>(<span class="keyword">const</span> <a class="code" href="XSECDefs_8hpp.html#a0">XERCES_CPP_NAMESPACE_QUALIFIER</a> XMLFormatter::UnRepFlags newFlags); 
00143 
00144     <span class="comment">// Friends for working with safestrings</span>
00145 
00146     <span class="keyword">friend</span> <a class="code" href="classsafeBuffer.html">safeBuffer</a>&amp; <a class="code" href="classXSECSafeBufferFormatter.html#a4">operator&lt;&lt; </a>(<a class="code" href="classsafeBuffer.html">safeBuffer</a> &amp;to, <span class="keyword">const</span> <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a> &amp; from);
00147 
00148 <span class="keyword">private</span>:
00149 
00150     <span class="comment">// Unimplemented</span>
00151 
00152     <a class="code" href="classXSECSafeBufferFormatter.html">XSECSafeBufferFormatter</a>() {};
00153 
00154     
00155 };
00156 
00159 <span class="preprocessor">#endif </span><span class="comment">/* XSECSAFEBUFFERFORMATTER_INCLUDE */</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jul 3 17:37:28 2005 for XML-Security-C by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
</body>
</html>