File PlannerClient.h

namespace faabric
namespace planner

Typedefs

typedef std::promise<std::shared_ptr<faabric::Message>> MessageResultPromise
typedef std::shared_ptr<MessageResultPromise> MessageResultPromisePtr
class KeepAliveThread : public faabric::util::PeriodicBackgroundThread

Public Functions

virtual void doWork() override
void setRequest(std::shared_ptr<RegisterHostRequest> thisHostReqIn)

Public Members

std::shared_ptr<RegisterHostRequest> thisHostReq = nullptr

Private Members

std::shared_mutex keepAliveThreadMx
struct PlannerCache

Public Members

std::unordered_map<uint32_t, MessageResultPromisePtr> plannerResults
std::set<std::string> pushedSnapshots
class PlannerClient : public faabric::transport::MessageEndpointClient

Public Functions

PlannerClient()
PlannerClient(const std::string &plannerIp)
void ping()
void clearCache()
std::vector<Host> getAvailableHosts()
int registerHost(std::shared_ptr<RegisterHostRequest> req)
void removeHost(std::shared_ptr<RemoveHostRequest> req)
void setMessageResult(std::shared_ptr<faabric::Message> msg)
void setMessageResultLocally(std::shared_ptr<faabric::Message> msg)
faabric::Message getMessageResult(int appId, int msgId, int timeoutMs)
faabric::Message getMessageResult(const faabric::Message &msg, int timeoutMs)
std::shared_ptr<faabric::BatchExecuteRequestStatus> getBatchResults(std::shared_ptr<faabric::BatchExecuteRequest> req)
faabric::batch_scheduler::SchedulingDecision callFunctions(std::shared_ptr<faabric::BatchExecuteRequest> req)
faabric::batch_scheduler::SchedulingDecision getSchedulingDecision(std::shared_ptr<faabric::BatchExecuteRequest> req)
int getNumMigrations()
void preloadSchedulingDecision(std::shared_ptr<faabric::batch_scheduler::SchedulingDecision> preloadDec)

Private Functions

faabric::Message doGetMessageResult(std::shared_ptr<faabric::Message> msgPtr, int timeoutMs)
std::shared_ptr<faabric::Message> getMessageResultFromPlanner(std::shared_ptr<faabric::Message> msg)

Private Members

std::mutex plannerCacheMx
PlannerCache cache
std::shared_ptr<faabric::snapshot::SnapshotClient> snapshotClient