工具类库
文章平均质量分 91
zilaishuichina
打工的
展开
-
工具类库系列(三)-IniReader
第三个工具类:IniReader就是读ini配置文件的一个工具类,很简单,就是封装了一下boost库的ptreeIniReader.h#ifndef __IniReader_h__#define __IniReader_h__#include #include namespace common{ namespace tool{ class Ini原创 2017-01-04 11:45:41 · 2766 阅读 · 0 评论 -
工具类库系列(十六)-rangmap
rangmap是一个对map的简单封装,用于实现对若干个互不重叠的闭区间的 增删改查我们通常会有这样的需求,比如:若干个IP地址的闭区间:127.0.0.50 -127.0.0.100,127.0.0.101-127.0.0.149,127.0.0.200-127.0.0.249,这个不同的ip区间可能是对应了3个不同的房间中的机器,每个区间对应一个房间现在需要搜索 某一个具体原创 2018-01-15 15:07:07 · 641 阅读 · 0 评论 -
工具类库系列(一)-StringTool
好久没写了,最近闲了下来,把这段时间的代码整理整理,将常用的代码按功能整理成一些静态库,便于以后复用今天是第一个库:libtool,其实就是一些工具类的集合第一个工具类:StringToolstd::string已经很强大了,但是在实际项目中,还是会遇到一些需求,需要用string提供的接口组装一些字符串相关的功能,整理如下1:将一个字符串的首字母大原创 2017-01-03 20:09:43 · 3270 阅读 · 0 评论 -
工具类库系列(十四)-FileData
第十四个工具类:FileData用于文本文件读取/保存,以及在内存中修改文本文件内容。读取:ifstream保存:ofstream修改内容:以string类型,获取/设置,文本文件内容最大支持文件大小1M上代码:FileData.h#ifndef __FileData_h__#define __FileData_h__原创 2017-03-09 13:35:40 · 1500 阅读 · 0 评论 -
工具类库系列(六)-TimeTool
第六个工具类,TimeTool用于秒精度的时间获取:距离一个参考时间所经历的秒数,用于时间戳以及计算两个时间戳,按照特定时间分割点分割后的差值比如:一般游戏项目中通常都会有这样的需求:某个任务,1周之内只能接取5次,周6早上6点算下一周开始,次数清零,某个活动,每月5号开启下一轮等等所以通常就会存在需要计算玩家的本次操作(比如申请接任务),距离原创 2017-01-06 19:34:49 · 1678 阅读 · 0 评论 -
工具类库系列(八)-WinService
第八个工具类:WinService这是一个windows下用的工具类,用于将exe(通常是服务程序)注册成windows系统服务windows环境下运行的服务端程序,一般就会以系统服务的形式运行1、在无人值守的情况下,可以设置,出错后自动重启2、注销当前用户,进程不会被关闭,因为系统服务是运行在SYSTEM用户下的3、可以设置开机自动启动,维护方便,不用开机之后原创 2017-01-10 17:23:56 · 559 阅读 · 0 评论 -
工具类库系列(十三)-ObjectSharedPtrMap2
第十三个工具类:ObjectSharedPtrMap2这是继ObjectMap之后,第三个Object对象管理类,管理的是对象的智能指针对象功能与上一个ObjectSharedPtrMap类似1、线程安全。2、多线程环境下:有多个线程在迭代,其他线程在删除时,迭代不失效3、多线程环境下:有多个线程在迭代,多个迭代互不干扰上代码:ObjectSha原创 2017-02-21 10:23:12 · 352 阅读 · 0 评论 -
工具类库系列(十二)-ObjectSharedPtrMap
第十二个工具类:ObjectSharedPtrMap这是继ObjectMap之后,第二个Object对象管理类,管理的是对象的智能指针对象并且同样确保:1、线程安全。2、多线程环境下:有一个线程在迭代,其他线程在删除时,迭代不失效上代码:ObjectSharedPtrMap.h#ifndef __ObjectSharedPtrMap_h__#def原创 2017-02-20 10:30:58 · 392 阅读 · 0 评论 -
工具类库系列(十一)-ObjectMap
第十一个工具类:ObjectMapObjectMap 是一个上篇提到的 objectid64 的一个idid映射关系表,由map实现该类用于需求中时常会出现的 1对1 或者 1对多 映射关系,比如:1对1:一个网络链接对象 对应 一个玩家对象, 一个玩家对象 也对应一个 网络链接对象1对多:一个玩家对象 对应 一个游戏公会对象同时实现了:1原创 2017-02-17 14:25:48 · 3255 阅读 · 0 评论 -
工具类库系列(十)-Object
第十个工具类:ObjectObject是作为很多类的基类来使用的用来实现提供给的每个类对象一个唯一的内存guid的功能,方便做mapObject封装一个无符号长整型的m_id,定义一个全局的object_guid,从1开始自增,在Object的构造函数中自增,保留0用来表示对象不存在在多线程环境下,为了保证object_guid自增的线程安全,用原创 2017-02-17 13:53:59 · 714 阅读 · 0 评论 -
工具类库系列(七)-Logger
第七个工具类:Logger就是用于输出日志的一个工具类,很简单,就是封装了一下boost库的log不熟悉boost的log库的同学,可能就需要提前熟悉一下本工具类,就是默认用exe的文件名比如“Test.exe”加上“_log”,组成一个文件夹名称“Test.exe_log”,在Test.exe的同级目录下,创建这个文件夹“Test.exe_log”,所有的原创 2017-01-09 16:46:49 · 1749 阅读 · 0 评论 -
工具类库系列(五)-Timer
第五个工具类,Timer用于毫秒精度的计时本来想直接用的是boost的timer但是boost的timer调用的其实就是clock()而clock在多核多线程的环境下,如果需要计时的代码段是多线程并发执行的话,计算出来的时间是有很大偏差的所以就只能自己实现一个windows下本身也有QueryPerformanceFrequency跟Quer原创 2017-01-05 15:28:11 · 379 阅读 · 0 评论 -
工具类库系列(九)-ReflectEnum
第九个工具类:ReflectEnum用于枚举的反射,需要boost库spirit的支持C++是不支持的反射的,在一些日志输出的时候,输出一个枚举变量,只能输出这个变量当前的值,而这个值对应的那个枚举字符串是什么,就不好输出了,或者人肉反射,一长串的switch...case这个工具类,就是为了解决这个问题,可以根据枚举变量的值,输出对应的枚举字符串,增加输出内容原创 2017-01-13 11:36:33 · 485 阅读 · 1 评论 -
工具类库系列(二)-ExePath
第二个工具类:ExePath其实不是一个类了,就是一个全局函数,用来获取exe的当前路径项目中很多比如读取config,读取资源,生成log,都需要exe的当前路径作为参考这个功能在windows/linux下有不同的实现方式:windows下面主要使用GetModuleFileNamelinux下面主要使用readlink上代码:ExePath.h原创 2017-01-04 10:48:56 · 1169 阅读 · 0 评论 -
工具类库系列(四)-CsvReader
第四个工具类:CsvReaderCsvReader是用来支持读取Csv表格用的Csv格式其实就是一个有固定格式的txt,一行每一列用英文','隔开游戏项目中,很多游戏静态表。策划提供的是Csv表格,可以用Excel编辑方便。客户端Unity也倾向于读取Csv表格,纯文本,格式简单,读取方便然后为了读取更方便,我们人为规定了Csv前3行的内容有原创 2017-01-04 14:34:35 · 13791 阅读 · 0 评论 -
工具类库系列(十五)-XmlReader
XmlReader是用来支持xml文件读取的一个工具类很简单,也就是封装一下boost的property_treeXmlReader.h#ifndef __XmlReader_h__#define __XmlReader_h__#include #include #include namespace common { namespace tool {原创 2018-01-15 14:18:31 · 1288 阅读 · 0 评论