/* * 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 /** * GGandivaSelectionVectorMode: * @GGANDIVA_SELECTION_VECTOR_MODE_NONE: Selection vector isn't used. * @GGANDIVA_SELECTION_VECTOR_MODE_UINT16: * #GGandivaUInt16SelectionVector is used. * @GGANDIVA_SELECTION_VECTOR_MODE_UINT32: * #GGandivaUInt32SelectionVector is used. * @GGANDIVA_SELECTION_VECTOR_MODE_UINT64: * #GGandivaUInt64SelectionVector is used. * * They are corresponding to `gandiva::SelectionVector::Mode` values. * * Since: 4.0.0 */ typedef enum { GGANDIVA_SELECTION_VECTOR_MODE_NONE, GGANDIVA_SELECTION_VECTOR_MODE_UINT16, GGANDIVA_SELECTION_VECTOR_MODE_UINT32, GGANDIVA_SELECTION_VECTOR_MODE_UINT64, } GGandivaSelectionVectorMode; #define GGANDIVA_TYPE_SELECTION_VECTOR (ggandiva_selection_vector_get_type()) G_DECLARE_DERIVABLE_TYPE(GGandivaSelectionVector, ggandiva_selection_vector, GGANDIVA, SELECTION_VECTOR, GObject) struct _GGandivaSelectionVectorClass { GObjectClass parent_class; }; GGANDIVA_AVAILABLE_IN_4_0 GGandivaSelectionVectorMode ggandiva_selection_vector_get_mode(GGandivaSelectionVector *selection_vector); GGANDIVA_AVAILABLE_IN_4_0 GArrowArray * ggandiva_selection_vector_to_array(GGandivaSelectionVector *selection_vector); #define GGANDIVA_TYPE_UINT16_SELECTION_VECTOR \ (ggandiva_uint16_selection_vector_get_type()) G_DECLARE_DERIVABLE_TYPE(GGandivaUInt16SelectionVector, ggandiva_uint16_selection_vector, GGANDIVA, UINT16_SELECTION_VECTOR, GGandivaSelectionVector) struct _GGandivaUInt16SelectionVectorClass { GGandivaSelectionVectorClass parent_class; }; GGANDIVA_AVAILABLE_IN_4_0 GGandivaUInt16SelectionVector * ggandiva_uint16_selection_vector_new(gint64 max_slots, GError **error); #define GGANDIVA_TYPE_UINT32_SELECTION_VECTOR \ (ggandiva_uint32_selection_vector_get_type()) G_DECLARE_DERIVABLE_TYPE(GGandivaUInt32SelectionVector, ggandiva_uint32_selection_vector, GGANDIVA, UINT32_SELECTION_VECTOR, GGandivaSelectionVector) struct _GGandivaUInt32SelectionVectorClass { GGandivaSelectionVectorClass parent_class; }; GGANDIVA_AVAILABLE_IN_4_0 GGandivaUInt32SelectionVector * ggandiva_uint32_selection_vector_new(gint64 max_slots, GError **error); #define GGANDIVA_TYPE_UINT64_SELECTION_VECTOR \ (ggandiva_uint64_selection_vector_get_type()) G_DECLARE_DERIVABLE_TYPE(GGandivaUInt64SelectionVector, ggandiva_uint64_selection_vector, GGANDIVA, UINT64_SELECTION_VECTOR, GGandivaSelectionVector) struct _GGandivaUInt64SelectionVectorClass { GGandivaSelectionVectorClass parent_class; }; GGANDIVA_AVAILABLE_IN_4_0 GGandivaUInt64SelectionVector * ggandiva_uint64_selection_vector_new(gint64 max_slots, GError **error); G_END_DECLS