当前位置: 首页 > news >正文

没钱可以开网店吗福州短视频seo公司

没钱可以开网店吗,福州短视频seo公司,wordpress国外主题推荐,企业先做网站还是先做淘宝文章目录 2 类图设计3 时序图数据输入处理:输出数据处理总流程 4 主要实现的功能4.1 kernel类:基于epoll调度所有通道4.2 通道抽象类:4.3 标准输入通道子类4.4 标准输出通道子类4.5 kernel和通道类的调用 5 代码设计5.1 框架头文件5.2 框架实…

文章目录

    • 2 类图设计
    • 3 时序图
      • 数据输入处理:
      • 输出数据处理
      • 总流程
    • 4 主要实现的功能
      • 4.1 kernel类:基于epoll调度所有通道
      • 4.2 通道抽象类:
      • 4.3 标准输入通道子类
      • 4.4 标准输出通道子类
      • 4.5 kernel和通道类的调用
    • 5 代码设计
      • 5.1 框架头文件
      • 5.2 框架实现

遇到的问题:
输入通道类stdin和输出通道类stdout与很多相同点,无需写重复代码

抽象:
定义通道抽象类,把输入和输出的不同通过虚函数扩展

通道抽象类设计

  • 提供虚函数用于泛化读写
  • 提供虚函数用于返回对应的文件描述符
  • epoll处理输出,所以需要输出缓冲区
  • 对外:提供输出数据调用(将数据放到输出缓冲区,等待epoll调用)
  • 对外:提供泛化扩展,用于处理输入的数据

kernel类适配修改

  • 用抽象类指针list存储当前需要侦听的channel
  • 根据需求动态地调整epoll事件的监听种类

stdin类重构,stdout类创建:

  • 继承抽象通道类,实现纯虚函数

2 类图设计

  • 一个kernel存放所有的标准通道父类指针。
  • 数据处理放在标准通道中。
    在这里插入图片描述

3 时序图

数据输入处理:

在这里插入图片描述

输出数据处理

在这里插入图片描述

总流程

在这里插入图片描述

4 主要实现的功能

4.1 kernel类:基于epoll调度所有通道

4.2 通道抽象类:

写出缓冲区函数
将数据追加到缓冲区的函数
虚函数:读,写,获取fd,数据处理

4.3 标准输入通道子类

重写读和处理的函数
处理数据的函数:将数据交给输出通道

4.4 标准输出通道子类

重写写数据的函数

4.5 kernel和通道类的调用

创建通道对象(成员赋值)
添加通道到kernel
run

5 代码设计

5.1 框架头文件

/*框架头文件*/
class Ichannel {
public:virtual bool ReadFd(std::string &_input) = 0;virtual bool WriteFd(std::string &_output) = 0;virtual int GetFd() = 0;virtual bool DataProcess(std::string &_data) = 0;void DataSendOut();void DataPush(std::string &_data);std::list<std::string> m_write_buffer;
};class ZinxKernel {
private:ZinxKernel();~ZinxKernel();int iEpollFd = -1;static ZinxKernel *poZinxKernel;std::list<Ichannel*> m_channel_list;
public:static bool ZinxKernelInit();static void ZinxKernelFini();static void Zinx_Run();static bool Zinx_Add_Channel(Ichannel &_oChannel);static void Zinx_Del_Channel(Ichannel &_oChannel);static void Zinx_SetChannelOut(Ichannel &_oChannel);static void Zinx_ClearChannelOut(Ichannel &_oChannel);static ZinxKernel *GetInstance() {if (NULL == poZinxKernel){poZinxKernel = new ZinxKernel();}return poZinxKernel;}
};

5.2 框架实现

/*业务编写,读用户输入,向终端输出*/
#include "Zinx.h"using namespace std;class stdout_channel :public Ichannel {
public:// 通过 Ichannel 继承virtual bool ReadFd(std::string & _input) override{return false;}virtual bool WriteFd(std::string & _output) override{cout << _output << endl;return true;}virtual int GetFd() override{return 1;}virtual bool DataProcess(std::string & _data) override{return false;}} *poOut = new stdout_channel();class stdin_channel :public Ichannel {
public:// 通过 Ichannel 继承virtual bool ReadFd(std::string & _input) override{cin >> _input;return true;}virtual bool WriteFd(std::string & _output) override{return false;}virtual int GetFd() override{return 0;}virtual bool DataProcess(std::string & _data) override{poOut->DataPush(_data);return true;}};int main()
{ZinxKernel::ZinxKernelInit();ZinxKernel::Zinx_Add_Channel(*(new stdin_channel()));ZinxKernel::Zinx_Add_Channel(*poOut);ZinxKernel::Zinx_Run();ZinxKernel::ZinxKernelFini();
}

在这里插入图片描述

http://www.ds6.com.cn/news/7198.html

相关文章:

  • 家庭装修效果图大全上海城市分站seo
  • 常德网站建设开发公司营销咨询公司排名
  • 网站地址查询网深圳搜索排名优化
  • wordpress鼠标点击文字手机端什么是seo关键词
  • 北京比较好的网站建设公司成都百度搜索排名优化
  • 嘉兴网站建设的前景产品互联网营销推广
  • web网站开发证书广州网站建设方案优化
  • 网站正在建设中页面电商网站上信息资源的特点包括
  • 江苏建设行政主管部门网站淘宝搜索词排名查询
  • 自学建网站做网站优化官网seo哪家公司好
  • 上海找做网站公司哪家好seo大牛
  • 铁道部建设管理司网站企业营销型网站建设
  • 富锦网站长沙seo公司
  • wordpress网站建设教程视频图片外链
  • 保定市网站建设公司中国万网官网
  • 石家庄自助建站软件sem是什么意思职业
  • 如何建立单位微信公众号seo免费培训教程
  • 三大oa办公软件独立站优化
  • 大名做网站搜索引擎优化方式
  • 海南网站建设推广公司哪家好上海seo怎么优化
  • 做网站上的在线支付怎么做百家号优化
  • 怎么做直播网站超管专门做推广的公司
  • 深圳网页制作页面排版seo 推广
  • 西安网站建设求职简历头条今日头条
  • 国外有哪些网站可以做电商aso优化服务
  • wordpress自定义末班搜索引擎优化分析
  • 石家庄做网站公司的电话产品推广渠道
  • wordpress页面添加标签seo关键词优化
  • 医疗网站备案要怎么做 需要准备什么材料seo网站优化方案
  • 网站建设视频百度网盘下载网站排名优化课程