Files
scylladb/redis/abstract_command.hh
Avi Kivity fcb8d040e8 treewide: use Software Package Data Exchange (SPDX) license identifiers
Instead of lengthy blurbs, switch to single-line, machine-readable
standardized (https://spdx.dev) license identifiers. The Linux kernel
switched long ago, so there is strong precedent.

Three cases are handled: AGPL-only, Apache-only, and dual licensed.
For the latter case, I chose (AGPL-3.0-or-later and Apache-2.0),
reasoning that our changes are extensive enough to apply our license.

The changes we applied mechanically with a script, except to
licenses/README.md.

Closes #9937
2022-01-18 12:15:18 +01:00

48 lines
996 B
C++

/*
* Copyright (C) 2019 pengjian.uestc @ gmail.com
*/
/*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#pragma once
#include "bytes.hh"
#include "seastar/core/future.hh"
#include "seastar/core/sstring.hh"
#include "redis/request.hh"
#include "redis/reply.hh"
#include "db/consistency_level_type.hh"
#include "db/timeout_clock.hh"
#include "db/system_keyspace.hh"
#include "keys.hh"
#include "timestamp.hh"
#include <unordered_map>
class service_permit;
namespace service {
class storage_proxy;
}
namespace redis {
class redis_options;
class redis_message;
class abstract_command : public enable_shared_from_this<abstract_command> {
protected:
bytes _name;
public:
abstract_command(bytes&& name)
: _name(std::move(name))
{
}
virtual ~abstract_command() {};
virtual future<redis_message> execute(service::storage_proxy&, redis::redis_options&, service_permit permit) = 0;
const bytes& name() const { return _name; }
};
} // end of redis namespace