]>
Commit | Line | Data |
---|---|---|
1d09f67e TL |
1 | /* |
2 | * Licensed to the Apache Software Foundation (ASF) under one | |
3 | * or more contributor license agreements. See the NOTICE file | |
4 | * distributed with this work for additional information | |
5 | * regarding copyright ownership. The ASF licenses this file | |
6 | * to you under the Apache License, Version 2.0 (the | |
7 | * "License"); you may not use this file except in compliance | |
8 | * with the License. You may obtain a copy of the License at | |
9 | * | |
10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
11 | * | |
12 | * Unless required by applicable law or agreed to in writing, | |
13 | * software distributed under the License is distributed on an | |
14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
15 | * KIND, either express or implied. See the License for the | |
16 | * specific language governing permissions and limitations | |
17 | * under the License. | |
18 | */ | |
19 | ||
20 | #pragma once | |
21 | ||
22 | #include <arrow/api.h> | |
23 | ||
24 | #include <arrow-glib/basic-data-type.h> | |
25 | ||
26 | GArrowDataType * | |
27 | garrow_data_type_new_raw(std::shared_ptr<arrow::DataType> *arrow_data_type); | |
28 | std::shared_ptr<arrow::DataType> | |
29 | garrow_data_type_get_raw(GArrowDataType *data_type); | |
30 | ||
31 | GArrowExtensionDataTypeRegistry * | |
32 | garrow_extension_data_type_registry_new_raw( | |
33 | std::shared_ptr<arrow::ExtensionTypeRegistry> *arrow_registry); | |
34 | std::shared_ptr<arrow::ExtensionTypeRegistry> | |
35 | garrow_extension_data_type_registry_get_raw( | |
36 | GArrowExtensionDataTypeRegistry *registry); | |
37 | ||
38 | namespace garrow { | |
39 | class GExtensionType : public arrow::ExtensionType { | |
40 | public: | |
41 | explicit GExtensionType(GArrowExtensionDataType *garrow_data_type); | |
42 | ~GExtensionType(); | |
43 | ||
44 | GArrowExtensionDataType * | |
45 | garrow_data_type() const; | |
46 | ||
47 | GType | |
48 | array_gtype() const; | |
49 | ||
50 | std::string extension_name() const override; | |
51 | ||
52 | bool ExtensionEquals(const arrow::ExtensionType& other) const override; | |
53 | ||
54 | std::shared_ptr<arrow::Array> | |
55 | MakeArray(std::shared_ptr<arrow::ArrayData> data) const override; | |
56 | ||
57 | arrow::Result<std::shared_ptr<arrow::DataType>> | |
58 | Deserialize(std::shared_ptr<arrow::DataType> storage_data_type, | |
59 | const std::string& serialized_data) const override; | |
60 | ||
61 | std::string | |
62 | Serialize() const override; | |
63 | ||
64 | private: | |
65 | GArrowExtensionDataType *garrow_data_type_; | |
66 | }; | |
67 | } |