89
89
<a name="l00072"></a>00072 boost::exception <span class="keyword">const</span> * <span class="keyword">const</span> be = <span class="keyword">dynamic_cast<</span><span class="keyword">const </span>boost::exception*<span class="keyword">></span>(&e);
90
90
<a name="l00073"></a>00073 std::exception <span class="keyword">const</span> * <span class="keyword">const</span> se = <span class="keyword">dynamic_cast<</span><span class="keyword">const </span>std::exception*<span class="keyword">></span>(&e);
91
91
<a name="l00074"></a>00074 std::ostringstream tmp;
92
<a name="l00075"></a>00075 tmp << (se ? se->what() : <span class="stringliteral">"unknown exception"</span>);
93
<a name="l00076"></a>00076 <span class="keywordflow">if</span> (be) {
94
<a name="l00077"></a>00077 <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> * fn=boost::get_error_info<boost::throw_function>(*be);
95
<a name="l00078"></a>00078 <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> * f=boost::get_error_info<boost::throw_file>(*be);
96
<a name="l00079"></a>00079 <span class="keywordflow">if</span> (fn) tmp << <span class="stringliteral">" at "</span> << *fn;
97
<a name="l00080"></a>00080 <span class="keywordflow">if</span> (f) {
98
<a name="l00081"></a>00081 tmp << <span class="stringliteral">" ["</span> << *f;
99
<a name="l00082"></a>00082 <span class="keywordflow">if</span>( <span class="keywordtype">int</span> <span class="keyword">const</span> * l=boost::get_error_info<boost::throw_line>(*be) )
100
<a name="l00083"></a>00083 tmp << <span class="charliteral">':'</span> << *l;
101
<a name="l00084"></a>00084 }
102
<a name="l00085"></a>00085 }
103
<a name="l00086"></a>00086 <span class="keywordflow">return</span> tmp.str();
104
<a name="l00087"></a>00087 }
105
<a name="l00088"></a>00088
106
<a name="l00089"></a>00089
107
<a name="l00090"></a>00090 <span class="keyword">namespace </span>error { <span class="comment">// begin namespace error</span>
108
<a name="l00091"></a>00091
109
<a name="l00092"></a>00092 <span class="comment">//</span>
110
<a name="l00093"></a>00093 <span class="comment">// pion error info types</span>
111
<a name="l00094"></a>00094 <span class="comment">//</span>
112
<a name="l00095"></a>00095
113
<a name="l00097"></a>00097 <span class="keyword">typedef</span> boost::error_info<struct errinfo_arg_name_,std::string> errinfo_message;
114
<a name="l00098"></a>00098
115
<a name="l00100"></a>00100 <span class="keyword">typedef</span> boost::error_info<struct errinfo_arg_name_,std::string> errinfo_arg_name;
116
<a name="l00101"></a>00101
117
<a name="l00103"></a>00103 <span class="keyword">typedef</span> boost::error_info<struct errinfo_file_name_,std::string> errinfo_file_name;
92
<a name="l00075"></a>00075 <span class="keywordflow">if</span> (se) {
93
<a name="l00076"></a>00076 tmp << se->what();
94
<a name="l00077"></a>00077 } <span class="keywordflow">else</span> {
95
<a name="l00078"></a>00078 <span class="preprocessor">#if BOOST_VERSION >= 104700</span>
96
<a name="l00079"></a>00079 <span class="preprocessor"></span> tmp << boost::units::detail::demangle(BOOST_EXCEPTION_DYNAMIC_TYPEID(e).type_->name());
97
<a name="l00080"></a>00080 <span class="preprocessor">#else</span>
98
<a name="l00081"></a>00081 <span class="preprocessor"></span> tmp << boost::units::detail::demangle(BOOST_EXCEPTION_DYNAMIC_TYPEID(e).type_.name());
99
<a name="l00082"></a>00082 <span class="preprocessor">#endif</span>
100
<a name="l00083"></a>00083 <span class="preprocessor"></span> }
101
<a name="l00084"></a>00084 <span class="keywordflow">if</span> (be) {
102
<a name="l00085"></a>00085 <span class="comment">//char const * const * fn=boost::get_error_info<boost::throw_function>(*be);</span>
103
<a name="l00086"></a>00086 <span class="comment">//if (fn) tmp << " at " << *fn;</span>
104
<a name="l00087"></a>00087 <span class="keywordtype">char</span> <span class="keyword">const</span> * <span class="keyword">const</span> * f=boost::get_error_info<boost::throw_file>(*be);
105
<a name="l00088"></a>00088 <span class="keywordflow">if</span> (f) {
106
<a name="l00089"></a>00089 tmp << <span class="stringliteral">" ["</span> << *f;
107
<a name="l00090"></a>00090 <span class="keywordflow">if</span> (<span class="keywordtype">int</span> <span class="keyword">const</span> * l=boost::get_error_info<boost::throw_line>(*be))
108
<a name="l00091"></a>00091 tmp << <span class="charliteral">':'</span> << *l;
109
<a name="l00092"></a>00092 tmp << <span class="stringliteral">"]"</span>;
110
<a name="l00093"></a>00093 }
111
<a name="l00094"></a>00094 }
112
<a name="l00095"></a>00095 <span class="keywordflow">return</span> tmp.str();
113
<a name="l00096"></a>00096 }
114
<a name="l00097"></a>00097
115
<a name="l00098"></a>00098
116
<a name="l00099"></a>00099 <span class="keyword">namespace </span>error { <span class="comment">// begin namespace error</span>
117
<a name="l00100"></a>00100
118
<a name="l00101"></a>00101 <span class="comment">//</span>
119
<a name="l00102"></a>00102 <span class="comment">// pion error info types</span>
120
<a name="l00103"></a>00103 <span class="comment">//</span>
118
121
<a name="l00104"></a>00104
119
<a name="l00106"></a>00106 <span class="keyword">typedef</span> boost::error_info<struct errinfo_dir_name_,std::string> errinfo_dir_name;
122
<a name="l00106"></a>00106 <span class="keyword">typedef</span> boost::error_info<struct errinfo_arg_name_,std::string> errinfo_message;
120
123
<a name="l00107"></a>00107
121
<a name="l00109"></a>00109 <span class="keyword">typedef</span> boost::error_info<struct errinfo_plugin_name_,std::string> errinfo_plugin_name;
124
<a name="l00109"></a>00109 <span class="keyword">typedef</span> boost::error_info<struct errinfo_arg_name_,std::string> errinfo_arg_name;
122
125
<a name="l00110"></a>00110
123
<a name="l00112"></a>00112 <span class="keyword">typedef</span> boost::error_info<struct errinfo_dir_name_,std::string> errinfo_symbol_name;
124
<a name="l00113"></a>00113
125
<a name="l00114"></a>00114
126
<a name="l00115"></a>00115 <span class="comment">//</span>
127
<a name="l00116"></a>00116 <span class="comment">// pion exception types</span>
128
<a name="l00117"></a>00117 <span class="comment">//</span>
129
<a name="l00118"></a>00118
130
<a name="l00120"></a><a class="code" href="classpion_1_1error_1_1bad__arg.html">00120</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1bad__arg.html" title="exception thrown for an invalid configuration argument or option">bad_arg</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
131
<a name="l00121"></a>00121 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
132
<a name="l00122"></a>00122 set_what_msg(<span class="stringliteral">"bad argument"</span>, boost::get_error_info<errinfo_arg_name>(*<span class="keyword">this</span>));
133
<a name="l00123"></a>00123 }
134
<a name="l00124"></a>00124 };
135
<a name="l00125"></a>00125
136
<a name="l00127"></a><a class="code" href="classpion_1_1error_1_1bad__config.html">00127</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1bad__config.html" title="exception thrown if there is an error parsing a configuration file">bad_config</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
137
<a name="l00128"></a>00128 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
138
<a name="l00129"></a>00129 set_what_msg(<span class="stringliteral">"config parser error"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
139
<a name="l00130"></a>00130 }
140
<a name="l00131"></a>00131 };
141
<a name="l00132"></a>00132
142
<a name="l00134"></a><a class="code" href="classpion_1_1error_1_1open__file.html">00134</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1open__file.html" title="exception thrown if we failed to open a file">open_file</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
143
<a name="l00135"></a>00135 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
144
<a name="l00136"></a>00136 set_what_msg(<span class="stringliteral">"unable to open file"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
145
<a name="l00137"></a>00137 }
146
<a name="l00138"></a>00138 };
147
<a name="l00139"></a>00139
148
<a name="l00141"></a><a class="code" href="classpion_1_1error_1_1open__plugin.html">00141</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1open__plugin.html" title="exception thrown if we are unable to open a plugin">open_plugin</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
149
<a name="l00142"></a>00142 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
150
<a name="l00143"></a>00143 set_what_msg(<span class="stringliteral">"unable to open plugin"</span>, boost::get_error_info<errinfo_plugin_name>(*<span class="keyword">this</span>));
151
<a name="l00144"></a>00144 }
152
<a name="l00145"></a>00145 };
153
<a name="l00146"></a>00146
154
<a name="l00148"></a><a class="code" href="classpion_1_1error_1_1read__file.html">00148</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1read__file.html" title="exception thrown if we failed to read data from a file">read_file</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
155
<a name="l00149"></a>00149 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
156
<a name="l00150"></a>00150 set_what_msg(<span class="stringliteral">"unable to read file"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
157
<a name="l00151"></a>00151 }
158
<a name="l00152"></a>00152 };
159
<a name="l00153"></a>00153
160
<a name="l00155"></a><a class="code" href="classpion_1_1error_1_1file__not__found.html">00155</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1file__not__found.html" title="exception thrown if a file is not found">file_not_found</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
161
<a name="l00156"></a>00156 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
162
<a name="l00157"></a>00157 set_what_msg(<span class="stringliteral">"file not found"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
163
<a name="l00158"></a>00158 }
164
<a name="l00159"></a>00159 };
165
<a name="l00160"></a>00160
166
<a name="l00162"></a><a class="code" href="classpion_1_1error_1_1directory__not__found.html">00162</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1directory__not__found.html" title="exception thrown if a required directory is not found">directory_not_found</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
167
<a name="l00163"></a>00163 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
168
<a name="l00164"></a>00164 set_what_msg(<span class="stringliteral">"directory not found"</span>, boost::get_error_info<errinfo_dir_name>(*<span class="keyword">this</span>));
169
<a name="l00165"></a>00165 }
170
<a name="l00166"></a>00166 };
171
<a name="l00167"></a>00167
172
<a name="l00169"></a><a class="code" href="classpion_1_1error_1_1plugin__not__found.html">00169</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1plugin__not__found.html" title="exception thrown if a plugin cannot be found">plugin_not_found</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
173
<a name="l00170"></a>00170 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
174
<a name="l00171"></a>00171 set_what_msg(<span class="stringliteral">"plugin not found"</span>, boost::get_error_info<errinfo_plugin_name>(*<span class="keyword">this</span>));
175
<a name="l00172"></a>00172 }
176
<a name="l00173"></a>00173 };
177
<a name="l00174"></a>00174
178
<a name="l00176"></a><a class="code" href="classpion_1_1error_1_1duplicate__plugin.html">00176</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1duplicate__plugin.html" title="exception thrown if we try to add or load a duplicate plugin">duplicate_plugin</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
179
<a name="l00177"></a>00177 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
180
<a name="l00178"></a>00178 set_what_msg(<span class="stringliteral">"duplicate plugin"</span>, boost::get_error_info<errinfo_plugin_name>(*<span class="keyword">this</span>));
181
<a name="l00179"></a>00179 }
182
<a name="l00180"></a>00180 };
183
<a name="l00181"></a>00181
184
<a name="l00183"></a><a class="code" href="classpion_1_1error_1_1plugin__missing__symbol.html">00183</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1plugin__missing__symbol.html" title="exception thrown if a plugin is missing a required symbol">plugin_missing_symbol</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
185
<a name="l00184"></a>00184 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
186
<a name="l00185"></a>00185 set_what_msg(<span class="stringliteral">"missing plugin symbol"</span>, boost::get_error_info<errinfo_symbol_name>(*<span class="keyword">this</span>));
187
<a name="l00186"></a>00186 }
188
<a name="l00187"></a>00187 };
189
<a name="l00188"></a>00188
190
<a name="l00190"></a><a class="code" href="classpion_1_1error_1_1plugin__undefined.html">00190</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1plugin__undefined.html" title="exception thrown if a plugin has an undefined state">plugin_undefined</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
191
<a name="l00191"></a>00191 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
192
<a name="l00192"></a>00192 set_what_msg(<span class="stringliteral">"plugin has undefined state"</span>);
193
<a name="l00193"></a>00193 }
194
<a name="l00194"></a>00194 };
195
<a name="l00195"></a>00195
196
<a name="l00197"></a><a class="code" href="classpion_1_1error_1_1bad__password__hash.html">00197</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1bad__password__hash.html" title="exception thrown if a bad password hash is provided">bad_password_hash</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
197
<a name="l00198"></a>00198 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
198
<a name="l00199"></a>00199 set_what_msg(<span class="stringliteral">"bad password hash"</span>);
199
<a name="l00200"></a>00200 }
200
<a name="l00201"></a>00201 };
201
<a name="l00202"></a>00202
202
<a name="l00203"></a>00203 } <span class="comment">// end namespace error</span>
203
<a name="l00204"></a>00204
204
<a name="l00205"></a>00205 } <span class="comment">// end namespace pion</span>
205
<a name="l00206"></a>00206
206
<a name="l00207"></a>00207 <span class="preprocessor">#endif</span>
126
<a name="l00112"></a>00112 <span class="keyword">typedef</span> boost::error_info<struct errinfo_file_name_,std::string> errinfo_file_name;
127
<a name="l00113"></a>00113
128
<a name="l00115"></a>00115 <span class="keyword">typedef</span> boost::error_info<struct errinfo_dir_name_,std::string> errinfo_dir_name;
129
<a name="l00116"></a>00116
130
<a name="l00118"></a>00118 <span class="keyword">typedef</span> boost::error_info<struct errinfo_plugin_name_,std::string> errinfo_plugin_name;
131
<a name="l00119"></a>00119
132
<a name="l00121"></a>00121 <span class="keyword">typedef</span> boost::error_info<struct errinfo_dir_name_,std::string> errinfo_symbol_name;
133
<a name="l00122"></a>00122
134
<a name="l00123"></a>00123
135
<a name="l00124"></a>00124 <span class="comment">//</span>
136
<a name="l00125"></a>00125 <span class="comment">// pion exception types</span>
137
<a name="l00126"></a>00126 <span class="comment">//</span>
138
<a name="l00127"></a>00127
139
<a name="l00129"></a><a class="code" href="classpion_1_1error_1_1bad__arg.html">00129</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1bad__arg.html" title="exception thrown for an invalid configuration argument or option">bad_arg</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
140
<a name="l00130"></a>00130 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
141
<a name="l00131"></a>00131 set_what_msg(<span class="stringliteral">"bad argument"</span>, boost::get_error_info<errinfo_arg_name>(*<span class="keyword">this</span>));
142
<a name="l00132"></a>00132 }
143
<a name="l00133"></a>00133 };
144
<a name="l00134"></a>00134
145
<a name="l00136"></a><a class="code" href="classpion_1_1error_1_1bad__config.html">00136</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1bad__config.html" title="exception thrown if there is an error parsing a configuration file">bad_config</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
146
<a name="l00137"></a>00137 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
147
<a name="l00138"></a>00138 set_what_msg(<span class="stringliteral">"config parser error"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
148
<a name="l00139"></a>00139 }
149
<a name="l00140"></a>00140 };
150
<a name="l00141"></a>00141
151
<a name="l00143"></a><a class="code" href="classpion_1_1error_1_1open__file.html">00143</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1open__file.html" title="exception thrown if we failed to open a file">open_file</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
152
<a name="l00144"></a>00144 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
153
<a name="l00145"></a>00145 set_what_msg(<span class="stringliteral">"unable to open file"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
154
<a name="l00146"></a>00146 }
155
<a name="l00147"></a>00147 };
156
<a name="l00148"></a>00148
157
<a name="l00150"></a><a class="code" href="classpion_1_1error_1_1open__plugin.html">00150</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1open__plugin.html" title="exception thrown if we are unable to open a plugin">open_plugin</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
158
<a name="l00151"></a>00151 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
159
<a name="l00152"></a>00152 set_what_msg(<span class="stringliteral">"unable to open plugin"</span>, boost::get_error_info<errinfo_plugin_name>(*<span class="keyword">this</span>));
160
<a name="l00153"></a>00153 }
161
<a name="l00154"></a>00154 };
162
<a name="l00155"></a>00155
163
<a name="l00157"></a><a class="code" href="classpion_1_1error_1_1read__file.html">00157</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1read__file.html" title="exception thrown if we failed to read data from a file">read_file</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
164
<a name="l00158"></a>00158 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
165
<a name="l00159"></a>00159 set_what_msg(<span class="stringliteral">"unable to read file"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
166
<a name="l00160"></a>00160 }
167
<a name="l00161"></a>00161 };
168
<a name="l00162"></a>00162
169
<a name="l00164"></a><a class="code" href="classpion_1_1error_1_1file__not__found.html">00164</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1file__not__found.html" title="exception thrown if a file is not found">file_not_found</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
170
<a name="l00165"></a>00165 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
171
<a name="l00166"></a>00166 set_what_msg(<span class="stringliteral">"file not found"</span>, boost::get_error_info<errinfo_file_name>(*<span class="keyword">this</span>));
172
<a name="l00167"></a>00167 }
173
<a name="l00168"></a>00168 };
174
<a name="l00169"></a>00169
175
<a name="l00171"></a><a class="code" href="classpion_1_1error_1_1directory__not__found.html">00171</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1directory__not__found.html" title="exception thrown if a required directory is not found">directory_not_found</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
176
<a name="l00172"></a>00172 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
177
<a name="l00173"></a>00173 set_what_msg(<span class="stringliteral">"directory not found"</span>, boost::get_error_info<errinfo_dir_name>(*<span class="keyword">this</span>));
178
<a name="l00174"></a>00174 }
179
<a name="l00175"></a>00175 };
180
<a name="l00176"></a>00176
181
<a name="l00178"></a><a class="code" href="classpion_1_1error_1_1plugin__not__found.html">00178</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1plugin__not__found.html" title="exception thrown if a plugin cannot be found">plugin_not_found</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
182
<a name="l00179"></a>00179 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
183
<a name="l00180"></a>00180 set_what_msg(<span class="stringliteral">"plugin not found"</span>, boost::get_error_info<errinfo_plugin_name>(*<span class="keyword">this</span>));
184
<a name="l00181"></a>00181 }
185
<a name="l00182"></a>00182 };
186
<a name="l00183"></a>00183
187
<a name="l00185"></a><a class="code" href="classpion_1_1error_1_1duplicate__plugin.html">00185</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1duplicate__plugin.html" title="exception thrown if we try to add or load a duplicate plugin">duplicate_plugin</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
188
<a name="l00186"></a>00186 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
189
<a name="l00187"></a>00187 set_what_msg(<span class="stringliteral">"duplicate plugin"</span>, boost::get_error_info<errinfo_plugin_name>(*<span class="keyword">this</span>));
190
<a name="l00188"></a>00188 }
191
<a name="l00189"></a>00189 };
192
<a name="l00190"></a>00190
193
<a name="l00192"></a><a class="code" href="classpion_1_1error_1_1plugin__missing__symbol.html">00192</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1plugin__missing__symbol.html" title="exception thrown if a plugin is missing a required symbol">plugin_missing_symbol</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
194
<a name="l00193"></a>00193 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
195
<a name="l00194"></a>00194 set_what_msg(<span class="stringliteral">"missing plugin symbol"</span>, boost::get_error_info<errinfo_symbol_name>(*<span class="keyword">this</span>));
196
<a name="l00195"></a>00195 }
197
<a name="l00196"></a>00196 };
198
<a name="l00197"></a>00197
199
<a name="l00199"></a><a class="code" href="classpion_1_1error_1_1plugin__undefined.html">00199</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1plugin__undefined.html" title="exception thrown if a plugin has an undefined state">plugin_undefined</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
200
<a name="l00200"></a>00200 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
201
<a name="l00201"></a>00201 set_what_msg(<span class="stringliteral">"plugin has undefined state"</span>);
202
<a name="l00202"></a>00202 }
203
<a name="l00203"></a>00203 };
204
<a name="l00204"></a>00204
205
<a name="l00206"></a><a class="code" href="classpion_1_1error_1_1bad__password__hash.html">00206</a> <span class="keyword">class </span><a class="code" href="classpion_1_1error_1_1bad__password__hash.html" title="exception thrown if a bad password hash is provided">bad_password_hash</a> : <span class="keyword">public</span> pion::<a class="code" href="classpion_1_1exception.html">exception</a> {
206
<a name="l00207"></a>00207 <span class="keyword">virtual</span> <span class="keywordtype">void</span> update_what_msg()<span class="keyword"> const </span>{
207
<a name="l00208"></a>00208 set_what_msg(<span class="stringliteral">"bad password hash"</span>);
208
<a name="l00209"></a>00209 }
209
<a name="l00210"></a>00210 };
210
<a name="l00211"></a>00211
211
<a name="l00212"></a>00212 } <span class="comment">// end namespace error</span>
212
<a name="l00213"></a>00213
213
<a name="l00214"></a>00214 } <span class="comment">// end namespace pion</span>
214
<a name="l00215"></a>00215
215
<a name="l00216"></a>00216 <span class="preprocessor">#endif</span>
207
216
</pre></div></div>
208
<hr size="1"/><address style="text-align: right;"><small>Generated on 15 Apr 2013 for pion by
217
<hr size="1"/><address style="text-align: right;"><small>Generated on 26 Jul 2013 for pion by
209
218
<a href="http://www.doxygen.org/index.html">
210
219
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>