diff options
author | Shea Levy <shea@shealevy.com> | 2016-09-12T12·03-0400 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2016-09-12T12·03-0400 |
commit | ab31f9986c68f575d902582ed3e176b777cb49e1 (patch) | |
tree | a82953257ecca95de16417bbd736054e03caf9ea /src/libstore/ssh-store.cc | |
parent | 584f8a62de117ade154ec8208d939dc194782936 (diff) |
Inline ssh-store.hh into ssh-store.cc
Diffstat (limited to 'src/libstore/ssh-store.cc')
-rw-r--r-- | src/libstore/ssh-store.cc | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/libstore/ssh-store.cc b/src/libstore/ssh-store.cc index e1eb76659167..05992bb49d6e 100644 --- a/src/libstore/ssh-store.cc +++ b/src/libstore/ssh-store.cc @@ -1,4 +1,5 @@ -#include "ssh-store.hh" +#include "store-api.hh" +#include "remote-store.hh" #include "remote-fs-accessor.hh" #include "archive.hh" #include "worker-protocol.hh" @@ -6,6 +7,38 @@ namespace nix { +class SSHStore : public RemoteStore +{ +public: + + SSHStore(string uri, const Params & params, size_t maxConnections = std::numeric_limits<size_t>::max()); + + std::string getUri() override; + + void narFromPath(const Path & path, Sink & sink) override; + + ref<FSAccessor> getFSAccessor() override; + +private: + + struct Connection : RemoteStore::Connection + { + Pid sshPid; + AutoCloseFD out; + AutoCloseFD in; + }; + + ref<RemoteStore::Connection> openConnection() override; + + AutoDelete tmpDir; + + Path socketPath; + + Pid sshMaster; + + string uri; +}; + SSHStore::SSHStore(string uri, const Params & params, size_t maxConnections) : Store(params) , RemoteStore(params, maxConnections) |