File StateServer.h

namespace faabric
namespace state

WARNING - key-value objects are shared between threads, BUT hiredis is not thread-safe, so make sure you always retrieve the reference to Redis inline rather than sharing a reference within the class.

class StateServer : public faabric::transport::MessageEndpointServer

Public Functions

explicit StateServer(State &stateIn)

Private Functions

void logOperation(const std::string &op)
virtual void doAsyncRecv(transport::Message &message) override
virtual std::unique_ptr<google::protobuf::Message> doSyncRecv(transport::Message &message) override
std::unique_ptr<google::protobuf::Message> recvSize(std::span<const uint8_t> buffer)
std::unique_ptr<google::protobuf::Message> recvPull(std::span<const uint8_t> buffer)
std::unique_ptr<google::protobuf::Message> recvPush(std::span<const uint8_t> buffer)
std::unique_ptr<google::protobuf::Message> recvAppend(std::span<const uint8_t> buffer)
std::unique_ptr<google::protobuf::Message> recvPullAppended(std::span<const uint8_t> buffer)
std::unique_ptr<google::protobuf::Message> recvClearAppended(std::span<const uint8_t> buffer)
std::unique_ptr<google::protobuf::Message> recvDelete(std::span<const uint8_t> buffer)

Private Members

State &state