从这个系列开始  陆续记录整个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开发笔记一的更多相关文章

  1. RBL开发笔记三

    2014-08-26 20:06:24 今天就是在开发这个EPOLL来处理网络事件 封装较为健壮的EPOLL模型来处理基本的网络IO 1) 超时这个主题先没有弄 在开发EPOLL包括select/po ...

  2. RBL开发笔记二

     17:13:55 2014-08-25 有以下几个点:  第一 :怎么在预处理阶段能够做到识别某个宏是否给定义了  这里就定义了一个SystemConfig.h 专门做这个事情  当然是需要make ...

  3. [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】

    原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...

  4. EasyUI 开发笔记(二)

    接上篇 :EasyUI 开发笔记(一)  (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...

  5. EasyUI 开发笔记(一)

    由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...

  6. [Openwrt 项目开发笔记]:Openwrt平台搭建(一)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...

  7. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例

    引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...

  8. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  9. 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新

    今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...

随机推荐

  1. Winform 菜单和工具栏控件

    MenuStrip--菜单工具 一定会出现在窗体最上面 设置热键:在编辑的时候输入(&F)       设置快捷键:选中菜单项--右键属性--ShortCutKeys--设置快捷键       ...

  2. Ubuntu 16.04 + Caffe

    主要参考: https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide http://caffe.berke ...

  3. 《BI那点儿事》运用标准计分和离差——分析三国超一流统帅综合实力排名 绝对客观,数据说话

    数据分析基础概念:标准计分: 1.无论作为变量的满分为几分,其标准计分的平均数势必为0,而其标准差势必为1.2.无论作为变量的单位是什么,其标准计分的平均数势必为0,而其标准差势必为1.公式为: 离差 ...

  4. 物联网安全拔“牙”实战——低功耗蓝牙(BLE)初探

    物联网安全拔“牙”实战——低功耗蓝牙(BLE)初探 唐朝实验室 · 2015/10/30 10:22 Author: FengGou 0x00 目录 0x00 目录 0x01 前言 0x02 BLE概 ...

  5. 【转】linux命令详解:md5sum命令

    [转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...

  6. Evolutionary Computing: 3. Genetic Algorithm(2)

    承接上一章,接着写Genetic Algorithm. 本章主要写排列表达(permutation representations) 开始先引一个具体的例子来进行表述 Outline 问题描述 排列表 ...

  7. Canvas与Image互相转换

    转换 Image为 Canvas要把图片转换为Canvas(画板,画布),可以使用canvas元素 context 的drawImage方法: // 把image 转换为 canvas对象 funct ...

  8. ASP.NET MVC电子书下载

    欢迎点击图片下载电子书,进行深入的研究.                (  ,)      

  9. C#泛型-小心使用静态成员变量

    对于泛型类的声明 其中使用类型参数的构造类型,比如List<T>被称为开放构造类型(open constructed type)而不使用类型参数的构造类型,例如List<int> ...

  10. Web移动应用调试工具——Weinre

    如今人们也越来越习惯在手机上浏览网页,而在手机上这些针对桌面浏览器设计的网页经常惨不忍睹.Web应用开发者需要针对手机进行界面的重新设计,但是手机上并没有称心如意的调试工具(如Firebug.web ...