stout代码分析之五:UUID类

  UUID全称通用唯一识别码,被广泛应用于分布式系统中,让所有的元素具有唯一的标识。

  stout中UUID类继承自boost::uuids::uuid。api如下:

  • random, 产生一个UUID对象。
  • fromBytes,从字节数组生成UUID对象
  • fromString, 从字符串生成UUID对象
  • toBytes, 从UUID对象生成字节数组
  • toString, 从UUID对象生成字符

  废话不多说,上示例代码:

#include "stout/uuid.hpp"
#include <iostream>
int main()
{
  UUID a = UUID::random();
  UUID b = UUID::fromBytes(a.toBytes());
  UUID c = UUID::fromString(a.toString());
  std::cout << a.toString()
    << "," << b.toString()
    << "," << c.toString() << std::endl;
  return 0;
}
时间: 2024-10-06 23:30:53

stout代码分析之五:UUID类的相关文章

stout代码分析

最近在使用mesos做高可用设计,在编译的过程中注意到mesos依赖stout,一个仅仅含有头文件的c++基础库.stout代码简洁,设计优雅,值得一读. stout从内容上可细分为以下几块: Primitives: Duration, Error, None, Nothing, Option, Owned, Result, Try, StopWatch,UUID. Collections: cache, hashmap, hashset, multihashmap,对常用数据结构进行了一些封装

stout代码分析之二:None类

stout库中为了避免使用NULL带来的风险,统一用None表示空. None类的实现方式如下: struct None {}; 奇怪的是, Nothing类实现方式与None一模一样..让人怀疑作者是不是写重了. struct Nothing {};

stout代码分析之八:cache类

stout中实现了LRU cache.cache的成员如下: public: typedef std::list<Key> list; typedef std::tr1::unordered_map< Key, std::pair<Value, typename list::iterator> > map; 可以看到map的第二项除了value之外,又有一个指向key的迭代器,这种设计有利于提高cache LRU操作的效率:当查询某个key时,同时获取value和key

stout代码分析之六:Stopwatch

在进行性能测试时,经常需要计算某个函数执行的时长.stout中的Stopwatch类可实现纳秒精度的计时. Stopwatch内部使用timespec记录开始和技术时间.   timeval和timespec稍有不同,有两点: timeval精确到微秒,而timespec精确到纳秒 获取当前时间,timeval对应函数gettimeofday(&tv,NULL), timespec对应函数clock_gettime(CLOCK_REALTIME, &ts); api如下: start, 开

stout代码分析之十:c++11之move和forward

stout中大量使用了c++11的特性,而c++11中move和forward大概是最神奇的特性了. 左值和右值的区别 int a = 0; // a是左值,0是右值 int b = rand(); // b是左值,rand()是右值 直观理解:左值在等号左边,右值在等号右边 深入理解:左值有名称,可根据左值获取其内存地址,而右值没有名称,不能根据右值获取地址. 2. 引用叠加规则 左值引用A&和右值引用A&& 可相互叠加 A& + A& = A& A&am

stout代码分析之九:c++11容器新特性

stout大量使用了c++11的一些新特性,使用这些特性有利于简化我们的代码,增加代码可读性.以下将对一些容器的新特性做一个总结.主要两方面: 容器的初始化,c++11中再也不用手动insert或者push_back来初始化了 容器的遍历,c++11中再也不用使用冗长的迭代器遍历了 让我们一睹为快吧: #include <map> #include <string> #include <iostream> #include <vector> int main

20145234黄斐《网络对抗技术》实验四,恶意代码分析

恶意代码 概述 恶意代码是指故意编制或设置的.对网络或系统会产生威胁或潜在威胁的计算机代码.最常见的恶意代码有计算机病毒(简称病毒).特洛伊木马(简称木马).计算机蠕虫(简称蠕虫).后门.逻辑炸弹等. 特征: 恶意的目的,获取靶机权限.用户隐私等 本身是计算机程序,可以执行,并作用于靶机 通过执行发生作用,一般来说不运行是没问题的 恶意代码分析 在大多数情况下,进行恶意代码分析时,我们将只有恶意代码的可执行文件本身,而这些文件并不是我们人类可读的.为了了解这些文件的意义,你需要使用各种工具和技巧

20145326蔡馨熠《网络对抗》——恶意代码分析

20145326蔡馨熠<网络对抗>--恶意代码分析 1.实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控.. 需要监控什么? 系统中各种程序.文件的行为. 还需要注意是否会出现权限更改的行为. 注册表. 是否有可疑进程. 如果有网络连接的情况,需要注意这个过程中的IP地址与端口. 用什么来监控? 最先想到的肯定是使用wireshark抓包了,再进行进一步分析. Sysinternals

《3D数学基础》实践1 向量类代码分析

理解数学,理解代码! 大家好,我是老G! 今天为大家带来<3D数学基础>系列视频. 主要讲解:游戏开发中用到的3D数学知识,包括:定义,定理,推论. 也包括他们的推导过程,以及应用举例. 本套视频完全免费,欢迎捐助,帮助我完成这套视频 支付宝帐号:[email protected]gmail.com 今天带来的是系列第11讲--实践1 向量类代码分析 本次视频,主要讲解一下如下几个库中的向量类的代码: 1.3D Math Primer for Games and Graphics Develo