From 490c62594df735dcda14c23e87e5bc8e0bf5264b Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Tue, 12 Sep 2017 15:49:12 +0900 Subject: [PATCH 1/2] [GLib] Resolve recursive include dependency Before: * arrow-glib/field.h depends on arrow-glib/data-type.h * arrow-glib/data-type.h depends on arrow-glib/field.h After: * arrow-glib/field.h depends on arrow-glib/basic-data-type.h * arrow-glib/basic-data-type.h doesn't depend on arrow-glib/field.h * arrow-glib/composite-data-type.h depends on arrow-glib/basic-data-type.h and arrow-glib/composite-data-type.h --- c_glib/arrow-glib/Makefile.am | 2 + c_glib/arrow-glib/basic-data-type.h | 954 +++++++++++++++++++++ c_glib/arrow-glib/composite-data-type.h | 115 +++ c_glib/arrow-glib/data-type.h | 1030 +---------------------- c_glib/arrow-glib/field.h | 2 +- 5 files changed, 1074 insertions(+), 1029 deletions(-) create mode 100644 c_glib/arrow-glib/basic-data-type.h create mode 100644 c_glib/arrow-glib/composite-data-type.h diff --git a/c_glib/arrow-glib/Makefile.am b/c_glib/arrow-glib/Makefile.am index fafd6d27fa9..71a5bf8273a 100644 --- a/c_glib/arrow-glib/Makefile.am +++ b/c_glib/arrow-glib/Makefile.am @@ -44,9 +44,11 @@ libarrow_glib_la_headers = \ array.h \ array-builder.h \ arrow-glib.h \ + basic-data-type.h \ buffer.h \ chunked-array.h \ column.h \ + composite-data-type.h \ data-type.h \ error.h \ field.h \ diff --git a/c_glib/arrow-glib/basic-data-type.h b/c_glib/arrow-glib/basic-data-type.h new file mode 100644 index 00000000000..d3d52c6120d --- /dev/null +++ b/c_glib/arrow-glib/basic-data-type.h @@ -0,0 +1,954 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include + +G_BEGIN_DECLS + +#define GARROW_TYPE_DATA_TYPE \ + (garrow_data_type_get_type()) +#define GARROW_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_DATA_TYPE, \ + GArrowDataType)) +#define GARROW_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_DATA_TYPE, \ + GArrowDataTypeClass)) +#define GARROW_IS_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_DATA_TYPE)) +#define GARROW_IS_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_DATA_TYPE)) +#define GARROW_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_DATA_TYPE, \ + GArrowDataTypeClass)) + +typedef struct _GArrowDataType GArrowDataType; +typedef struct _GArrowDataTypeClass GArrowDataTypeClass; + +/** + * GArrowDataType: + * + * It wraps `arrow::DataType`. + */ +struct _GArrowDataType +{ + /*< private >*/ + GObject parent_instance; +}; + +struct _GArrowDataTypeClass +{ + GObjectClass parent_class; +}; + +GType garrow_data_type_get_type (void) G_GNUC_CONST; +gboolean garrow_data_type_equal (GArrowDataType *data_type, + GArrowDataType *other_data_type); +gchar *garrow_data_type_to_string (GArrowDataType *data_type); +GArrowType garrow_data_type_get_id (GArrowDataType *data_type); + + +#define GARROW_TYPE_NULL_DATA_TYPE \ + (garrow_null_data_type_get_type()) +#define GARROW_NULL_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_NULL_DATA_TYPE, \ + GArrowNullDataType)) +#define GARROW_NULL_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_NULL_DATA_TYPE, \ + GArrowNullDataTypeClass)) +#define GARROW_IS_NULL_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_NULL_DATA_TYPE)) +#define GARROW_IS_NULL_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_NULL_DATA_TYPE)) +#define GARROW_NULL_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_NULL_DATA_TYPE, \ + GArrowNullDataTypeClass)) + +typedef struct _GArrowNullDataType GArrowNullDataType; +typedef struct _GArrowNullDataTypeClass GArrowNullDataTypeClass; + +/** + * GArrowNullDataType: + * + * It wraps `arrow::NullType`. + */ +struct _GArrowNullDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowNullDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_null_data_type_get_type (void) G_GNUC_CONST; +GArrowNullDataType *garrow_null_data_type_new (void); + + +#define GARROW_TYPE_BOOLEAN_DATA_TYPE \ + (garrow_boolean_data_type_get_type()) +#define GARROW_BOOLEAN_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_BOOLEAN_DATA_TYPE, \ + GArrowBooleanDataType)) +#define GARROW_BOOLEAN_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_BOOLEAN_DATA_TYPE, \ + GArrowBooleanDataTypeClass)) +#define GARROW_IS_BOOLEAN_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_BOOLEAN_DATA_TYPE)) +#define GARROW_IS_BOOLEAN_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_BOOLEAN_DATA_TYPE)) +#define GARROW_BOOLEAN_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_BOOLEAN_DATA_TYPE, \ + GArrowBooleanDataTypeClass)) + +typedef struct _GArrowBooleanDataType GArrowBooleanDataType; +typedef struct _GArrowBooleanDataTypeClass GArrowBooleanDataTypeClass; + +/** + * GArrowBooleanDataType: + * + * It wraps `arrow::BooleanType`. + */ +struct _GArrowBooleanDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowBooleanDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_boolean_data_type_get_type (void) G_GNUC_CONST; +GArrowBooleanDataType *garrow_boolean_data_type_new (void); + + +#define GARROW_TYPE_INT8_DATA_TYPE \ + (garrow_int8_data_type_get_type()) +#define GARROW_INT8_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_INT8_DATA_TYPE, \ + GArrowInt8DataType)) +#define GARROW_INT8_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_INT8_DATA_TYPE, \ + GArrowInt8DataTypeClass)) +#define GARROW_IS_INT8_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_INT8_DATA_TYPE)) +#define GARROW_IS_INT8_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_INT8_DATA_TYPE)) +#define GARROW_INT8_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_INT8_DATA_TYPE, \ + GArrowInt8DataTypeClass)) + +typedef struct _GArrowInt8DataType GArrowInt8DataType; +typedef struct _GArrowInt8DataTypeClass GArrowInt8DataTypeClass; + +/** + * GArrowInt8DataType: + * + * It wraps `arrow::Int8Type`. + */ +struct _GArrowInt8DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowInt8DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_int8_data_type_get_type (void) G_GNUC_CONST; +GArrowInt8DataType *garrow_int8_data_type_new (void); + + +#define GARROW_TYPE_UINT8_DATA_TYPE \ + (garrow_uint8_data_type_get_type()) +#define GARROW_UINT8_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_UINT8_DATA_TYPE, \ + GArrowUInt8DataType)) +#define GARROW_UINT8_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_UINT8_DATA_TYPE, \ + GArrowUInt8DataTypeClass)) +#define GARROW_IS_UINT8_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_UINT8_DATA_TYPE)) +#define GARROW_IS_UINT8_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_UINT8_DATA_TYPE)) +#define GARROW_UINT8_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_UINT8_DATA_TYPE, \ + GArrowUInt8DataTypeClass)) + +typedef struct _GArrowUInt8DataType GArrowUInt8DataType; +typedef struct _GArrowUInt8DataTypeClass GArrowUInt8DataTypeClass; + +/** + * GArrowUInt8DataType: + * + * It wraps `arrow::UInt8Type`. + */ +struct _GArrowUInt8DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowUInt8DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_uint8_data_type_get_type (void) G_GNUC_CONST; +GArrowUInt8DataType *garrow_uint8_data_type_new (void); + + +#define GARROW_TYPE_INT16_DATA_TYPE \ + (garrow_int16_data_type_get_type()) +#define GARROW_INT16_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_INT16_DATA_TYPE, \ + GArrowInt16DataType)) +#define GARROW_INT16_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_INT16_DATA_TYPE, \ + GArrowInt16DataTypeClass)) +#define GARROW_IS_INT16_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_INT16_DATA_TYPE)) +#define GARROW_IS_INT16_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_INT16_DATA_TYPE)) +#define GARROW_INT16_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_INT16_DATA_TYPE, \ + GArrowInt16DataTypeClass)) + +typedef struct _GArrowInt16DataType GArrowInt16DataType; +typedef struct _GArrowInt16DataTypeClass GArrowInt16DataTypeClass; + +/** + * GArrowInt16DataType: + * + * It wraps `arrow::Int16Type`. + */ +struct _GArrowInt16DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowInt16DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_int16_data_type_get_type (void) G_GNUC_CONST; +GArrowInt16DataType *garrow_int16_data_type_new (void); + + +#define GARROW_TYPE_UINT16_DATA_TYPE \ + (garrow_uint16_data_type_get_type()) +#define GARROW_UINT16_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_UINT16_DATA_TYPE, \ + GArrowUInt16DataType)) +#define GARROW_UINT16_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_UINT16_DATA_TYPE, \ + GArrowUInt16DataTypeClass)) +#define GARROW_IS_UINT16_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_UINT16_DATA_TYPE)) +#define GARROW_IS_UINT16_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_UINT16_DATA_TYPE)) +#define GARROW_UINT16_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_UINT16_DATA_TYPE, \ + GArrowUInt16DataTypeClass)) + +typedef struct _GArrowUInt16DataType GArrowUInt16DataType; +typedef struct _GArrowUInt16DataTypeClass GArrowUInt16DataTypeClass; + +/** + * GArrowUInt16DataType: + * + * It wraps `arrow::UInt16Type`. + */ +struct _GArrowUInt16DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowUInt16DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_uint16_data_type_get_type (void) G_GNUC_CONST; +GArrowUInt16DataType *garrow_uint16_data_type_new (void); + + +#define GARROW_TYPE_INT32_DATA_TYPE \ + (garrow_int32_data_type_get_type()) +#define GARROW_INT32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_INT32_DATA_TYPE, \ + GArrowInt32DataType)) +#define GARROW_INT32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_INT32_DATA_TYPE, \ + GArrowInt32DataTypeClass)) +#define GARROW_IS_INT32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_INT32_DATA_TYPE)) +#define GARROW_IS_INT32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_INT32_DATA_TYPE)) +#define GARROW_INT32_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_INT32_DATA_TYPE, \ + GArrowInt32DataTypeClass)) + +typedef struct _GArrowInt32DataType GArrowInt32DataType; +typedef struct _GArrowInt32DataTypeClass GArrowInt32DataTypeClass; + +/** + * GArrowInt32DataType: + * + * It wraps `arrow::Int32Type`. + */ +struct _GArrowInt32DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowInt32DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_int32_data_type_get_type (void) G_GNUC_CONST; +GArrowInt32DataType *garrow_int32_data_type_new (void); + + +#define GARROW_TYPE_UINT32_DATA_TYPE \ + (garrow_uint32_data_type_get_type()) +#define GARROW_UINT32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_UINT32_DATA_TYPE, \ + GArrowUInt32DataType)) +#define GARROW_UINT32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_UINT32_DATA_TYPE, \ + GArrowUInt32DataTypeClass)) +#define GARROW_IS_UINT32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_UINT32_DATA_TYPE)) +#define GARROW_IS_UINT32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_UINT32_DATA_TYPE)) +#define GARROW_UINT32_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_UINT32_DATA_TYPE, \ + GArrowUInt32DataTypeClass)) + +typedef struct _GArrowUInt32DataType GArrowUInt32DataType; +typedef struct _GArrowUInt32DataTypeClass GArrowUInt32DataTypeClass; + +/** + * GArrowUInt32DataType: + * + * It wraps `arrow::UInt32Type`. + */ +struct _GArrowUInt32DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowUInt32DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_uint32_data_type_get_type (void) G_GNUC_CONST; +GArrowUInt32DataType *garrow_uint32_data_type_new (void); + + +#define GARROW_TYPE_INT64_DATA_TYPE \ + (garrow_int64_data_type_get_type()) +#define GARROW_INT64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_INT64_DATA_TYPE, \ + GArrowInt64DataType)) +#define GARROW_INT64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_INT64_DATA_TYPE, \ + GArrowInt64DataTypeClass)) +#define GARROW_IS_INT64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_INT64_DATA_TYPE)) +#define GARROW_IS_INT64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_INT64_DATA_TYPE)) +#define GARROW_INT64_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_INT64_DATA_TYPE, \ + GArrowInt64DataTypeClass)) + +typedef struct _GArrowInt64DataType GArrowInt64DataType; +typedef struct _GArrowInt64DataTypeClass GArrowInt64DataTypeClass; + +/** + * GArrowInt64DataType: + * + * It wraps `arrow::Int64Type`. + */ +struct _GArrowInt64DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowInt64DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_int64_data_type_get_type (void) G_GNUC_CONST; +GArrowInt64DataType *garrow_int64_data_type_new (void); + + +#define GARROW_TYPE_UINT64_DATA_TYPE \ + (garrow_uint64_data_type_get_type()) +#define GARROW_UINT64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_UINT64_DATA_TYPE, \ + GArrowUInt64DataType)) +#define GARROW_UINT64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_UINT64_DATA_TYPE, \ + GArrowUInt64DataTypeClass)) +#define GARROW_IS_UINT64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_UINT64_DATA_TYPE)) +#define GARROW_IS_UINT64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_UINT64_DATA_TYPE)) +#define GARROW_UINT64_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_UINT64_DATA_TYPE, \ + GArrowUInt64DataTypeClass)) + +typedef struct _GArrowUInt64DataType GArrowUInt64DataType; +typedef struct _GArrowUInt64DataTypeClass GArrowUInt64DataTypeClass; + +/** + * GArrowUInt64DataType: + * + * It wraps `arrow::UInt64Type`. + */ +struct _GArrowUInt64DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowUInt64DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_uint64_data_type_get_type (void) G_GNUC_CONST; +GArrowUInt64DataType *garrow_uint64_data_type_new (void); + + +#define GARROW_TYPE_FLOAT_DATA_TYPE \ + (garrow_float_data_type_get_type()) +#define GARROW_FLOAT_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_FLOAT_DATA_TYPE, \ + GArrowFloatDataType)) +#define GARROW_FLOAT_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_FLOAT_DATA_TYPE, \ + GArrowFloatDataTypeClass)) +#define GARROW_IS_FLOAT_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_FLOAT_DATA_TYPE)) +#define GARROW_IS_FLOAT_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_FLOAT_DATA_TYPE)) +#define GARROW_FLOAT_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_FLOAT_DATA_TYPE, \ + GArrowFloatDataTypeClass)) + +typedef struct _GArrowFloatDataType GArrowFloatDataType; +typedef struct _GArrowFloatDataTypeClass GArrowFloatDataTypeClass; + +/** + * GArrowFloatDataType: + * + * It wraps `arrow::FloatType`. + */ +struct _GArrowFloatDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowFloatDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_float_data_type_get_type (void) G_GNUC_CONST; +GArrowFloatDataType *garrow_float_data_type_new (void); + + +#define GARROW_TYPE_DOUBLE_DATA_TYPE \ + (garrow_double_data_type_get_type()) +#define GARROW_DOUBLE_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_DOUBLE_DATA_TYPE, \ + GArrowDoubleDataType)) +#define GARROW_DOUBLE_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_DOUBLE_DATA_TYPE, \ + GArrowDoubleDataTypeClass)) +#define GARROW_IS_DOUBLE_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_DOUBLE_DATA_TYPE)) +#define GARROW_IS_DOUBLE_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_DOUBLE_DATA_TYPE)) +#define GARROW_DOUBLE_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_DOUBLE_DATA_TYPE, \ + GArrowDoubleDataTypeClass)) + +typedef struct _GArrowDoubleDataType GArrowDoubleDataType; +typedef struct _GArrowDoubleDataTypeClass GArrowDoubleDataTypeClass; + +/** + * GArrowDoubleDataType: + * + * It wraps `arrow::DoubleType`. + */ +struct _GArrowDoubleDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowDoubleDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_double_data_type_get_type (void) G_GNUC_CONST; +GArrowDoubleDataType *garrow_double_data_type_new (void); + + +#define GARROW_TYPE_BINARY_DATA_TYPE \ + (garrow_binary_data_type_get_type()) +#define GARROW_BINARY_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_BINARY_DATA_TYPE, \ + GArrowBinaryDataType)) +#define GARROW_BINARY_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_BINARY_DATA_TYPE, \ + GArrowBinaryDataTypeClass)) +#define GARROW_IS_BINARY_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_BINARY_DATA_TYPE)) +#define GARROW_IS_BINARY_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_BINARY_DATA_TYPE)) +#define GARROW_BINARY_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_BINARY_DATA_TYPE, \ + GArrowBinaryDataTypeClass)) + +typedef struct _GArrowBinaryDataType GArrowBinaryDataType; +typedef struct _GArrowBinaryDataTypeClass GArrowBinaryDataTypeClass; + +/** + * GArrowBinaryDataType: + * + * It wraps `arrow::BinaryType`. + */ +struct _GArrowBinaryDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowBinaryDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_binary_data_type_get_type (void) G_GNUC_CONST; +GArrowBinaryDataType *garrow_binary_data_type_new (void); + + +#define GARROW_TYPE_STRING_DATA_TYPE \ + (garrow_string_data_type_get_type()) +#define GARROW_STRING_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_STRING_DATA_TYPE, \ + GArrowStringDataType)) +#define GARROW_STRING_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_STRING_DATA_TYPE, \ + GArrowStringDataTypeClass)) +#define GARROW_IS_STRING_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_STRING_DATA_TYPE)) +#define GARROW_IS_STRING_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_STRING_DATA_TYPE)) +#define GARROW_STRING_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_STRING_DATA_TYPE, \ + GArrowStringDataTypeClass)) + +typedef struct _GArrowStringDataType GArrowStringDataType; +typedef struct _GArrowStringDataTypeClass GArrowStringDataTypeClass; + +/** + * GArrowStringDataType: + * + * It wraps `arrow::StringType`. + */ +struct _GArrowStringDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowStringDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_string_data_type_get_type (void) G_GNUC_CONST; +GArrowStringDataType *garrow_string_data_type_new (void); + + +#define GARROW_TYPE_DATE32_DATA_TYPE \ + (garrow_date32_data_type_get_type()) +#define GARROW_DATE32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_DATE32_DATA_TYPE, \ + GArrowDate32DataType)) +#define GARROW_DATE32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_DATE32_DATA_TYPE, \ + GArrowDate32DataTypeClass)) +#define GARROW_IS_DATE32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_DATE32_DATA_TYPE)) +#define GARROW_IS_DATE32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_DATE32_DATA_TYPE)) +#define GARROW_DATE32_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_DATE32_DATA_TYPE, \ + GArrowDate32DataTypeClass)) + +typedef struct _GArrowDate32DataType GArrowDate32DataType; +typedef struct _GArrowDate32DataTypeClass GArrowDate32DataTypeClass; + +/** + * GArrowDate32DataType: + * + * It wraps `arrow::Date32Type`. + */ +struct _GArrowDate32DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowDate32DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_date32_data_type_get_type (void) G_GNUC_CONST; +GArrowDate32DataType *garrow_date32_data_type_new (void); + + +#define GARROW_TYPE_DATE64_DATA_TYPE \ + (garrow_date64_data_type_get_type()) +#define GARROW_DATE64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_DATE64_DATA_TYPE, \ + GArrowDate64DataType)) +#define GARROW_DATE64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_DATE64_DATA_TYPE, \ + GArrowDate64DataTypeClass)) +#define GARROW_IS_DATE64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_DATE64_DATA_TYPE)) +#define GARROW_IS_DATE64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_DATE64_DATA_TYPE)) +#define GARROW_DATE64_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_DATE64_DATA_TYPE, \ + GArrowDate64DataTypeClass)) + +typedef struct _GArrowDate64DataType GArrowDate64DataType; +typedef struct _GArrowDate64DataTypeClass GArrowDate64DataTypeClass; + +/** + * GArrowDate64DataType: + * + * It wraps `arrow::Date64Type`. + */ +struct _GArrowDate64DataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowDate64DataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_date64_data_type_get_type (void) G_GNUC_CONST; +GArrowDate64DataType *garrow_date64_data_type_new (void); + + +#define GARROW_TYPE_TIMESTAMP_DATA_TYPE \ + (garrow_timestamp_data_type_get_type()) +#define GARROW_TIMESTAMP_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_TIMESTAMP_DATA_TYPE, \ + GArrowTimestampDataType)) +#define GARROW_TIMESTAMP_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_TIMESTAMP_DATA_TYPE, \ + GArrowTimestampDataTypeClass)) +#define GARROW_IS_TIMESTAMP_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_TIMESTAMP_DATA_TYPE)) +#define GARROW_IS_TIMESTAMP_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_TIMESTAMP_DATA_TYPE)) +#define GARROW_TIMESTAMP_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_TIMESTAMP_DATA_TYPE, \ + GArrowTimestampDataTypeClass)) + +typedef struct _GArrowTimestampDataType GArrowTimestampDataType; +typedef struct _GArrowTimestampDataTypeClass GArrowTimestampDataTypeClass; + +/** + * GArrowTimestampDataType: + * + * It wraps `arrow::TimestampType`. + */ +struct _GArrowTimestampDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowTimestampDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_timestamp_data_type_get_type (void) G_GNUC_CONST; +GArrowTimestampDataType *garrow_timestamp_data_type_new (GArrowTimeUnit unit); + + +#define GARROW_TYPE_TIME_DATA_TYPE \ + (garrow_time_data_type_get_type()) +#define GARROW_TIME_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_TIME_DATA_TYPE, \ + GArrowTimeDataType)) +#define GARROW_TIME_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_TIME_DATA_TYPE, \ + GArrowTimeDataTypeClass)) +#define GARROW_IS_TIME_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_TIME_DATA_TYPE)) +#define GARROW_IS_TIME_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_TIME_DATA_TYPE)) +#define GARROW_TIME_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_TIME_DATA_TYPE, \ + GArrowTimeDataTypeClass)) + +typedef struct _GArrowTimeDataType GArrowTimeDataType; +typedef struct _GArrowTimeDataTypeClass GArrowTimeDataTypeClass; + +/** + * GArrowTimeDataType: + * + * It wraps `arrow::TimeType`. + */ +struct _GArrowTimeDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowTimeDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_time_data_type_get_type (void) G_GNUC_CONST; +GArrowTimeUnit garrow_time_data_type_get_unit (GArrowTimeDataType *time_data_type); + + +#define GARROW_TYPE_TIME32_DATA_TYPE \ + (garrow_time32_data_type_get_type()) +#define GARROW_TIME32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_TIME32_DATA_TYPE, \ + GArrowTime32DataType)) +#define GARROW_TIME32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_TIME32_DATA_TYPE, \ + GArrowTime32DataTypeClass)) +#define GARROW_IS_TIME32_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_TIME32_DATA_TYPE)) +#define GARROW_IS_TIME32_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_TIME32_DATA_TYPE)) +#define GARROW_TIME32_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_TIME32_DATA_TYPE, \ + GArrowTime32DataTypeClass)) + +typedef struct _GArrowTime32DataType GArrowTime32DataType; +typedef struct _GArrowTime32DataTypeClass GArrowTime32DataTypeClass; + +/** + * GArrowTime32DataType: + * + * It wraps `arrow::Time32Type`. + */ +struct _GArrowTime32DataType +{ + /*< private >*/ + GArrowTimeDataType parent_instance; +}; + +struct _GArrowTime32DataTypeClass +{ + GArrowTimeDataTypeClass parent_class; +}; + +GType garrow_time32_data_type_get_type (void) G_GNUC_CONST; +GArrowTime32DataType *garrow_time32_data_type_new (GArrowTimeUnit unit, + GError **error); + + +#define GARROW_TYPE_TIME64_DATA_TYPE \ + (garrow_time64_data_type_get_type()) +#define GARROW_TIME64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_TIME64_DATA_TYPE, \ + GArrowTime64DataType)) +#define GARROW_TIME64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_TIME64_DATA_TYPE, \ + GArrowTime64DataTypeClass)) +#define GARROW_IS_TIME64_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_TIME64_DATA_TYPE)) +#define GARROW_IS_TIME64_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_TIME64_DATA_TYPE)) +#define GARROW_TIME64_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_TIME64_DATA_TYPE, \ + GArrowTime64DataTypeClass)) + +typedef struct _GArrowTime64DataType GArrowTime64DataType; +typedef struct _GArrowTime64DataTypeClass GArrowTime64DataTypeClass; + +/** + * GArrowTime64DataType: + * + * It wraps `arrow::Time64Type`. + */ +struct _GArrowTime64DataType +{ + /*< private >*/ + GArrowTimeDataType parent_instance; +}; + +struct _GArrowTime64DataTypeClass +{ + GArrowTimeDataTypeClass parent_class; +}; + +GType garrow_time64_data_type_get_type (void) G_GNUC_CONST; +GArrowTime64DataType *garrow_time64_data_type_new (GArrowTimeUnit unit, + GError **error); + +G_END_DECLS diff --git a/c_glib/arrow-glib/composite-data-type.h b/c_glib/arrow-glib/composite-data-type.h new file mode 100644 index 00000000000..9dac5bd84be --- /dev/null +++ b/c_glib/arrow-glib/composite-data-type.h @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include +#include + +G_BEGIN_DECLS + +#define GARROW_TYPE_LIST_DATA_TYPE \ + (garrow_list_data_type_get_type()) +#define GARROW_LIST_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_LIST_DATA_TYPE, \ + GArrowListDataType)) +#define GARROW_LIST_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_LIST_DATA_TYPE, \ + GArrowListDataTypeClass)) +#define GARROW_IS_LIST_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_LIST_DATA_TYPE)) +#define GARROW_IS_LIST_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_LIST_DATA_TYPE)) +#define GARROW_LIST_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_LIST_DATA_TYPE, \ + GArrowListDataTypeClass)) + +typedef struct _GArrowListDataType GArrowListDataType; +typedef struct _GArrowListDataTypeClass GArrowListDataTypeClass; + +/** + * GArrowListDataType: + * + * It wraps `arrow::ListType`. + */ +struct _GArrowListDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowListDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_list_data_type_get_type (void) G_GNUC_CONST; +GArrowListDataType *garrow_list_data_type_new (GArrowField *field); +GArrowField *garrow_list_data_type_get_value_field (GArrowListDataType *list_data_type); + + +#define GARROW_TYPE_STRUCT_DATA_TYPE \ + (garrow_struct_data_type_get_type()) +#define GARROW_STRUCT_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), \ + GARROW_TYPE_STRUCT_DATA_TYPE, \ + GArrowStructDataType)) +#define GARROW_STRUCT_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), \ + GARROW_TYPE_STRUCT_DATA_TYPE, \ + GArrowStructDataTypeClass)) +#define GARROW_IS_STRUCT_DATA_TYPE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ + GARROW_TYPE_STRUCT_DATA_TYPE)) +#define GARROW_IS_STRUCT_DATA_TYPE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), \ + GARROW_TYPE_STRUCT_DATA_TYPE)) +#define GARROW_STRUCT_DATA_TYPE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS((obj), \ + GARROW_TYPE_STRUCT_DATA_TYPE, \ + GArrowStructDataTypeClass)) + +typedef struct _GArrowStructDataType GArrowStructDataType; +typedef struct _GArrowStructDataTypeClass GArrowStructDataTypeClass; + +/** + * GArrowStructDataType: + * + * It wraps `arrow::StructType`. + */ +struct _GArrowStructDataType +{ + /*< private >*/ + GArrowDataType parent_instance; +}; + +struct _GArrowStructDataTypeClass +{ + GArrowDataTypeClass parent_class; +}; + +GType garrow_struct_data_type_get_type (void) G_GNUC_CONST; +GArrowStructDataType *garrow_struct_data_type_new (GList *fields); + +G_END_DECLS diff --git a/c_glib/arrow-glib/data-type.h b/c_glib/arrow-glib/data-type.h index a450ab3bc8d..6067b7234b2 100644 --- a/c_glib/arrow-glib/data-type.h +++ b/c_glib/arrow-glib/data-type.h @@ -19,1031 +19,5 @@ #pragma once -#include - -#include - -G_BEGIN_DECLS - -#ifndef __GTK_DOC_IGNORE__ -typedef struct _GArrowField GArrowField; -#endif - -#define GARROW_TYPE_DATA_TYPE \ - (garrow_data_type_get_type()) -#define GARROW_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_DATA_TYPE, \ - GArrowDataType)) -#define GARROW_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_DATA_TYPE, \ - GArrowDataTypeClass)) -#define GARROW_IS_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_DATA_TYPE)) -#define GARROW_IS_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_DATA_TYPE)) -#define GARROW_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_DATA_TYPE, \ - GArrowDataTypeClass)) - -typedef struct _GArrowDataType GArrowDataType; -typedef struct _GArrowDataTypeClass GArrowDataTypeClass; - -/** - * GArrowDataType: - * - * It wraps `arrow::DataType`. - */ -struct _GArrowDataType -{ - /*< private >*/ - GObject parent_instance; -}; - -struct _GArrowDataTypeClass -{ - GObjectClass parent_class; -}; - -GType garrow_data_type_get_type (void) G_GNUC_CONST; -gboolean garrow_data_type_equal (GArrowDataType *data_type, - GArrowDataType *other_data_type); -gchar *garrow_data_type_to_string (GArrowDataType *data_type); -GArrowType garrow_data_type_get_id (GArrowDataType *data_type); - - -#define GARROW_TYPE_NULL_DATA_TYPE \ - (garrow_null_data_type_get_type()) -#define GARROW_NULL_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_NULL_DATA_TYPE, \ - GArrowNullDataType)) -#define GARROW_NULL_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_NULL_DATA_TYPE, \ - GArrowNullDataTypeClass)) -#define GARROW_IS_NULL_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_NULL_DATA_TYPE)) -#define GARROW_IS_NULL_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_NULL_DATA_TYPE)) -#define GARROW_NULL_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_NULL_DATA_TYPE, \ - GArrowNullDataTypeClass)) - -typedef struct _GArrowNullDataType GArrowNullDataType; -typedef struct _GArrowNullDataTypeClass GArrowNullDataTypeClass; - -/** - * GArrowNullDataType: - * - * It wraps `arrow::NullType`. - */ -struct _GArrowNullDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowNullDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_null_data_type_get_type (void) G_GNUC_CONST; -GArrowNullDataType *garrow_null_data_type_new (void); - - -#define GARROW_TYPE_BOOLEAN_DATA_TYPE \ - (garrow_boolean_data_type_get_type()) -#define GARROW_BOOLEAN_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_BOOLEAN_DATA_TYPE, \ - GArrowBooleanDataType)) -#define GARROW_BOOLEAN_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_BOOLEAN_DATA_TYPE, \ - GArrowBooleanDataTypeClass)) -#define GARROW_IS_BOOLEAN_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_BOOLEAN_DATA_TYPE)) -#define GARROW_IS_BOOLEAN_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_BOOLEAN_DATA_TYPE)) -#define GARROW_BOOLEAN_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_BOOLEAN_DATA_TYPE, \ - GArrowBooleanDataTypeClass)) - -typedef struct _GArrowBooleanDataType GArrowBooleanDataType; -typedef struct _GArrowBooleanDataTypeClass GArrowBooleanDataTypeClass; - -/** - * GArrowBooleanDataType: - * - * It wraps `arrow::BooleanType`. - */ -struct _GArrowBooleanDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowBooleanDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_boolean_data_type_get_type (void) G_GNUC_CONST; -GArrowBooleanDataType *garrow_boolean_data_type_new (void); - - -#define GARROW_TYPE_INT8_DATA_TYPE \ - (garrow_int8_data_type_get_type()) -#define GARROW_INT8_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_INT8_DATA_TYPE, \ - GArrowInt8DataType)) -#define GARROW_INT8_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_INT8_DATA_TYPE, \ - GArrowInt8DataTypeClass)) -#define GARROW_IS_INT8_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_INT8_DATA_TYPE)) -#define GARROW_IS_INT8_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_INT8_DATA_TYPE)) -#define GARROW_INT8_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_INT8_DATA_TYPE, \ - GArrowInt8DataTypeClass)) - -typedef struct _GArrowInt8DataType GArrowInt8DataType; -typedef struct _GArrowInt8DataTypeClass GArrowInt8DataTypeClass; - -/** - * GArrowInt8DataType: - * - * It wraps `arrow::Int8Type`. - */ -struct _GArrowInt8DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowInt8DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_int8_data_type_get_type (void) G_GNUC_CONST; -GArrowInt8DataType *garrow_int8_data_type_new (void); - - -#define GARROW_TYPE_UINT8_DATA_TYPE \ - (garrow_uint8_data_type_get_type()) -#define GARROW_UINT8_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_UINT8_DATA_TYPE, \ - GArrowUInt8DataType)) -#define GARROW_UINT8_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_UINT8_DATA_TYPE, \ - GArrowUInt8DataTypeClass)) -#define GARROW_IS_UINT8_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_UINT8_DATA_TYPE)) -#define GARROW_IS_UINT8_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_UINT8_DATA_TYPE)) -#define GARROW_UINT8_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_UINT8_DATA_TYPE, \ - GArrowUInt8DataTypeClass)) - -typedef struct _GArrowUInt8DataType GArrowUInt8DataType; -typedef struct _GArrowUInt8DataTypeClass GArrowUInt8DataTypeClass; - -/** - * GArrowUInt8DataType: - * - * It wraps `arrow::UInt8Type`. - */ -struct _GArrowUInt8DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowUInt8DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_uint8_data_type_get_type (void) G_GNUC_CONST; -GArrowUInt8DataType *garrow_uint8_data_type_new (void); - - -#define GARROW_TYPE_INT16_DATA_TYPE \ - (garrow_int16_data_type_get_type()) -#define GARROW_INT16_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_INT16_DATA_TYPE, \ - GArrowInt16DataType)) -#define GARROW_INT16_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_INT16_DATA_TYPE, \ - GArrowInt16DataTypeClass)) -#define GARROW_IS_INT16_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_INT16_DATA_TYPE)) -#define GARROW_IS_INT16_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_INT16_DATA_TYPE)) -#define GARROW_INT16_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_INT16_DATA_TYPE, \ - GArrowInt16DataTypeClass)) - -typedef struct _GArrowInt16DataType GArrowInt16DataType; -typedef struct _GArrowInt16DataTypeClass GArrowInt16DataTypeClass; - -/** - * GArrowInt16DataType: - * - * It wraps `arrow::Int16Type`. - */ -struct _GArrowInt16DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowInt16DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_int16_data_type_get_type (void) G_GNUC_CONST; -GArrowInt16DataType *garrow_int16_data_type_new (void); - - -#define GARROW_TYPE_UINT16_DATA_TYPE \ - (garrow_uint16_data_type_get_type()) -#define GARROW_UINT16_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_UINT16_DATA_TYPE, \ - GArrowUInt16DataType)) -#define GARROW_UINT16_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_UINT16_DATA_TYPE, \ - GArrowUInt16DataTypeClass)) -#define GARROW_IS_UINT16_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_UINT16_DATA_TYPE)) -#define GARROW_IS_UINT16_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_UINT16_DATA_TYPE)) -#define GARROW_UINT16_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_UINT16_DATA_TYPE, \ - GArrowUInt16DataTypeClass)) - -typedef struct _GArrowUInt16DataType GArrowUInt16DataType; -typedef struct _GArrowUInt16DataTypeClass GArrowUInt16DataTypeClass; - -/** - * GArrowUInt16DataType: - * - * It wraps `arrow::UInt16Type`. - */ -struct _GArrowUInt16DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowUInt16DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_uint16_data_type_get_type (void) G_GNUC_CONST; -GArrowUInt16DataType *garrow_uint16_data_type_new (void); - - -#define GARROW_TYPE_INT32_DATA_TYPE \ - (garrow_int32_data_type_get_type()) -#define GARROW_INT32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_INT32_DATA_TYPE, \ - GArrowInt32DataType)) -#define GARROW_INT32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_INT32_DATA_TYPE, \ - GArrowInt32DataTypeClass)) -#define GARROW_IS_INT32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_INT32_DATA_TYPE)) -#define GARROW_IS_INT32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_INT32_DATA_TYPE)) -#define GARROW_INT32_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_INT32_DATA_TYPE, \ - GArrowInt32DataTypeClass)) - -typedef struct _GArrowInt32DataType GArrowInt32DataType; -typedef struct _GArrowInt32DataTypeClass GArrowInt32DataTypeClass; - -/** - * GArrowInt32DataType: - * - * It wraps `arrow::Int32Type`. - */ -struct _GArrowInt32DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowInt32DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_int32_data_type_get_type (void) G_GNUC_CONST; -GArrowInt32DataType *garrow_int32_data_type_new (void); - - -#define GARROW_TYPE_UINT32_DATA_TYPE \ - (garrow_uint32_data_type_get_type()) -#define GARROW_UINT32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_UINT32_DATA_TYPE, \ - GArrowUInt32DataType)) -#define GARROW_UINT32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_UINT32_DATA_TYPE, \ - GArrowUInt32DataTypeClass)) -#define GARROW_IS_UINT32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_UINT32_DATA_TYPE)) -#define GARROW_IS_UINT32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_UINT32_DATA_TYPE)) -#define GARROW_UINT32_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_UINT32_DATA_TYPE, \ - GArrowUInt32DataTypeClass)) - -typedef struct _GArrowUInt32DataType GArrowUInt32DataType; -typedef struct _GArrowUInt32DataTypeClass GArrowUInt32DataTypeClass; - -/** - * GArrowUInt32DataType: - * - * It wraps `arrow::UInt32Type`. - */ -struct _GArrowUInt32DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowUInt32DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_uint32_data_type_get_type (void) G_GNUC_CONST; -GArrowUInt32DataType *garrow_uint32_data_type_new (void); - - -#define GARROW_TYPE_INT64_DATA_TYPE \ - (garrow_int64_data_type_get_type()) -#define GARROW_INT64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_INT64_DATA_TYPE, \ - GArrowInt64DataType)) -#define GARROW_INT64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_INT64_DATA_TYPE, \ - GArrowInt64DataTypeClass)) -#define GARROW_IS_INT64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_INT64_DATA_TYPE)) -#define GARROW_IS_INT64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_INT64_DATA_TYPE)) -#define GARROW_INT64_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_INT64_DATA_TYPE, \ - GArrowInt64DataTypeClass)) - -typedef struct _GArrowInt64DataType GArrowInt64DataType; -typedef struct _GArrowInt64DataTypeClass GArrowInt64DataTypeClass; - -/** - * GArrowInt64DataType: - * - * It wraps `arrow::Int64Type`. - */ -struct _GArrowInt64DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowInt64DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_int64_data_type_get_type (void) G_GNUC_CONST; -GArrowInt64DataType *garrow_int64_data_type_new (void); - - -#define GARROW_TYPE_UINT64_DATA_TYPE \ - (garrow_uint64_data_type_get_type()) -#define GARROW_UINT64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_UINT64_DATA_TYPE, \ - GArrowUInt64DataType)) -#define GARROW_UINT64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_UINT64_DATA_TYPE, \ - GArrowUInt64DataTypeClass)) -#define GARROW_IS_UINT64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_UINT64_DATA_TYPE)) -#define GARROW_IS_UINT64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_UINT64_DATA_TYPE)) -#define GARROW_UINT64_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_UINT64_DATA_TYPE, \ - GArrowUInt64DataTypeClass)) - -typedef struct _GArrowUInt64DataType GArrowUInt64DataType; -typedef struct _GArrowUInt64DataTypeClass GArrowUInt64DataTypeClass; - -/** - * GArrowUInt64DataType: - * - * It wraps `arrow::UInt64Type`. - */ -struct _GArrowUInt64DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowUInt64DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_uint64_data_type_get_type (void) G_GNUC_CONST; -GArrowUInt64DataType *garrow_uint64_data_type_new (void); - - -#define GARROW_TYPE_FLOAT_DATA_TYPE \ - (garrow_float_data_type_get_type()) -#define GARROW_FLOAT_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_FLOAT_DATA_TYPE, \ - GArrowFloatDataType)) -#define GARROW_FLOAT_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_FLOAT_DATA_TYPE, \ - GArrowFloatDataTypeClass)) -#define GARROW_IS_FLOAT_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_FLOAT_DATA_TYPE)) -#define GARROW_IS_FLOAT_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_FLOAT_DATA_TYPE)) -#define GARROW_FLOAT_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_FLOAT_DATA_TYPE, \ - GArrowFloatDataTypeClass)) - -typedef struct _GArrowFloatDataType GArrowFloatDataType; -typedef struct _GArrowFloatDataTypeClass GArrowFloatDataTypeClass; - -/** - * GArrowFloatDataType: - * - * It wraps `arrow::FloatType`. - */ -struct _GArrowFloatDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowFloatDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_float_data_type_get_type (void) G_GNUC_CONST; -GArrowFloatDataType *garrow_float_data_type_new (void); - - -#define GARROW_TYPE_DOUBLE_DATA_TYPE \ - (garrow_double_data_type_get_type()) -#define GARROW_DOUBLE_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_DOUBLE_DATA_TYPE, \ - GArrowDoubleDataType)) -#define GARROW_DOUBLE_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_DOUBLE_DATA_TYPE, \ - GArrowDoubleDataTypeClass)) -#define GARROW_IS_DOUBLE_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_DOUBLE_DATA_TYPE)) -#define GARROW_IS_DOUBLE_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_DOUBLE_DATA_TYPE)) -#define GARROW_DOUBLE_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_DOUBLE_DATA_TYPE, \ - GArrowDoubleDataTypeClass)) - -typedef struct _GArrowDoubleDataType GArrowDoubleDataType; -typedef struct _GArrowDoubleDataTypeClass GArrowDoubleDataTypeClass; - -/** - * GArrowDoubleDataType: - * - * It wraps `arrow::DoubleType`. - */ -struct _GArrowDoubleDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowDoubleDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_double_data_type_get_type (void) G_GNUC_CONST; -GArrowDoubleDataType *garrow_double_data_type_new (void); - - -#define GARROW_TYPE_BINARY_DATA_TYPE \ - (garrow_binary_data_type_get_type()) -#define GARROW_BINARY_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_BINARY_DATA_TYPE, \ - GArrowBinaryDataType)) -#define GARROW_BINARY_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_BINARY_DATA_TYPE, \ - GArrowBinaryDataTypeClass)) -#define GARROW_IS_BINARY_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_BINARY_DATA_TYPE)) -#define GARROW_IS_BINARY_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_BINARY_DATA_TYPE)) -#define GARROW_BINARY_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_BINARY_DATA_TYPE, \ - GArrowBinaryDataTypeClass)) - -typedef struct _GArrowBinaryDataType GArrowBinaryDataType; -typedef struct _GArrowBinaryDataTypeClass GArrowBinaryDataTypeClass; - -/** - * GArrowBinaryDataType: - * - * It wraps `arrow::BinaryType`. - */ -struct _GArrowBinaryDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowBinaryDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_binary_data_type_get_type (void) G_GNUC_CONST; -GArrowBinaryDataType *garrow_binary_data_type_new (void); - - -#define GARROW_TYPE_STRING_DATA_TYPE \ - (garrow_string_data_type_get_type()) -#define GARROW_STRING_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_STRING_DATA_TYPE, \ - GArrowStringDataType)) -#define GARROW_STRING_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_STRING_DATA_TYPE, \ - GArrowStringDataTypeClass)) -#define GARROW_IS_STRING_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_STRING_DATA_TYPE)) -#define GARROW_IS_STRING_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_STRING_DATA_TYPE)) -#define GARROW_STRING_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_STRING_DATA_TYPE, \ - GArrowStringDataTypeClass)) - -typedef struct _GArrowStringDataType GArrowStringDataType; -typedef struct _GArrowStringDataTypeClass GArrowStringDataTypeClass; - -/** - * GArrowStringDataType: - * - * It wraps `arrow::StringType`. - */ -struct _GArrowStringDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowStringDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_string_data_type_get_type (void) G_GNUC_CONST; -GArrowStringDataType *garrow_string_data_type_new (void); - - -#define GARROW_TYPE_DATE32_DATA_TYPE \ - (garrow_date32_data_type_get_type()) -#define GARROW_DATE32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_DATE32_DATA_TYPE, \ - GArrowDate32DataType)) -#define GARROW_DATE32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_DATE32_DATA_TYPE, \ - GArrowDate32DataTypeClass)) -#define GARROW_IS_DATE32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_DATE32_DATA_TYPE)) -#define GARROW_IS_DATE32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_DATE32_DATA_TYPE)) -#define GARROW_DATE32_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_DATE32_DATA_TYPE, \ - GArrowDate32DataTypeClass)) - -typedef struct _GArrowDate32DataType GArrowDate32DataType; -typedef struct _GArrowDate32DataTypeClass GArrowDate32DataTypeClass; - -/** - * GArrowDate32DataType: - * - * It wraps `arrow::Date32Type`. - */ -struct _GArrowDate32DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowDate32DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_date32_data_type_get_type (void) G_GNUC_CONST; -GArrowDate32DataType *garrow_date32_data_type_new (void); - - -#define GARROW_TYPE_DATE64_DATA_TYPE \ - (garrow_date64_data_type_get_type()) -#define GARROW_DATE64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_DATE64_DATA_TYPE, \ - GArrowDate64DataType)) -#define GARROW_DATE64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_DATE64_DATA_TYPE, \ - GArrowDate64DataTypeClass)) -#define GARROW_IS_DATE64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_DATE64_DATA_TYPE)) -#define GARROW_IS_DATE64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_DATE64_DATA_TYPE)) -#define GARROW_DATE64_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_DATE64_DATA_TYPE, \ - GArrowDate64DataTypeClass)) - -typedef struct _GArrowDate64DataType GArrowDate64DataType; -typedef struct _GArrowDate64DataTypeClass GArrowDate64DataTypeClass; - -/** - * GArrowDate64DataType: - * - * It wraps `arrow::Date64Type`. - */ -struct _GArrowDate64DataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowDate64DataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_date64_data_type_get_type (void) G_GNUC_CONST; -GArrowDate64DataType *garrow_date64_data_type_new (void); - - -#define GARROW_TYPE_TIMESTAMP_DATA_TYPE \ - (garrow_timestamp_data_type_get_type()) -#define GARROW_TIMESTAMP_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_TIMESTAMP_DATA_TYPE, \ - GArrowTimestampDataType)) -#define GARROW_TIMESTAMP_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_TIMESTAMP_DATA_TYPE, \ - GArrowTimestampDataTypeClass)) -#define GARROW_IS_TIMESTAMP_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_TIMESTAMP_DATA_TYPE)) -#define GARROW_IS_TIMESTAMP_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_TIMESTAMP_DATA_TYPE)) -#define GARROW_TIMESTAMP_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_TIMESTAMP_DATA_TYPE, \ - GArrowTimestampDataTypeClass)) - -typedef struct _GArrowTimestampDataType GArrowTimestampDataType; -typedef struct _GArrowTimestampDataTypeClass GArrowTimestampDataTypeClass; - -/** - * GArrowTimestampDataType: - * - * It wraps `arrow::TimestampType`. - */ -struct _GArrowTimestampDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowTimestampDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_timestamp_data_type_get_type (void) G_GNUC_CONST; -GArrowTimestampDataType *garrow_timestamp_data_type_new (GArrowTimeUnit unit); - - -#define GARROW_TYPE_TIME_DATA_TYPE \ - (garrow_time_data_type_get_type()) -#define GARROW_TIME_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_TIME_DATA_TYPE, \ - GArrowTimeDataType)) -#define GARROW_TIME_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_TIME_DATA_TYPE, \ - GArrowTimeDataTypeClass)) -#define GARROW_IS_TIME_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_TIME_DATA_TYPE)) -#define GARROW_IS_TIME_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_TIME_DATA_TYPE)) -#define GARROW_TIME_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_TIME_DATA_TYPE, \ - GArrowTimeDataTypeClass)) - -typedef struct _GArrowTimeDataType GArrowTimeDataType; -typedef struct _GArrowTimeDataTypeClass GArrowTimeDataTypeClass; - -/** - * GArrowTimeDataType: - * - * It wraps `arrow::TimeType`. - */ -struct _GArrowTimeDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowTimeDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_time_data_type_get_type (void) G_GNUC_CONST; -GArrowTimeUnit garrow_time_data_type_get_unit (GArrowTimeDataType *time_data_type); - - -#define GARROW_TYPE_TIME32_DATA_TYPE \ - (garrow_time32_data_type_get_type()) -#define GARROW_TIME32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_TIME32_DATA_TYPE, \ - GArrowTime32DataType)) -#define GARROW_TIME32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_TIME32_DATA_TYPE, \ - GArrowTime32DataTypeClass)) -#define GARROW_IS_TIME32_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_TIME32_DATA_TYPE)) -#define GARROW_IS_TIME32_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_TIME32_DATA_TYPE)) -#define GARROW_TIME32_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_TIME32_DATA_TYPE, \ - GArrowTime32DataTypeClass)) - -typedef struct _GArrowTime32DataType GArrowTime32DataType; -typedef struct _GArrowTime32DataTypeClass GArrowTime32DataTypeClass; - -/** - * GArrowTime32DataType: - * - * It wraps `arrow::Time32Type`. - */ -struct _GArrowTime32DataType -{ - /*< private >*/ - GArrowTimeDataType parent_instance; -}; - -struct _GArrowTime32DataTypeClass -{ - GArrowTimeDataTypeClass parent_class; -}; - -GType garrow_time32_data_type_get_type (void) G_GNUC_CONST; -GArrowTime32DataType *garrow_time32_data_type_new (GArrowTimeUnit unit, - GError **error); - - -#define GARROW_TYPE_TIME64_DATA_TYPE \ - (garrow_time64_data_type_get_type()) -#define GARROW_TIME64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_TIME64_DATA_TYPE, \ - GArrowTime64DataType)) -#define GARROW_TIME64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_TIME64_DATA_TYPE, \ - GArrowTime64DataTypeClass)) -#define GARROW_IS_TIME64_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_TIME64_DATA_TYPE)) -#define GARROW_IS_TIME64_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_TIME64_DATA_TYPE)) -#define GARROW_TIME64_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_TIME64_DATA_TYPE, \ - GArrowTime64DataTypeClass)) - -typedef struct _GArrowTime64DataType GArrowTime64DataType; -typedef struct _GArrowTime64DataTypeClass GArrowTime64DataTypeClass; - -/** - * GArrowTime64DataType: - * - * It wraps `arrow::Time64Type`. - */ -struct _GArrowTime64DataType -{ - /*< private >*/ - GArrowTimeDataType parent_instance; -}; - -struct _GArrowTime64DataTypeClass -{ - GArrowTimeDataTypeClass parent_class; -}; - -GType garrow_time64_data_type_get_type (void) G_GNUC_CONST; -GArrowTime64DataType *garrow_time64_data_type_new (GArrowTimeUnit unit, - GError **error); - - -#define GARROW_TYPE_LIST_DATA_TYPE \ - (garrow_list_data_type_get_type()) -#define GARROW_LIST_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_LIST_DATA_TYPE, \ - GArrowListDataType)) -#define GARROW_LIST_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_LIST_DATA_TYPE, \ - GArrowListDataTypeClass)) -#define GARROW_IS_LIST_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_LIST_DATA_TYPE)) -#define GARROW_IS_LIST_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_LIST_DATA_TYPE)) -#define GARROW_LIST_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_LIST_DATA_TYPE, \ - GArrowListDataTypeClass)) - -typedef struct _GArrowListDataType GArrowListDataType; -typedef struct _GArrowListDataTypeClass GArrowListDataTypeClass; - -/** - * GArrowListDataType: - * - * It wraps `arrow::ListType`. - */ -struct _GArrowListDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowListDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_list_data_type_get_type (void) G_GNUC_CONST; -GArrowListDataType *garrow_list_data_type_new (GArrowField *field); -GArrowField *garrow_list_data_type_get_value_field (GArrowListDataType *list_data_type); - - -#define GARROW_TYPE_STRUCT_DATA_TYPE \ - (garrow_struct_data_type_get_type()) -#define GARROW_STRUCT_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \ - GARROW_TYPE_STRUCT_DATA_TYPE, \ - GArrowStructDataType)) -#define GARROW_STRUCT_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass), \ - GARROW_TYPE_STRUCT_DATA_TYPE, \ - GArrowStructDataTypeClass)) -#define GARROW_IS_STRUCT_DATA_TYPE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ - GARROW_TYPE_STRUCT_DATA_TYPE)) -#define GARROW_IS_STRUCT_DATA_TYPE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass), \ - GARROW_TYPE_STRUCT_DATA_TYPE)) -#define GARROW_STRUCT_DATA_TYPE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS((obj), \ - GARROW_TYPE_STRUCT_DATA_TYPE, \ - GArrowStructDataTypeClass)) - -typedef struct _GArrowStructDataType GArrowStructDataType; -typedef struct _GArrowStructDataTypeClass GArrowStructDataTypeClass; - -/** - * GArrowStructDataType: - * - * It wraps `arrow::StructType`. - */ -struct _GArrowStructDataType -{ - /*< private >*/ - GArrowDataType parent_instance; -}; - -struct _GArrowStructDataTypeClass -{ - GArrowDataTypeClass parent_class; -}; - -GType garrow_struct_data_type_get_type (void) G_GNUC_CONST; -GArrowStructDataType *garrow_struct_data_type_new (GList *fields); - -G_END_DECLS +#include +#include diff --git a/c_glib/arrow-glib/field.h b/c_glib/arrow-glib/field.h index e724dce49da..b1844f49a6e 100644 --- a/c_glib/arrow-glib/field.h +++ b/c_glib/arrow-glib/field.h @@ -19,7 +19,7 @@ #pragma once -#include +#include G_BEGIN_DECLS From a43c29b3751e1820afc2d52793b07b27f7e016ef Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Tue, 12 Sep 2017 22:32:57 +0900 Subject: [PATCH 2/2] [GLib] Fix document build error --- c_glib/arrow-glib/Makefile.am | 4 +- .../{data-type.cpp => basic-data-type.cpp} | 104 +------------- c_glib/arrow-glib/basic-data-type.hpp | 27 ++++ c_glib/arrow-glib/composite-data-type.cpp | 136 ++++++++++++++++++ c_glib/arrow-glib/compute.cpp | 2 +- c_glib/arrow-glib/data-type.hpp | 8 +- c_glib/doc/reference/arrow-glib-docs.sgml | 7 +- 7 files changed, 178 insertions(+), 110 deletions(-) rename c_glib/arrow-glib/{data-type.cpp => basic-data-type.cpp} (90%) create mode 100644 c_glib/arrow-glib/basic-data-type.hpp create mode 100644 c_glib/arrow-glib/composite-data-type.cpp diff --git a/c_glib/arrow-glib/Makefile.am b/c_glib/arrow-glib/Makefile.am index 71a5bf8273a..cde62cde080 100644 --- a/c_glib/arrow-glib/Makefile.am +++ b/c_glib/arrow-glib/Makefile.am @@ -85,10 +85,11 @@ libarrow_glib_la_generated_sources = \ libarrow_glib_la_sources = \ array.cpp \ array-builder.cpp \ + basic-data-type.cpp \ buffer.cpp \ chunked-array.cpp \ column.cpp \ - data-type.cpp \ + composite-data-type.cpp \ error.cpp \ field.cpp \ record-batch.cpp \ @@ -120,6 +121,7 @@ libarrow_glib_la_cpp_headers = \ array.hpp \ array-builder.hpp \ arrow-glib.hpp \ + basic-data-type.hpp \ buffer.hpp \ chunked-array.hpp \ column.hpp \ diff --git a/c_glib/arrow-glib/data-type.cpp b/c_glib/arrow-glib/basic-data-type.cpp similarity index 90% rename from c_glib/arrow-glib/data-type.cpp rename to c_glib/arrow-glib/basic-data-type.cpp index acb14843119..62f8a7e4d2f 100644 --- a/c_glib/arrow-glib/data-type.cpp +++ b/c_glib/arrow-glib/basic-data-type.cpp @@ -30,9 +30,9 @@ G_BEGIN_DECLS /** - * SECTION: data-type - * @section_id: data-type-classes - * @title: Data type classes + * SECTION: basic-data-type + * @section_id: basic-data-type-classes + * @title: Basic data type classes * @include: arrow-glib/arrow-glib.h * * #GArrowDataType is a base class for all data type classes such as @@ -84,10 +84,6 @@ G_BEGIN_DECLS * * #GArrowTime64DataType is a class for the number of microseconds or * nanoseconds since midnight in 64-bit signed integer data type. - * - * #GArrowListDataType is a class for list data type. - * - * #GArrowStructDataType is a class for struct data type. */ typedef struct GArrowDataTypePrivate_ { @@ -947,100 +943,6 @@ garrow_time64_data_type_new(GArrowTimeUnit unit, GError **error) return data_type; } - -G_DEFINE_TYPE(GArrowListDataType, \ - garrow_list_data_type, \ - GARROW_TYPE_DATA_TYPE) - -static void -garrow_list_data_type_init(GArrowListDataType *object) -{ -} - -static void -garrow_list_data_type_class_init(GArrowListDataTypeClass *klass) -{ -} - -/** - * garrow_list_data_type_new: - * @field: The field of elements - * - * Returns: The newly created list data type. - */ -GArrowListDataType * -garrow_list_data_type_new(GArrowField *field) -{ - auto arrow_field = garrow_field_get_raw(field); - auto arrow_data_type = - std::make_shared(arrow_field); - - GArrowListDataType *data_type = - GARROW_LIST_DATA_TYPE(g_object_new(GARROW_TYPE_LIST_DATA_TYPE, - "data-type", &arrow_data_type, - NULL)); - return data_type; -} - -/** - * garrow_list_data_type_get_value_field: - * @list_data_type: A #GArrowListDataType. - * - * Returns: (transfer full): The field of value. - */ -GArrowField * -garrow_list_data_type_get_value_field(GArrowListDataType *list_data_type) -{ - auto arrow_data_type = - garrow_data_type_get_raw(GARROW_DATA_TYPE(list_data_type)); - auto arrow_list_data_type = - static_cast(arrow_data_type.get()); - - auto arrow_field = arrow_list_data_type->value_field(); - auto field = garrow_field_new_raw(&arrow_field); - - return field; -} - - -G_DEFINE_TYPE(GArrowStructDataType, \ - garrow_struct_data_type, \ - GARROW_TYPE_DATA_TYPE) - -static void -garrow_struct_data_type_init(GArrowStructDataType *object) -{ -} - -static void -garrow_struct_data_type_class_init(GArrowStructDataTypeClass *klass) -{ -} - -/** - * garrow_struct_data_type_new: - * @fields: (element-type GArrowField): The fields of the struct. - * - * Returns: The newly created struct data type. - */ -GArrowStructDataType * -garrow_struct_data_type_new(GList *fields) -{ - std::vector> arrow_fields; - for (GList *node = fields; node; node = g_list_next(node)) { - auto field = GARROW_FIELD(node->data); - auto arrow_field = garrow_field_get_raw(field); - arrow_fields.push_back(arrow_field); - } - - auto arrow_data_type = std::make_shared(arrow_fields); - GArrowStructDataType *data_type = - GARROW_STRUCT_DATA_TYPE(g_object_new(GARROW_TYPE_STRUCT_DATA_TYPE, - "data-type", &arrow_data_type, - NULL)); - return data_type; -} - G_END_DECLS GArrowDataType * diff --git a/c_glib/arrow-glib/basic-data-type.hpp b/c_glib/arrow-glib/basic-data-type.hpp new file mode 100644 index 00000000000..aa95cecec40 --- /dev/null +++ b/c_glib/arrow-glib/basic-data-type.hpp @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#pragma once + +#include + +#include + +GArrowDataType *garrow_data_type_new_raw(std::shared_ptr *arrow_data_type); +std::shared_ptr garrow_data_type_get_raw(GArrowDataType *data_type); diff --git a/c_glib/arrow-glib/composite-data-type.cpp b/c_glib/arrow-glib/composite-data-type.cpp new file mode 100644 index 00000000000..ce3d78ca083 --- /dev/null +++ b/c_glib/arrow-glib/composite-data-type.cpp @@ -0,0 +1,136 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +/** + * SECTION: composite-data-type + * @section_id: composite-data-type-classes + * @title: Composite data type classes + * @include: arrow-glib/arrow-glib.h + * + * #GArrowListDataType is a class for list data type. + * + * #GArrowStructDataType is a class for struct data type. + */ + +G_DEFINE_TYPE(GArrowListDataType, \ + garrow_list_data_type, \ + GARROW_TYPE_DATA_TYPE) + +static void +garrow_list_data_type_init(GArrowListDataType *object) +{ +} + +static void +garrow_list_data_type_class_init(GArrowListDataTypeClass *klass) +{ +} + +/** + * garrow_list_data_type_new: + * @field: The field of elements + * + * Returns: The newly created list data type. + */ +GArrowListDataType * +garrow_list_data_type_new(GArrowField *field) +{ + auto arrow_field = garrow_field_get_raw(field); + auto arrow_data_type = + std::make_shared(arrow_field); + + GArrowListDataType *data_type = + GARROW_LIST_DATA_TYPE(g_object_new(GARROW_TYPE_LIST_DATA_TYPE, + "data-type", &arrow_data_type, + NULL)); + return data_type; +} + +/** + * garrow_list_data_type_get_value_field: + * @list_data_type: A #GArrowListDataType. + * + * Returns: (transfer full): The field of value. + */ +GArrowField * +garrow_list_data_type_get_value_field(GArrowListDataType *list_data_type) +{ + auto arrow_data_type = + garrow_data_type_get_raw(GARROW_DATA_TYPE(list_data_type)); + auto arrow_list_data_type = + static_cast(arrow_data_type.get()); + + auto arrow_field = arrow_list_data_type->value_field(); + auto field = garrow_field_new_raw(&arrow_field); + + return field; +} + + +G_DEFINE_TYPE(GArrowStructDataType, \ + garrow_struct_data_type, \ + GARROW_TYPE_DATA_TYPE) + +static void +garrow_struct_data_type_init(GArrowStructDataType *object) +{ +} + +static void +garrow_struct_data_type_class_init(GArrowStructDataTypeClass *klass) +{ +} + +/** + * garrow_struct_data_type_new: + * @fields: (element-type GArrowField): The fields of the struct. + * + * Returns: The newly created struct data type. + */ +GArrowStructDataType * +garrow_struct_data_type_new(GList *fields) +{ + std::vector> arrow_fields; + for (GList *node = fields; node; node = g_list_next(node)) { + auto field = GARROW_FIELD(node->data); + auto arrow_field = garrow_field_get_raw(field); + arrow_fields.push_back(arrow_field); + } + + auto arrow_data_type = std::make_shared(arrow_fields); + GArrowStructDataType *data_type = + GARROW_STRUCT_DATA_TYPE(g_object_new(GARROW_TYPE_STRUCT_DATA_TYPE, + "data-type", &arrow_data_type, + NULL)); + return data_type; +} + +G_END_DECLS diff --git a/c_glib/arrow-glib/compute.cpp b/c_glib/arrow-glib/compute.cpp index f7a48d148b0..9134aa675c5 100644 --- a/c_glib/arrow-glib/compute.cpp +++ b/c_glib/arrow-glib/compute.cpp @@ -28,7 +28,7 @@ G_BEGIN_DECLS /** * SECTION: compute * @section_id: compute-classes - * @title: Compute classes + * @title: Classes for computation * @include: arrow-glib/arrow-glib.h * * #GArrowCastOptions is a class to custom garrow_array_cast(). diff --git a/c_glib/arrow-glib/data-type.hpp b/c_glib/arrow-glib/data-type.hpp index fddcb2eb1ac..77ab90321d7 100644 --- a/c_glib/arrow-glib/data-type.hpp +++ b/c_glib/arrow-glib/data-type.hpp @@ -19,9 +19,5 @@ #pragma once -#include - -#include - -GArrowDataType *garrow_data_type_new_raw(std::shared_ptr *arrow_data_type); -std::shared_ptr garrow_data_type_get_raw(GArrowDataType *data_type); +#include +#include diff --git a/c_glib/doc/reference/arrow-glib-docs.sgml b/c_glib/doc/reference/arrow-glib-docs.sgml index 9c0475cc76c..3366fc8ebe5 100644 --- a/c_glib/doc/reference/arrow-glib-docs.sgml +++ b/c_glib/doc/reference/arrow-glib-docs.sgml @@ -46,6 +46,10 @@ Array builder + + Compute + + Tensor @@ -53,7 +57,8 @@ Type - + + Schema