sapling/eden/fs/inodes/TopLevelIgnores.h
Eamonn Kent 836600476b Remove unused code for ingesting system and user ignore files
Summary:
This code is no longer necessary since introduction of FileChangeMonitor and
CachedParsedFileMonitor.

Reviewed By: simpkins

Differential Revision: D8915599

fbshipit-source-id: 7871dac1f7985968bd4d04a4dfb42684892a2e72
2018-07-30 19:06:33 -07:00

61 lines
1.8 KiB
C++

/*
* Copyright (c) 2018-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#pragma once
#include "eden/fs/model/git/GitIgnore.h"
#include "eden/fs/model/git/GitIgnoreStack.h"
namespace facebook {
namespace eden {
/**
* Encapsulate the system and user ignore files loaded from configuration files.
* They are created by ServerState and used to populate the DiffState.
*/
class TopLevelIgnores {
public:
/**
* Construct from provided user and system GitIgnore objects.
*/
TopLevelIgnores(GitIgnore userIgnore, GitIgnore systemIgnore)
: systemIgnoreStack_{nullptr, systemIgnore},
userIgnoreStack_{&systemIgnoreStack_, userIgnore} {}
/**
* Construct from user and system gitIgnore file contents.
* Intended for testing purposes.
*/
TopLevelIgnores(
folly::StringPiece systemIgnoreFileContents,
folly::StringPiece userIgnoreFileContents)
: systemIgnoreStack_{nullptr, systemIgnoreFileContents},
userIgnoreStack_{&systemIgnoreStack_, userIgnoreFileContents} {}
TopLevelIgnores(const TopLevelIgnores&) = delete;
TopLevelIgnores(TopLevelIgnores&&) = delete;
TopLevelIgnores& operator=(const TopLevelIgnores&) = delete;
TopLevelIgnores& operator=(TopLevelIgnores&&) = delete;
~TopLevelIgnores() {}
const GitIgnoreStack* getStack() const {
if (!userIgnoreStack_.empty()) {
return &userIgnoreStack_;
}
if (!systemIgnoreStack_.empty()) {
return &systemIgnoreStack_;
}
return nullptr;
}
private:
GitIgnoreStack systemIgnoreStack_;
GitIgnoreStack userIgnoreStack_;
};
} // namespace eden
} // namespace facebook