读DataSnap源代码(六)】的更多相关文章

具体分析一下DataSanp App与Rest, WebBroker App的不同,先看TDSHTTPService. *********************************************************************************************** TDSHTTPService = class(TCustomDSHTTPServerTransport) 继承体系: TDSHTTPService -> TCustomDSHTTPServ…
Delphi的DataSnap用了一段时间了,但一直感觉有些地方还不够了解,所以花时间阅读了源代码,特作此烂笔头. Datasnap是在之前的WebBorker基础上搭建的,DataSnap向导自动生成了基础的代码,所以就以基础代码为起点来看看DataSnap的内部机制. 首选创建一个 Stand-alone 的REST App,  向导至少会为我们生成一个Form1和一个WebModule1, FormUnit1单元如下: unit FormUnit1; interface uses Wina…
function TDSHTTPWebDispatcher.DispatchRequest(Sender: TObject; Request: TWebRequest; Response: TWebResponse): Boolean; begin try if Owner is TWebModule then DataSnapWebModule := TWebModule(Owner); try try RequiresServer; TDSHTTPServerWebBroker(Self.F…
继续篇中的 function TCustomWebDispatcher.DispatchAction(Request: TWebRequest; Response: TWebResponse): Boolean; var I: Integer; Action, Default: TWebActionItem; Dispatch: IWebDispatch; begin FRequest := Request; FResponse := Response; I := ; Default := ni…
function TWebRequestHandler.HandleRequest(Request: TWebRequest; Response: TWebResponse): Boolean; var I: Integer; LWebModule: TComponent; LWebAppServices: IWebAppServices; LGetWebAppServices: IGetWebAppServices; LComponent: TComponent; begin Result :…
program Project1; {$APPTYPE GUI} {$R *.dres} uses Vcl.Forms, Web.WebReq, IdHTTPWebBrokerBridge, FormUnit1 in 'FormUnit1.pas' {Form1}, ServerMethodsUnit1 in 'ServerMethodsUnit1.pas', WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule}; {$R…
读Flask源代码学习Python--config原理 个人学习笔记,水平有限.如果理解错误的地方,请大家指出来,谢谢!第一次写文章,发现好累--!. 起因   莫名其妙在第一份工作中使用了从来没有接触过的Python,从那之后就对Python有了莫名其妙的好感.前段时间用了Flask做了几个不大不小的项目,项目过程中学到不少以前没注意到的知识点.于是就有了这个系列,希望最后能坚持完成. Flask是什么?   根据Flask官网介绍: Flask 是一个用于 Python 的微型网络开发框架.…
session自己定义存储.怎样更好地进行session共享: 读tomcat源代码,org.apache.catalina.session.FileStore可知 一.详见: 方法1 public void save(Session session) try {             ((StandardSession)session).writeObjectData(oos);         } finally {             oos.close();         } 方…
大家是否好奇,在 WPF 里面,对 UIElement 重写 OnRender 方法进行渲染的内容,是如何受到上层容器控件的布局而进行坐标偏移.如有两个放入到 StackPanel 的自定义 UIElement 控件,这两个控件都在 OnRender 方法里面,画出一条从 0 到 100 的线段,此时两个控件画出的直线在窗口里面没有重叠.也就是说在 OnRender 里面绘制的内容将会叠加上元素被布局控件布局的偏移的值 阅读本文,你将了解布局控件是如何影响到里层控件的渲染,以及渲染收集过程中将会…
在 WPF 里面,渲染可以从架构上划分为两层.上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令.上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GFX 层,作用是根据收到的渲染的命令绘制出界面.本文所聊的是渲染上层部分,在 WPF 框架是如何做到界面刷新渲染,包括此调用的顺序以及框架逻辑 阅读本文之前,我期望读者有一定的 WPF 渲染基础,以及了解 WPF 的大架构.本文不会涉及到任何底层渲染相关的知识.阅读本文,你将了解到依赖属性和 WPF…
上半年为了做一个ios的应用,引入了cocoaui库,主要是用来布局ios界面,发现简化了不少代码和工作量.因为在写第一个ios应用的时候,用的代码布局,在适配4s和6的机型时候,几乎被搞死,大量的约束定义充斥在代码中,惨不忍睹. cocoaui的作者是ssdb的作者ideawu,在微博里面比较活跃,有问题at他一般很快就会有回应.ssdb是一个类似于redis的nosql数据库:像这样一个在客户端和服务器领域都有建树的人还是很少的.我等普普通通的程序员,距离这种大神还是有一些距离,不过不能气馁…
加密软件(php_screw) >下载网站:http://sourceforge.net/projects/php-screw/ >描述:php文件通常以文本格式存贮在服务器端, 很容易被别人读到源代码, 为了对 源代码进行保护, 可以采用对源代码进行加密的方式.要实现该功能需要两部分 一是:加密程序,实现对PHP文件的加密 另一个就是:对加密过的PHP文件进行解析, 以得到运行结果. 前者的实现比较简 单, 就是一程序而已. 后者的实现大部分都是通过php module的形式来实现的 >…
读之前的预备工作: 1.基础的js知识,以及html和css知识,和正则表达式知识.可以参考妙味课堂的基础js,html和css大纲. 2.JavaScript核心指南的知识http://www.cnblogs.com/cnwebdeveloper/archive/2012/03/28/2421461.html 3.JavaScript设计模式的知识http://www.oschina.net/translate/learning-javascript-design-patterns?lang=…
Inside Qt 系列 QObject这个 class 是 QT 对象模型的核心,绝大部分的 QT 类都是从这个类继承而来.这个模型的中心特征就是一个叫做信号和槽(signaland slot)的机制来实现对象间的通讯,你可以把一个信号和另一个槽通过 connect(…) 方法连接起来,并可以使用 disconnect(…) 方法来断开这种连接,你还可以通过调用blockSignal(…) 这个方法来临时的阻塞信号,QObject 把它们自己组织在对象树中.当你创建一个 QObject 并使用…
有哪些值得一读的优秀开源 JS 代码 采纳 首先,没有“必须”读的源代码(我发现我特喜欢说首先……),因为读源代码不是做功课,只有用到或是非常好奇才会去读,当成“日常”去做是没有意义的. 当然有些人会说 xxx 是经典,任何人读过都可以收获很多知识和技巧.我不否认那些经典,但是我很怀疑“任何人”的数量到底占“感兴趣”的人多少?我的意思是,兴致勃勃开始读的人绝对很多,但能从里面学到点什么的人就很少了. 不知道别人怎么看待读源码这件事情,我个人读源码的时间并不多,基本上只有三种原因会促使我去读源码:…
node的可读流基于事件 可读流之流动模式,这种流动模式会有一个"开关",每次当"开关"开启的时候,流动模式起作用,如果将这个"开关"设置成暂停的话,那么,这个可读流将不会去读取文件,直到将这个"开关"重新置为流动. 读取文件流程 读取文件内容的流程,主要为: 打开文件,打开文件成功,将触发open事件,如果打开失败,触发error事件和close事件,将文件关闭. 开始读取文件中的内容,监听data事件,数据处于流动状态,可…
概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性. 线程读写锁在多线程服务中有重要的作用.对于读数据比写数据频繁的服务,用读写锁代替互斥锁可以提高效率. 由于APR库是跨平台的,而不同平台上的系统接口有区别,所以在APR库中就有一个适配层目录libs\apr\include\arch\,该目录下有不同系统的头文件定义,包括aix.beos.netware.os2.os390.unix.win32. 在编译源代码文件的过程中,根据当前系统自动选择不同的文件目…
一.功能:1.删除VSS文件(以.vssscc,.scc,.vspscc为后缀的文件)2.去除文件解决方案文件和C#项目文件中的VSS标签3.删除Bin和Obj目录 二.开发工具:vs 2010 三.运行环境:.Net Framework 4 四.可执行程序下载: 源代码 五.源代码下载: 源代码 六.用到技术点:1.后台线程BackgroundWorker2.文件操作和遍历3.用Nlog记录日志…
以容器类为例子,可以观一叶而知秋,看看以前的前辈们是如何处理各种面向对象思想下的继承体系的.读的源代码越多,就越要总结这个继承关系否则读的多也忘得快. 首先摆上一张图片: 看到这张图很多人就慌了,难道这些东西我都要全部学习?其实是也不是,其中的很多东西都很有学习的必要,但是学习的过程绝对不是一行一行背诵,每一个类有哪些方法.而怎么从大体上掌握这个继承体系呢? 以最基本的ArrayList<E>为例子.(JDK 1.8环境下) 从ArrayList<E>开始往上看继承体系: Arra…
有人说 编程是份很无聊的工作 因为整个工作时间面对的都是电脑这种机器 因为眼睛盯着的内容都是索然无味的代码 因为总是会有意想不到的bug让你怀疑自己的智商 而我认为 编程是件及其有意思的事情 可观的收入,说起来或许太俗气,当然不止这个 Unity游戏开发 让我从校园里上个世纪的知识,直接过渡到一年以内的技术 半年的实际开发锻炼的逻辑思维,远远强过大学数学专业学习三年所锻炼的思维 当电脑按照自己写出的代码做出了自己预期的事情,带有控制欲的满足感绝对刺激 然而,最让我追随的 确是编程过程中苦苦思索不…
今天解决了一个bug.看似是UI的bug,最后发现IE的设置问题(严格来说,IE6这么做没有问题,因为HTTP协议的规范如此). 先描述一下问题: 有一个页面管理Job,选中一些Job可以Run,每次只能启动一个.还有另一个页面通过Timer定时发Ajax请求服务端,查询并显示Job的运行状况(进度). 奇怪的问题出现了:  1)在FireFox和IE8运行正常(貌似正常,稍后再解释).其他浏览器未测试.  2)IE6,7及更早版本,Timer无法检测到多于1个的Job运行. 先检查了一遍代码,…
一.leaflet介绍: 1.Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的.开源的 JavaScript 库.它是由 Vladimir Agafonkin 带领一个专业贡献者团队开发,虽然代码仅有 33 KB,但它具有开发人员开发在线地图的大部分功能. 2.Leaflet设计坚持简便.高性能和可用性好的思想,在所有主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5和CSS3的优势,同时也支持旧的浏览器访问.支持插件扩展,有一个友好.易于使用的API文档和一个简单的…
64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新的稳定版是2.6.0)地址  http://mirrors.hust.edu.cn/apache/hadoop/common/stable/hadoop-2.6.0-src.tar.gz b) 下载apache-ant (centos自带的ant版本太低,编译过程中会报错)地址: http://mi…
搭建环境:Centos x 6.5  64bit (后来:我才知道原来官网上发布的就是64位的,不过这个对我来说是个学习过程,对以后进行其他平台编译的时候有帮助!) 1.安装JDK 我这里用的是64位机,要下载对应的64位的JDK,下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260-zhs.html, 选择对应的JDK版本,解压JDK,然后配置环境变量, vi /etc/pr…
 计算机体系结构: 运算器 控制器 存储器,内存,编址 输出设备 输入设备 Linux内核功能: 进程管理内存管理文件系统网络功能硬件驱动安全机制 Linux的基本原则: 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避免捕获用户接口: 4.配置文件保存为纯文本格式: Linux开源许可: GNU: GNU is Not Unix,GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的.它的目标是创建一套完全自由的操作系统…
“PMS-基础权限管理系统”介绍 "PMS-基础权限管理系统"是我一直想做的一个产品,融合多年开发及维护管理系统的经验,参考了很多系统,精心研制而成. 可以做为毕业设计参考,新手学习或基础开发平台,适合大中型系统开发,内置功能强大的数据访问组件,独立的缓存,日志,配置管理及邮件发送等企业开发方案. 2013.07.05 主要使用的技术和工具: MVC3 jquery jquery easyui SQL Server 2005+ 方案架构图 2013.07.10 OA系统项目结构截图及说…
Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的.开源的 JavaScript 库.它是由 Vladimir Agafonkin 带领一个专业贡献者团队开发,虽然代码仅有 33 KB,但它具有开发人员开发在线地图的大部分功能. Leaflet是一个为建设移动设备友好的互动地图,而开发的现代的.开源的 JavaScript 库.它是由 Vladimir Agafonkin 带领一个专业贡献者团队开发,虽然代码仅有 33 KB,但它具有开发人员开发在线地图的大部分功能. Leafl…
深入了解Qt主要内容来源于Inside Qt系列,本文做了部分删改,以便于理解.在此向原作者表示感谢! 在Qt 信号和槽函数这篇文章中已经详细地介绍了信号和槽的使用及注意事项.在这里对其使用方面的知识就不再做介绍,只做一些相应补充. 我们知道信号和槽是用来在对象间通信的一种机制,当一个特定的事件发生时,signal会被emit,slot调用时用来响应响应的signal.signal和slot机制是类型安全的,signal和slot必须互相匹配(实际上一个slot参数可以比对应的signal的参数…
第一章 Thread导论 为何要用Thread ? 非堵塞I/O      I/O多路技术      轮询(polling)      信号 警告(Alarm)和定时器(Timer) 独立的任务(Task) 并行算法 第二章 Thread的创建与管理 一.什么是Thread ?     Thread是所在主机运行的应用程序任务(task). 仅仅有一个线程的样例: public class Factorial { public static void main(String[] args) {…
1. Unix 和 Linux之间有什么关系? Linux可以说是Unix衍生过来的,它借鉴了很多Unix的设计理念,应该说,它们类似于父子关系,Linux又被称为类Unix系统. 2. BSD是什么? 我们通常说的FreeBSD.NetBSD和BSD又有什么关系呢?BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统.FreeBSD.netBSD都是属于BSD的一个分支. 3. Unix许可证禁止在大学使用Unix源码是哪一年,随后就出现…