mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
Move ParseSink
to its own header
We will soon add a new implemenation so the one for NARs in `archive.cc` isn't the only one. Co-Authored-By: Matthew Bauer <mjbauer95@gmail.com> Co-Authored-By: Carlo Nucera <carlo.nucera@protonmail.com>
This commit is contained in:
parent
39ba81a4eb
commit
9d6114313b
2 changed files with 26 additions and 16 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "types.hh"
|
#include "types.hh"
|
||||||
#include "serialise.hh"
|
#include "serialise.hh"
|
||||||
|
#include "fs-sink.hh"
|
||||||
|
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
@ -72,22 +73,6 @@ time_t dumpPathAndGetMtime(const Path & path, Sink & sink,
|
||||||
*/
|
*/
|
||||||
void dumpString(std::string_view s, Sink & sink);
|
void dumpString(std::string_view s, Sink & sink);
|
||||||
|
|
||||||
/**
|
|
||||||
* \todo Fix this API, it sucks.
|
|
||||||
*/
|
|
||||||
struct ParseSink
|
|
||||||
{
|
|
||||||
virtual void createDirectory(const Path & path) { };
|
|
||||||
|
|
||||||
virtual void createRegularFile(const Path & path) { };
|
|
||||||
virtual void closeRegularFile() { };
|
|
||||||
virtual void isExecutable() { };
|
|
||||||
virtual void preallocateContents(uint64_t size) { };
|
|
||||||
virtual void receiveContents(std::string_view data) { };
|
|
||||||
|
|
||||||
virtual void createSymlink(const Path & path, const std::string & target) { };
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If the NAR archive contains a single file at top-level, then save
|
* If the NAR archive contains a single file at top-level, then save
|
||||||
* the contents of the file to `s`. Otherwise barf.
|
* the contents of the file to `s`. Otherwise barf.
|
||||||
|
|
25
src/libutil/fs-sink.hh
Normal file
25
src/libutil/fs-sink.hh
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#pragma once
|
||||||
|
///@file
|
||||||
|
|
||||||
|
#include "types.hh"
|
||||||
|
#include "serialise.hh"
|
||||||
|
|
||||||
|
namespace nix {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \todo Fix this API, it sucks.
|
||||||
|
*/
|
||||||
|
struct ParseSink
|
||||||
|
{
|
||||||
|
virtual void createDirectory(const Path & path) { };
|
||||||
|
|
||||||
|
virtual void createRegularFile(const Path & path) { };
|
||||||
|
virtual void closeRegularFile() { };
|
||||||
|
virtual void isExecutable() { };
|
||||||
|
virtual void preallocateContents(uint64_t size) { };
|
||||||
|
virtual void receiveContents(std::string_view data) { };
|
||||||
|
|
||||||
|
virtual void createSymlink(const Path & path, const std::string & target) { };
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue