﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-swordhell-文章分类-ACE部分</title><link>http://www.cppblog.com/swordhell/category/3294.html</link><description>君子曰：学不可以已。</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 21:57:37 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 21:57:37 GMT</pubDate><ttl>60</ttl><item><title>ACE里的日志输出回调方式</title><link>http://www.cppblog.com/swordhell/articles/16839.html</link><dc:creator>Sword.Hell blog</dc:creator><author>Sword.Hell blog</author><pubDate>Mon, 25 Dec 2006 06:36:00 GMT</pubDate><guid>http://www.cppblog.com/swordhell/articles/16839.html</guid><wfw:comment>http://www.cppblog.com/swordhell/comments/16839.html</wfw:comment><comments>http://www.cppblog.com/swordhell/articles/16839.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/swordhell/comments/commentRss/16839.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/swordhell/services/trackbacks/16839.html</trackback:ping><description><![CDATA[
		<br />本次是使用的一种回调方式来输出ACE里的日志：<br /><br />如果有了回调的事件之后，我们就可以很好的扩展这个日志输出之后，我们如何来第二次处理了。<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">ACE.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Log_Msg.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Log_Msg_Callback.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">ace</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Log_Record.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" />#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000"> std;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> LogCall : </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> ACE_Log_Msg_Callback<br /><img id="Codehighlighter1_193_352_Open_Image" onclick="this.style.display='none'; Codehighlighter1_193_352_Open_Text.style.display='none'; Codehighlighter1_193_352_Closed_Image.style.display='inline'; Codehighlighter1_193_352_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_193_352_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_193_352_Closed_Text.style.display='none'; Codehighlighter1_193_352_Open_Image.style.display='inline'; Codehighlighter1_193_352_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_193_352_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_193_352_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br /><img id="Codehighlighter1_213_214_Open_Image" onclick="this.style.display='none'; Codehighlighter1_213_214_Open_Text.style.display='none'; Codehighlighter1_213_214_Closed_Image.style.display='inline'; Codehighlighter1_213_214_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_213_214_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_213_214_Closed_Text.style.display='none'; Codehighlighter1_213_214_Open_Image.style.display='inline'; Codehighlighter1_213_214_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    LogCall()</span><span id="Codehighlighter1_213_214_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_213_214_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"><br /><img id="Codehighlighter1_227_228_Open_Image" onclick="this.style.display='none'; Codehighlighter1_227_228_Open_Text.style.display='none'; Codehighlighter1_227_228_Closed_Image.style.display='inline'; Codehighlighter1_227_228_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_227_228_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_227_228_Closed_Text.style.display='none'; Codehighlighter1_227_228_Open_Image.style.display='inline'; Codehighlighter1_227_228_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">LogCall()</span><span id="Codehighlighter1_227_228_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_227_228_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> log (ACE_Log_Record </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">log_record)<br /><img id="Codehighlighter1_278_350_Open_Image" onclick="this.style.display='none'; Codehighlighter1_278_350_Open_Text.style.display='none'; Codehighlighter1_278_350_Closed_Image.style.display='inline'; Codehighlighter1_278_350_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_278_350_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_278_350_Closed_Text.style.display='none'; Codehighlighter1_278_350_Open_Image.style.display='inline'; Codehighlighter1_278_350_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_278_350_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_278_350_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">这是回调之后打印出来的内容:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">log_record.msg_data()</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> ACE_TMAIN(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">, ACE_TCHAR </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[])<br /><img id="Codehighlighter1_390_628_Open_Image" onclick="this.style.display='none'; Codehighlighter1_390_628_Open_Text.style.display='none'; Codehighlighter1_390_628_Closed_Image.style.display='inline'; Codehighlighter1_390_628_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_390_628_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_390_628_Closed_Text.style.display='none'; Codehighlighter1_390_628_Open_Image.style.display='inline'; Codehighlighter1_390_628_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_390_628_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/images/dot.gif" /></span><span id="Codehighlighter1_390_628_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    LogCall </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pCall</span><span style="COLOR: #000000">=</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> LogCall();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    ACE_LOG_MSG</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">set_flags(ACE_Log_Msg::MSG_CALLBACK);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">ACE_LOG_MSG-&gt;clr_flags(ACE_Log_Msg::STDERR);</span><span style="COLOR: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    ACE_LOG_MSG</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">msg_callback(pCall);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    ACE_DEBUG((LM_ERROR,ACE_TEXT(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"> %D大家好啊\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)));<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    getchar();<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div><img src ="http://www.cppblog.com/swordhell/aggbug/16839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/swordhell/" target="_blank">Sword.Hell blog</a> 2006-12-25 14:36 <a href="http://www.cppblog.com/swordhell/articles/16839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>