aboutsummaryrefslogtreecommitdiffstats
path: root/config/src/vespa/config/frt/frtconfigrequest.h
blob: 4bcab2c63770c73b737337c33a72de6caa91de05 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once

#include <vespa/config/common/configrequest.h>
#include <vespa/config/common/configkey.h>

class FRT_Values;
class FRT_RPCRequest;

namespace config {

class ConfigResponse;
class Connection;

/**
 * Class representing a FRT config request.
 */
class FRTConfigRequest : public ConfigRequest {
public:
    FRTConfigRequest(Connection * connection, const ConfigKey & key);
    ~FRTConfigRequest();

    bool abort() override;
    void setError(int errorCode) override;
    const ConfigKey & getKey() const override;

    FRT_RPCRequest* getRequest() { return _request; }
    virtual std::unique_ptr<ConfigResponse> createResponse(FRT_RPCRequest * request) const = 0;
protected:
    FRT_RPCRequest * _request;
    FRT_Values     & _parameters;
private:
    Connection     * _connection;
    const ConfigKey  _key;
};

}