From 4fe937665af3baa13f4db5a68e1dfc2dfeb415a4 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Wed, 20 Apr 2022 16:09:28 +0900 Subject: [PATCH] ARROW-16247: [GLib] Add GArrowGCSFileSystem --- c_glib/arrow-glib/file-system.cpp | 19 +++++++++++++++++++ c_glib/arrow-glib/file-system.h | 12 ++++++++++++ 2 files changed, 31 insertions(+) diff --git a/c_glib/arrow-glib/file-system.cpp b/c_glib/arrow-glib/file-system.cpp index bb2e19513bb13..9cd6e79734ae2 100644 --- a/c_glib/arrow-glib/file-system.cpp +++ b/c_glib/arrow-glib/file-system.cpp @@ -54,6 +54,8 @@ G_BEGIN_DECLS * #GArrowS3GlobalOptions is a class for options to initialize S3 APIs. * * #GArrowS3FileSystem is a class for S3-backed file system. + * + * #GArrowGCSFileSystem is a class for GCS-backed file system. */ /* arrow::fs::FileInfo */ @@ -1593,6 +1595,21 @@ garrow_s3_file_system_class_init(GArrowS3FileSystemClass *klass) } +G_DEFINE_TYPE(GArrowGCSFileSystem, + garrow_gcs_file_system, + GARROW_TYPE_FILE_SYSTEM) + +static void +garrow_gcs_file_system_init(GArrowGCSFileSystem *file_system) +{ +} + +static void +garrow_gcs_file_system_class_init(GArrowGCSFileSystemClass *klass) +{ +} + + G_END_DECLS GArrowFileInfo * @@ -1623,6 +1640,8 @@ garrow_file_system_new_raw( file_system_type = GARROW_TYPE_HDFS_FILE_SYSTEM; } else if (type_name == "s3") { file_system_type = GARROW_TYPE_S3_FILE_SYSTEM; + } else if (type_name == "gcs") { + file_system_type = GARROW_TYPE_GCS_FILE_SYSTEM; } else if (type_name == "mock") { file_system_type = GARROW_TYPE_MOCK_FILE_SYSTEM; } diff --git a/c_glib/arrow-glib/file-system.h b/c_glib/arrow-glib/file-system.h index 7ab356e42402b..687404734a2d9 100644 --- a/c_glib/arrow-glib/file-system.h +++ b/c_glib/arrow-glib/file-system.h @@ -333,4 +333,16 @@ struct _GArrowS3FileSystemClass }; +#define GARROW_TYPE_GCS_FILE_SYSTEM (garrow_gcs_file_system_get_type()) +G_DECLARE_DERIVABLE_TYPE(GArrowGCSFileSystem, + garrow_gcs_file_system, + GARROW, + GCS_FILE_SYSTEM, + GArrowFileSystem) +struct _GArrowGCSFileSystemClass +{ + GArrowFileSystemClass parent_class; +}; + + G_END_DECLS