1
0
Fork 0
arangodb/arangod/RestHandler/RestAnalyzerHandler.h

69 lines
2.1 KiB
C++

////////////////////////////////////////////////////////////////////////////////
/// DISCLAIMER
///
/// Copyright 2019 ArangoDB GmbH, Cologne, Germany
///
/// Licensed 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.
///
/// Copyright holder is ArangoDB GmbH, Cologne, Germany
///
/// @author Andrey Abramov
/// @author Vasiliy Nabatchikov
////////////////////////////////////////////////////////////////////////////////
#ifndef ARANGOD_REST_HANDLER_REST_ANALYZER_HANDLER_H
#define ARANGOD_REST_HANDLER_REST_ANALYZER_HANDLER_H 1
#include "RestHandler/RestVocbaseBaseHandler.h"
namespace arangodb {
namespace iresearch {
class IResearchAnalyzerFeature; // forward declaration
class RestAnalyzerHandler: public RestVocbaseBaseHandler {
public:
// @note RestHandlerFactory::createHandler(...) passes raw pointers for
// request/response to RestHandlerCreator::createNoData(...)
RestAnalyzerHandler( // constructor
arangodb::GeneralRequest* request, // request
arangodb::GeneralResponse* response // response
);
virtual arangodb::RestStatus execute() override;
virtual arangodb::RequestLane lane() const override {
return arangodb::RequestLane::CLIENT_SLOW;
}
virtual char const* name() const override { return "RestAnalyzerHandler"; }
private:
void createAnalyzer(IResearchAnalyzerFeature& analyzers);
void getAnalyzer(
IResearchAnalyzerFeature& analyzers,
std::string const& requestedName
);
void getAnalyzers(IResearchAnalyzerFeature& analyzers);
void removeAnalyzer(
IResearchAnalyzerFeature& analyzers,
std::string const& requestedName,
bool force
);
};
} // iresearch
} // arangodb
#endif