RBL开发笔记一
从这个系列开始 陆续记录整个RBL开发的过程 废话不多说 直入主题
10:54:53 2014-08-25
今天开发任务:
RBL.h 的框架搭建出来 包括RBLServer RBLClient 和命令窗口
网络层: 因为我开发的目的就是linux 所有非linux系统的api 我都不会考虑。 在IO复用中我就选择了EPOLL模型 其他的实现 包括freeBSD等 主要原因是我没有精力去写
命令窗口:
struct RBLCommand
{
RBLCommand(const std::string& name_,RBLCommandProc *proc_,bool Write_):name(name_),proc(proc_),Write(Write_)
{ }
std::string name; //名字
RBLCommandProc *proc; //函数入口指针 用typedef 函数指针语法模式来实现
bool Write; //是否是写命令
};struct RBLCommand
{
RBLCommand(const std::string& name_,RBLCommandProc *proc_,bool Write_):name(name_),proc(proc_),Write(Write_)
{ }
std::string name; //名字
RBLCommandProc *proc; //函数入口指针 用typedef 函数指针语法模式来实现
bool Write; //是否是写命令
};
我要用这种模式来写的话 对RBL内核部分来讲 所有的查询都是调用这里面的操作符号,我用的语言采用C++ 也没有必要自己建造一个hash表造一个重复的车轮子:
写成上述的数据结构是出于这几点考虑的:
1) 编程复杂
2)这个命令表比较小,调用std::map 来做查找和gun_cxx::hash_map其实速度机会一样 而且这个命令表结构启动之后是不会扩大的 所以我就暂时就利用std::map来存储。
RBL开发笔记一的更多相关文章
- RBL开发笔记三
2014-08-26 20:06:24 今天就是在开发这个EPOLL来处理网络事件 封装较为健壮的EPOLL模型来处理基本的网络IO 1) 超时这个主题先没有弄 在开发EPOLL包括select/po ...
- RBL开发笔记二
17:13:55 2014-08-25 有以下几个点: 第一 :怎么在预处理阶段能够做到识别某个宏是否给定义了 这里就定义了一个SystemConfig.h 专门做这个事情 当然是需要make ...
- [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】
原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...
- EasyUI 开发笔记(二)
接上篇 :EasyUI 开发笔记(一) (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...
- EasyUI 开发笔记(一)
由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新
今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...
随机推荐
- [问题2014A13] 复旦高等代数 I(14级)每周一题(第十五教学周)
[问题2014A13] 设 \(V\) 是数域 \(K\) 上的 \(n\) 维线性空间, \(\varphi\) 是 \(V\) 上的幂零线性变换且满足 \(\mathrm{r}(\varphi) ...
- C#MVC使用二进制流显示图片
关于显示图片的最好方法当然是img 的src直接指向地址,简单实用.但是有时候也会使用到使用图片流显示图片的方法.实现也比较简单(在C# mvc中,java的不了解).具体如下: 1.前台cshtml ...
- 程序设计入门——C语言 第4周编程练习 2 念整数(5分)
题目内容: 你的程序要读入一个整数,范围是[-100000,100000].然后,用汉语拼音将这个整数的每一位输出出来. 如输入1234,则输出: yi er san si 注意,每个字的拼音之间有一 ...
- Windows 数据类型
类型 定义 描述 ATOM typedef WORD ATOM; 原子(原子表中的一个字符串的参考) BOOL typedef int BOOL; 布尔变量 BOOLEAN typedef BYTE ...
- PHP 小方法之 过滤参数
if (! function_exists ( 'parameter_filter' )) { function parameter_filter($str, $type = 'string', $f ...
- zabbix3.0.4 部署之五 (LNMP > nginx1.9.9)
1 wget http://nginx.org/download/nginx-1.9.9.tar.gz cd /opt/pcre-8.35 autoreconf -ivf Installing sha ...
- javascript中对象的深度克隆
记录一个常见的面试题,javascript中对象的深度克隆,转载自:http://www.2cto.com/kf/201409/332955.html 今天就聊一下一个常见的笔试.面试题,js中对象的 ...
- 编译osg的一个错误
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets! 提示找不到CMAKELIST.T ...
- IIs配置文件存放路径
IIS 5 中,IIS的配置文件在: C:\WINNT\system32\inetsrv\MetaBase.bin IIS 6 中,IIS 的配置文件在: C:\WINDOWS\system32\in ...
- .htaccess根据IP地址限制访问
屏蔽IP地址 屏蔽IP地址有时是非常必要的,比如对于一个外贸公司网站,来自国内的访问是不会带来任何经济效益的,而且还占用服务器资源,造成访问延迟等问题. 如果要屏蔽某一特定IP可以使用: order ...