当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪XML FREESWITCH APPLICATION 实现       XML XML在FS(FreeSwitch)中进行了大量的使用,其中dialplan就是其中非常主要的一快内容。通过下面的描述,我们可以知道在执行XML中的语句: <action application="set" data="$1".........
    ▪Drupal 实战      《Drupal 实战》 基本信息 作者: 葛红儒    丛书名: 实战系列 出版社:机械工业出版社 ISBN:9787111429999 上架时间:2013-6-28 出版日期:2013 年7月 开本:16开 页码:1 版次:1-1 所属分类.........
    ▪Blink: Chromium的新渲染引擎      编自http://www.chromium.org/blink 关于blink  Google Chrome/Chromium 从创始至今一直使用 WebKit(WebCore) 作为 HTML/CSS 渲染引擎。WebKit 早先由 Apple 由 KHTML 项目 fork 出来,用于 Safari 浏览器的 Web 引擎。由.........

[1]XML FREESWITCH APPLICATION 实现
    来源: 互联网  发布时间: 2013-11-19
XML

XML在FS(FreeSwitch)中进行了大量的使用,其中dialplan就是其中非常主要的一快内容。通过下面的描述,我们可以知道在执行XML中的语句:

<action application="set" data="$1" />

如何关联到其实现?可以在哪里看到其实现?其具体实现是什么?

下面让我们来看看FS是如何做的!以上面的XML语句为例子。

1、如何关联到其实现

FS的channel处于EXCUTE状态时:根据在XML上读取的application和data并调用回调函数进行执行。以上面例子为例:application为set,data为$1(1234,这里传入的解析后的结果)

调用过程为:

switch_core_standard_on_execute ->

switch_core_session_execute_application->

switch_core_session_execute_application_get_flags->

switch_core_session_exec  此函数里面执行: application_interface->application_function(session, expanded);

Application_function为回调函数。

具体的执行函数为在系统初始化加载各个模块时,会加载的各个application,并赋值给函数指针。所以当执行上面的蓝色标记的回调函数时,在FS的各个module上对应的application就会被执行。

2、具体实现

也以上述的例子为例,set是在mod_dptool上注册的。(我们如何知道在哪里注册?当启动FS的时候,在窗口打印的信息里面就有application的注册信息,就可以知道在那个模块实现。)

Set的实现为:

SWITCH_STANDARD_APP(set_function) //这个为宏定义

{

base_set(session, data, SWITCH_STACK_BOTTOM);

}

打开DEBUG日志就可以看到以下日志信息:

2013-07-03 01:29:55.013184 [DEBUG] mod_dptools.c:1373  sofia/internal/1001@192.168.152.129 SET [1234]=[UNDEF]

3、实现功能

根据上面的分析就可以得出每个application的实现都是不一样的。所以具体实现请查看具体的代码。这里不再分析。

注:xml里面的application名字和函数名字的换算关系为:application_function,具体的调用情况不再进行讲述。

作者:zp752963831 发表于2013-7-5 14:59:07 原文链接
阅读:23 评论:0 查看评论

    
[2]Drupal 实战
    来源: 互联网  发布时间: 2013-11-19
《Drupal 实战》
基本信息
作者: 葛红儒   
丛书名: 实战系列
出版社:机械工业出版社
ISBN:9787111429999
上架时间:2013-6-28
出版日期:2013 年7月
开本:16开
页码:1
版次:1-1
所属分类:计算机 > 数码/设计 > 网页设计综合

更多关于 》》》《Drupal 实战》
内容简介
    计算机书籍
  《drupal 实战》是中文drupal社区极力推荐的实力之作,由国内顶尖drupal技术专家(在全球drupal社区有一定影响力)老葛撰写。以实战为导向,用一个商业性的综合案例贯穿全书,通过重现整个案例的开发过程,不仅循序渐进地讲解了drupal的各项功能和技术,而且系统地讲解了drupal应用的开发方法和步骤,能让读者迅速具备实战能力。
   全书一共13章:第1章全面介绍了drupal的安装和配置,为后面各章的学习做了准备;第2~5章分别讲解了如何为图书添加各种字段,如何设置路径别名、图片样式和列表,如何制作主题和首页;第6~10章分别讲解了ubercart的详细配置,如何实现站内搜索,如何添加社区互动功能,如何做panels控件和定制个人主页;第11~13章探讨了drupal的seo和性能优化,以及商品数据的导入与导出。 
目录
《drupal 实战》 
前言 
第1章 初识drupal /1 
1.1 安装drupal /2 
1.1.1 安装xampp /2 
1.1.2 下载drupal /2 
1.1.3 创建数据库 /3 
1.1.4 安装drupal /4 
1.2 访问drupal后台 /6 
1.3 让drupal支持中文 /7 
1.3.1 把中文设为默认语言 /7 
1.3.2 安装中文语言包 /8 
1.4 常见配置 /10 
1.4.1 设置默认时区 /10 
1.4.2 设置默认的日期格式 /11 
1.4.3 设置文件系统 /12 
1.5 添加内容 /13 
1.5.1 覆盖层 /13 
1.5.2 article和basic page /14 
1.5.3 添加一篇basic page /14 
.1.5.4 添加一篇article /17 
1.5.5 为article添加评论 /18 
1.6 实现页脚区域 /19 
1.6.1 添加“版权信息”区块 /20 
1.6.2 创建菜单并添加菜单链接 /23 
1.7 添加一个用户角色“编辑” /32 
1.8 安装所见即所得编辑器 /34 
1.8.1 ckeditor模块 /35 
1.8.2 安装模块 /35 
1.8.3 设置ckeditor /38 
1.8.4 设置文件上传 /40 
1.9 小结 /42 
第2章 为图书添加各种字段 /43 
2.1 下载并安装常用模块 /44 
2.1.1 模块之间的依赖关系 /44 
2.1.2 启用相关模块 /45 
2.2 添加图书内容类型 /45 
2.3 为图书添加对应的字段 /46 
2.3.1 把“标题”重命名为“书名” /47 
2.3.2 把正文标签改为“内容简介” /48 
2.3.3 设置图书封面字段 /48 
2.3.4 添加作者字段 /48 
2.3.5 添加isbn、包装、纸张、开本等字段 /53 
2.3.6 添加版次、印次、页数、字数等字段 /54 
2.3.7 添加出版时间、印刷时间字段 /55 
2.3.8 添加作者简介、编辑推荐、目录、书摘等字段 /57 
2.3.9 添加出版社字段 /57 
2.3.10 添加中图法分类字段 /60 
2.3.11 添加图书分类字段 /63 
2.3.12 使用field group将字段归类 /66 
2.3.13 用field collection处理作者字段 /68 
2.4 管理作者字段的显示 /70 
2.5 使用node clone快速添加测试数据 /73 
2.6 小结 /74 
第3章 设置路径别名、图片样式、列表 /75 
3.1 使用pathauto模块设置路径别名 /76 
3.1.1 pathauto的管理界面 /76 
3.1.2 手动添加路径别名 /77 
3.1.3 别名模式 /78 
3.1.4 配置 /81 
3.1.5 批量更新路径别名 /82 
3.2 设置图片样式 /83 
3.2.1 添加样式50_50 /84 
3.2.2 图片效果 /84 
3.2.3 图片样式的用途 /86 
3.2.4 imagecache actions模块 /87 
3.3 使用views创建列表 /89 
3.3.1 添加内容类型“站内公告” /89 
3.3.2 views的管理界面 /89 
3.3.3 创建视图“站内公告” /90 
3.3.4 views的全局配置 /101 
3.3.5 views全局高级配置 /102 
3.3.6 使用views创建图书列表 /103 
3.4 小结 /109 
第4章 制作主题 /110 
4.1 主题系统的管理界面 /111 
4.1.1 主题设置 /112 
4.1.2 bartik主题的设置 /113 
4.2 主题zen /114 
4.2.1 zen的目录结构 /115 
4.2.2 基于zen制作子主题 /116 
4.2.3 调整页脚的css /117 
4.3 定制图书节点模板 /121 
4.3.1 确定大致的目标输出 /121 
4.3.2 创建node--book.tpl.php模板文件 /123 
4.3.3 预处理函数 /124 
4.3.4 把静态html放到node--book.tpl.php中 /125 
4.3.5 嵌入动态的php变量 /126 
4.3.6 最终的模板文件 /127 
4.3.7 字段的其他输出方式 /130 
4.3.8 定制图书字段模板 /130 
4.3.9 设置人民币符号 /131 
4.3.10 为日期字段选择输出格式 /132 
4.3.11 调整css /133 
4.4 views覆写实例一 /136 
4.4.1 field collection views的模板覆写 /136 
4.4.2 主题信息对话框 /137 
4.4.3 定制views模板 /138 
4.4.4 views-view.tpl.php覆写 /139 
4.4.5 通过配置去除html /140 
4.4.6 views-view-unformatted.tpl.php覆写 /141 
4.5 views覆写实例二 /142 
4.5.1 创建views-view--books.tpl.php文件 /143 
4.5.2 创建views-view-unformatted--books.tpl.php文件 /144 
4.5.3 创建views-view-fields--books.tpl.php文件 /144 
4.5.4 去除字段的默认wrapper输出 /146 
4.5.5 views中作者字段的设置 /146 
4.5.6 调整css /146 
4.6 小结 /149 
第5章 制作首页 /150 
5.1 待做的任务 /151 
5.2 首页幻灯 /152 
5.2.1 添加首页幻灯内容类型 /152 
5.2.2 使用field validation验证url的有效性 /152 
5.2.3 添加测试内容 /154 
5.2.4 创建视图frontbanner /154 
5.2.5 设置views slideshow /155 
5.2.6 为首页幻灯内容类型添加分页字段 /158 
5.2.7 使用views自带的计数器 /159 
5.3 使用flag实现推荐、收藏功能 /159 
5.3.1 flag的创建表单 /159 
5.3.2 flag的具体设置 /160 
5.3.3 添加“推荐”功能 /161 
5.3.4 导出flag /162 
5.3.5 在模板里面输出flag链接 /163 
5.4 首页图书区块视图 /163 
5.4.1 创建视图front books /163 
5.4.2 设置“热门图书” /165 
5.4.3 设置“编辑推荐” /166 

    
[3]Blink: Chromium的新渲染引擎
    来源: 互联网  发布时间: 2013-11-19

编自http://www.chromium.org/blink


关于blink

 Google Chrome/Chromium 从创始至今一直使用 WebKit(WebCore) 作为 HTML/CSS 渲染引擎。WebKit 早先由 Apple 由 KHTML 项目 fork 出来,用于 Safari 浏览器的 Web 引擎。由于宽松的协议、轻量级的设计和便捷的应用程序内嵌 API,WebKit 逐渐变得流行起来,除了 Google Chrome/Chromium 和 Safari,它在移动终端( Symbian S60,Android,iOS)到 Toolkit 集成(GTK+, Qt4) 都有不错的收获。
  尽管上面一众经常被统称为 WebKit,实际上各自都使用了自己的 WebKit 分支或者编译时选项,使得最终的渲染结果也是存在一定的差异的。不过大体上 WebKit 社区内部还是比较和谐的,各个成员之间也为维持兼容性作出了努力,直到 2010 年随着 OS X Lion 一起面世的 WebKit2。由于 WebKit2 在 WebCore 层面上实现的进程隔离在一定程度上与 Google Chrome/Chromium 自己的沙箱设计存在冲突,故 Google Chrome/Chromium 一直停留在 WebKit,使用 Backport 的方式实现和主线 WebKit2 的兼容。显而易见这增加了 WebKit 和 Chromium 的复杂性,且在一定程度上影响了 Chromium 的架构移植工作。
  基于以上原因,Google 决定从 WebKit fork 出自己的 Blink Web 引擎:
  现阶段以精简内部结构为主,将删除大约 7000 个文件和 450 万行 WebKit2 兼容代码。
  未来将着重改善 DOM 架构,将使用 JavaScript 实现 DOM。
  提升安全性,实现进程外 iframes 。
  对于今年初宣布放弃自有渲染引擎跟随 Chromium 的 Opera 来说,其开发者也立刻发布博客公告 Opera 亦将切换至 Blink 引擎。[1]
谷歌Blink的横空出世将使它和其他的WebKit浏览器开发商包括——苹果、诺基亚和黑莓——更彻底地分道扬镳。
这一举措意味着,现在有四大渲染引擎在线:WebKit、Blink、Trident 和Gecko。对于用户来说,渲染引擎的差异化意味着他们在使用不同浏览器打开同一网页时将得到不同的结果——在移动设备上尤其如此。
谷歌并在一篇博客文章里写道:“我们知道,新的渲染引擎的出现将对网页浏览产生重大影响。”但谷歌补充说,它认为多个渲染引擎 “能够推动创新,并增进整个网络生态系统的健康。”
谷歌此举有很大风险。根据NetMarketShare的数据,Chrome 浏览器目前是台式机最常用的浏览器之一。而根据Statcounter的统计,Chrome 浏览器目前是台式机最常用的浏览器。NetMarketShare统计的是访客数量,而Statcounter只统计点击量。如果谷歌的新战略不成功,Chrome 浏览器的统治地位或将不保。
Chrome 28开发版本的版本说明中还在使用WebKit,而最新的Chrome 28.0.1469.0中已经替换为Blink。
Blink 的架构变化

当chrome项目开始时,我们的目标是尽可能少的改动Webkit,易于同webkit的代码合并。

对于blink我们兴奋于创建一个更大的架构灵活性的代码,而无需担心其他webkit的用户。


我们计划增加一个 “out-of-process iframes”, 这将使chromium能够分离页面中一个独立的部分到一个分离的沙箱进程。

实现这一点需要大量改动webkit关于iframe的处理。

另外一个例子,我们将修复网络代码,让它更小更快。目前webkit中的网络代码受限于老的mac webkit API,而且不能改变。

chromium已经在其周边工作了很多年,但是这些周边的工作易碎而且bug很多。

在Blink中,我们将使用新的网络代码,而无需强制和其他webkit用户统一。


最后,我们甚至希望将整个DOM树用javascipt来实现。这将使javascript访问更加迅速。但是这需要大量重写Webkit DOM部分的实现。这也是Webkit同时支持两个javascript引擎更近困难。


我们考虑的其他的一些改变

  • 让WebCore支持多进程历史(当前,它假定同一个进程同步历史)
  • 删除Widget 树(Mac Webkit1的一个约束)
  • 分离WebCore到不同模块
  • 将直接使用沙箱平台的API,替代目前WebCore/Platform
  • Establish a simpler, stricter tree-gardening system that does not require 2 full time engineers per day (这句看不懂,谁能帮我翻译下?谢谢了)
  • 尝试将DOM 移动到JS的堆上
  • 增加多核复用(如 html 解析,style 引擎和javascript解析)
  • 移除DOM中模糊不清的部分和因为向后兼容而引起的模糊不清部分,或者移除不必要的兼容性
  • 使用现代的、更快的tcmalloc(google编写的多线程内存分配软件,替代malloc)来贯穿 Mac chrome
  • 尝试并行布局
  • 通过移除ScriptValue/ScriptState抽象来避免内存泄漏
  • 使用WebIDL来替代WebKitIDL,并移除Javascript绑定代码
  • 通过DOM3 Events/[DOM]UI Events提上WebCore速度

作者:doon 发表于2013-7-5 16:59:43 原文链接
阅读:17 评论:0 查看评论

    
最新技术文章:
▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate iis7站长之家
▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3