Apache Arrow源码分析(二)——类型的封装

@原创文章,转载请注明: 转载自 镜中影的技术博客
本文链接地址: Apache Arrow源码分析(二)——类型的封装
URL:http://blog.csdn.net/linkpark1904/article/details/51000719

引言

对于向量容器而言,需要适配底层多种数据类型。C++在语言层面提供了诸如int,double,float,char等基础类型,但是对于程序库而言,需要自己定义多种类型的数据结构,当然是构建在C++语言层面提供的基础数据类型之上,就需要对数据类型进行封装。Arrow项目中亦有涉及对数据类型(DataType)的封装,采用C++11实现,很多新特性值得我们学习和借鉴,这里单独拿出来分析。

DataType类图结构和详细分析

DataType的定义从struct type开始,struct type中包含enum 变量type用来描述arrow支持的逻辑类型,抽象出类DataType来表示类型基类,所有自定义类型都继承自DataType基类。详细类图描述如下:

DataType类图

具体Type类的代码如下所示(Type.h):

struct Type {
  enum type {
    // A degenerate NULL type represented as 0 bytes/bits
    NA = 0,

    // A boolean value represented as 1 bit
    BOOL = 1,

    // Little-endian integer types
    UINT8 = 2,
    INT8 = 3,
    UINT16 = 4,
    INT16 = 5,
    UINT32 = 6,
    INT32 = 7,
    UINT64 = 8,
    INT64 = 9,
    ....
    // Exact timestamp encoded with int64 since UNIX epoch
    // Default unit millisecond
    TIMESTAMP = 17,

    // Timestamp as double seconds since the UNIX epoch
    TIMESTAMP_DOUBLE = 18,

    // Exact time 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值