| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
|
|
| #pragma once |
|
|
| #include "arrow/compute/type_fwd.h" |
| #include "arrow/result.h" |
| #include "arrow/status.h" |
| #include "arrow/type_fwd.h" |
| #include "arrow/util/visibility.h" |
|
|
| namespace arrow { |
| namespace compute { |
|
|
| |
| |
|
|
| |
| |
| class ARROW_EXPORT FunctionOptionsType { |
| public: |
| virtual ~FunctionOptionsType() = default; |
|
|
| virtual const char* type_name() const = 0; |
| virtual std::string Stringify(const FunctionOptions&) const = 0; |
| virtual bool Compare(const FunctionOptions&, const FunctionOptions&) const = 0; |
| virtual Result<std::shared_ptr<Buffer>> Serialize(const FunctionOptions&) const; |
| virtual Result<std::unique_ptr<FunctionOptions>> Deserialize( |
| const Buffer& buffer) const; |
| virtual std::unique_ptr<FunctionOptions> Copy(const FunctionOptions&) const = 0; |
| }; |
|
|
| |
| |
| class ARROW_EXPORT FunctionOptions : public util::EqualityComparable<FunctionOptions> { |
| public: |
| virtual ~FunctionOptions() = default; |
|
|
| const FunctionOptionsType* options_type() const { return options_type_; } |
| const char* type_name() const { return options_type()->type_name(); } |
|
|
| bool Equals(const FunctionOptions& other) const; |
| std::string ToString() const; |
| std::unique_ptr<FunctionOptions> Copy() const; |
| |
| Result<std::shared_ptr<Buffer>> Serialize() const; |
| |
| |
| |
| |
| static Result<std::unique_ptr<FunctionOptions>> Deserialize( |
| const std::string& type_name, const Buffer& buffer); |
|
|
| protected: |
| explicit FunctionOptions(const FunctionOptionsType* type) : options_type_(type) {} |
| const FunctionOptionsType* options_type_; |
| }; |
|
|
| ARROW_EXPORT void PrintTo(const FunctionOptions&, std::ostream*); |
|
|
| |
|
|
| } |
| } |
|
|