string

string
posts - 27, comments - 177, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要: 用mv替换rm命令的脚本, 可以管理回收站以及从回收站中恢复文件。或许对大家有用。
下载请用:svn export https://codelibrarydzh.googlecode.com/svn/trunk/shell/rm  阅读全文

posted @ 2010-05-13 00:17 djx_zh 阅读(591) | 评论 (0)编辑 收藏

1. WebFrame::spoolPages(...)  =C>  调用Frame paint函数
2. coreFramepaint(&spoolCtx, pageRect);{void Frame::paint(GraphicsContext* p, const IntRect& rect)}  =C> 调用根(document) 的layer 的paint函数
3. contentRenderer()->layer()->paint(p, rect, d->m_paintRestriction, eltRenderer);  RenderLayer::paint(GraphicsContext* p, const IntRect& damageRect, PaintRestriction paintRestriction, RenderObject *paintingRoot)  =C> 调paintLayer
4. paintLayer(this, p, damageRect, false, paintRestriction, paintingRoot);    =C> 调 rearrange..., RenderObject::paint
5. void RenderObject::paint(PaintInfo& /*paintInfo*/, int /*tx*/, int /*ty*/) ; // this is virtual function  
WebFrame ===> Frame::paint =...>  RenderLayer::paint ===> RenderLayer::paintLayer ===> RenderObject::paint

posted @ 2009-07-10 16:44 djx_zh 阅读(848) | 评论 (0)编辑 收藏

download the picture

这张图片是用dot生成的,用dot作图非常方便。下面介绍一下这张图的制作过程,
1. 首先分析webkit中各个类的集成关系,这个是用自己写的脚本完成的。下载classAnalyse
    ./classAnalyse dir    
   dir是要分析的文件夹。
2. 把第一步的输出copy到webKit.dot文件里,并按dot的格式重新编辑。下载webKit.dot
3. dot -Tgif webKit.dot -o webKit.gif
完成

posted @ 2009-07-04 12:06 djx_zh 阅读(591) | 评论 (4)编辑 收藏

download part3 /Files/djxzh/stringmatch.part2.rar  /Files/djxzh/stringmatch.part1.rar
代码:
svn checkout http://strstrsse.googlecode.com/svn/trunk/ strstrsse-read-only

目录

       第一章 引言

       第二章 精确串匹配算法

              引论 精确串匹配算法的分类   

第一节     单模式串匹配算法

第二节     多模式串匹配算法

第三节     小结

       第三章 近似串匹配算法

第一节     引言

第二节     基于动态规划的算法

第三节     基于自动机的算法

第四节     位并行算法

第五节     过滤算法

第六节     小结

       第四章 未来的工作

       参考文献

       附录

                                  APPENDIX A 算法源码

                     APPENDIX B suffix tree

                     APPENDIX C experiment result

posted @ 2009-02-06 17:26 djx_zh 阅读(1098) | 评论 (3)编辑 收藏


1。main(...): 调用CoCreateInstance生成WebView对象gWebView
        HRESULT hr = CoCreateInstance(CLSID_WebView, 0, CLSCTX_ALL, IID_IWebView, (void**)&gWebView);
2。main(...):   调用gWebView::initWithFrame 生成绘图窗口。
      hr = gWebView->initWithFrame(clientRect, 0, 0);
3。WebView对象:包含指向WebFrame 和Page对象的指针。WebView的初始化大部分在initWithFrame函数中,WebView构造函数负责静态成员的构造及少量简单成员变量的初值。
4。WebView::initWithFrame(...):
      4.1 首先生成绘图窗口:
             m_viewWindow = CreateWindowEx(0, kWebViewWindowClassName, 0, WS_CHILD | WS_CLIPCHILDREN,
        frame.left, frame.top, frame.right - frame.left, frame.bottom - frame.top, m_hostWindow, 0, gInstance, 0);
      4.2  生成 WebCore::Page对象
           m_page = new Page(new WebChromeClient(this), new WebContextMenuClient(this), new WebEditorClient(this), new WebDragClient(this), new WebInspectorClient(this));
      4.3 生成WebFrame 对象
           WebFrame* webFrame = WebFrame::createInstance();
      4.4 生成WebFrame::Frame (d->frame)对象
           RefPtr<Frame> coreFrame = webFrame->init(this, m_page, 0);
           同时 WebView的WebFrame指针赋值:  m_mainFrame = webFrame;
     4.5 WebFrame::Frame 对象初始化
           coreFrame->init();
5。(4.2) Page() :
6。(4.3) WebFrame::createInstance() :
7。(4.4) WebFrame::init() :
8。(4.5)Frame::init():


FrameLoader::begin() :create document;

frameLoader::write, Document::write  :  call tokenizer->write(...) 调用tokenizer进行分析

tokenizer::write() : 分析出token后, 调用 n = parser->parseToken(&currToken); 生成node,并插入到以document为根的树中。

posted @ 2008-11-17 22:06 djx_zh 阅读(1633) | 评论 (2)编辑 收藏

     摘要: 基于sse2的strstr函数  阅读全文

posted @ 2008-10-28 21:47 djx_zh 阅读(2849) | 评论 (7)编辑 收藏

         glibc里的strstr函数用的是brute-force(naive)算法,它与其它算法的区别是strstr不对pattern(needle)进行预处理,所以用起来很方便。理论复杂度O (mn), 实际上,平均复杂度为O(n), 大部分情况下高度优化的算法性能要优于基于自动机的匹配算法,关于串匹配算法可参考http://www-igm.univ-mlv.fr/~lecroq/string/。 glibc中使用了(1)Stephen R. van den Berg的实现,在他的基础上,(2)Tor Myklebust http://sources.redhat.com/ml/libc-alpha/2006-07/msg00028.html给出了更复杂的实现,当然也更高效。
       BF有一个重要性质是事先不用知道串的长度,而基于跳跃的算法是需要用字符串长度来判断结束位置的。如何快速的确定字符串结束位置,可参考http://www.cppblog.com/ant/archive/2007/10/12/32886.html,写的很仔细。
      将两种思想结合起来,可以做出更快的strstr(3)。约定(1) 为strstr(Berg); (2) 为strstr(Tor),(3)为lstrstr(mine),(4)为glibc中的strstr,简单测试了一下:
      从长度为2k的文本中查找长度为1、2、9的模式串,结果如下
            1               2              9
(1)0.000006 0.000006 0.000012   
(2)0.000007 0.000004 0.000008
(3)0.000002 0.000002 0.000005
(4)0.000005 0.000005 0.000011

download strstr downlaod

posted @ 2008-10-27 21:42 djx_zh 阅读(3103) | 评论 (0)编辑 收藏

仅列出标题
共3页: 1 2 3