Impala
Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
external-data-source-executor.h
Go to the documentation of this file.
1 // Copyright 2014 Cloudera Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef IMPALA_EXEC_EXTERNAL_DATA_SOURCE_EXECUTOR_H
16 #define IMPALA_EXEC_EXTERNAL_DATA_SOURCE_EXECUTOR_H
17 
18 #include <jni.h>
19 #include <string>
20 
21 #include "common/status.h"
22 
23 #include "gen-cpp/ExternalDataSource_types.h"
24 
25 namespace impala {
26 
31  public:
33  : is_initialized_(false), executor_class_(NULL), executor_(NULL) {
34  };
35 
37 
41  Status Init(const std::string& jar_path, const std::string& class_name,
42  const std::string& api_version);
43 
45  Status Open(const impala::extdatasource::TOpenParams& params,
46  impala::extdatasource::TOpenResult* result);
47 
49  Status GetNext(const impala::extdatasource::TGetNextParams& params,
50  impala::extdatasource::TGetNextResult* result);
51 
55  Status Close(const impala::extdatasource::TCloseParams& params,
56  impala::extdatasource::TCloseResult* result);
57 
58  private:
59  bool is_initialized_; // Set true in Init() to ensure the class is initialized.
60 
63 
65  jobject executor_;
66  jmethodID ctor_;
67  jmethodID open_id_; // ExternalDataSourceExecutor.open()
68  jmethodID get_next_id_; // ExternalDataSourceExecutor.getNext()
69  jmethodID close_id_; // ExternalDataSourceExecutor.close()
70 };
71 
72 }
73 
74 #endif
Status Init(const std::string &jar_path, const std::string &class_name, const std::string &api_version)
jobject executor_
Instance of com.cloudera.impala.extdatasource.ExternalDataSourceExecutor.
jclass executor_class_
Class reference for com.cloudera.impala.extdatasource.ExternalDataSourceExecutor. ...
Status Open(const impala::extdatasource::TOpenParams &params, impala::extdatasource::TOpenResult *result)
Calls ExternalDataSource.open()
Status Close(const impala::extdatasource::TCloseParams &params, impala::extdatasource::TCloseResult *result)
Status GetNext(const impala::extdatasource::TGetNextParams &params, impala::extdatasource::TGetNextResult *result)
Calls ExternalDataSource.getNext()