mirror of
https://github.com/NixOS/nix.git
synced 2025-11-21 09:49:36 +01:00
Factor out the unix domain socket-specific code from RemoteStore
This commit is contained in:
parent
7d4ccd9b17
commit
0f39633290
5 changed files with 69 additions and 36 deletions
|
|
@ -18,7 +18,7 @@ template<typename T> class Pool;
|
|||
|
||||
/* FIXME: RemoteStore is a misnomer - should be something like
|
||||
DaemonStore. */
|
||||
class RemoteStore : public LocalFSStore
|
||||
class RemoteStore : public virtual Store
|
||||
{
|
||||
public:
|
||||
|
||||
|
|
@ -26,8 +26,6 @@ public:
|
|||
|
||||
/* Implementations of abstract store API methods. */
|
||||
|
||||
std::string getUri() override;
|
||||
|
||||
bool isValidPathUncached(const Path & path) override;
|
||||
|
||||
PathSet queryValidPaths(const PathSet & paths) override;
|
||||
|
|
@ -84,11 +82,10 @@ public:
|
|||
|
||||
void addSignatures(const Path & storePath, const StringSet & sigs) override;
|
||||
|
||||
private:
|
||||
protected:
|
||||
|
||||
struct Connection
|
||||
{
|
||||
AutoCloseFD fd;
|
||||
FdSink to;
|
||||
FdSource from;
|
||||
unsigned int daemonVersion;
|
||||
|
|
@ -98,11 +95,33 @@ private:
|
|||
void processStderr(Sink * sink = 0, Source * source = 0);
|
||||
};
|
||||
|
||||
virtual ref<Connection> openConnection() = 0;
|
||||
|
||||
void setOptions(Connection & conn);
|
||||
|
||||
void initConnection(Connection & conn);
|
||||
|
||||
private:
|
||||
|
||||
ref<Pool<Connection>> connections;
|
||||
};
|
||||
|
||||
ref<Connection> openConnection();
|
||||
class UDSRemoteStore : public LocalFSStore, public RemoteStore
|
||||
{
|
||||
public:
|
||||
|
||||
void setOptions(ref<Connection> conn);
|
||||
UDSRemoteStore(const Params & params, size_t maxConnections = std::numeric_limits<size_t>::max());
|
||||
|
||||
std::string getUri() override;
|
||||
|
||||
private:
|
||||
|
||||
struct Connection : RemoteStore::Connection
|
||||
{
|
||||
AutoCloseFD fd;
|
||||
};
|
||||
|
||||
ref<RemoteStore::Connection> openConnection() override;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue