mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.
Patch produced by
for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
99 lines
2.8 KiB
C++
99 lines
2.8 KiB
C++
//===- tapi/Core/Registry.h - TAPI Registry ---------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// The TAPI registry keeps track of the supported file formats.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef TAPI_CORE_REGISTRY_H
|
|
#define TAPI_CORE_REGISTRY_H
|
|
|
|
#include "ArchitectureSet.h"
|
|
#include "File.h"
|
|
#include "LLVM.h"
|
|
#include "Defines.h"
|
|
#include "llvm/BinaryFormat/Magic.h"
|
|
#include "llvm/Support/Error.h"
|
|
#include "llvm/Support/MemoryBuffer.h"
|
|
|
|
using llvm::file_magic;
|
|
using llvm::Error;
|
|
using llvm::Expected;
|
|
|
|
TAPI_NAMESPACE_INTERNAL_BEGIN
|
|
|
|
class Registry;
|
|
|
|
enum class ReadFlags {
|
|
Header,
|
|
Symbols,
|
|
ObjCMetadata,
|
|
All,
|
|
};
|
|
|
|
/// Abstract Reader class - all readers need to inherit from this class and
|
|
/// implement the interface.
|
|
class Reader {
|
|
public:
|
|
virtual ~Reader() = default;
|
|
virtual bool canRead(file_magic fileType, MemoryBufferRef bufferRef,
|
|
FileType types = FileType::All) const = 0;
|
|
virtual Expected<FileType> getFileType(file_magic magic,
|
|
MemoryBufferRef bufferRef) const = 0;
|
|
virtual Expected<std::unique_ptr<File>>
|
|
readFile(std::unique_ptr<MemoryBuffer> memBuffer, ReadFlags readFlags,
|
|
ArchitectureSet arches) const = 0;
|
|
};
|
|
|
|
/// Abstract Writer class - all writers need to inherit from this class and
|
|
/// implement the interface.
|
|
class Writer {
|
|
public:
|
|
virtual ~Writer() = default;
|
|
virtual bool canWrite(const File *file) const = 0;
|
|
virtual Error writeFile(raw_ostream &os, const File *file) const = 0;
|
|
};
|
|
|
|
class Registry {
|
|
public:
|
|
bool canRead(MemoryBufferRef memBuffer, FileType types = FileType::All) const;
|
|
Expected<FileType> getFileType(MemoryBufferRef memBuffer) const;
|
|
bool canWrite(const File *file) const;
|
|
|
|
Expected<std::unique_ptr<File>>
|
|
readFile(std::unique_ptr<MemoryBuffer> memBuffer,
|
|
ReadFlags readFlags = ReadFlags::All,
|
|
ArchitectureSet arches = ArchitectureSet::All()) const;
|
|
Error writeFile(const File *file, const std::string &path) const;
|
|
Error writeFile(raw_ostream &os, const File *file) const;
|
|
|
|
void add(std::unique_ptr<Reader> reader) {
|
|
_readers.emplace_back(std::move(reader));
|
|
}
|
|
|
|
void add(std::unique_ptr<Writer> writer) {
|
|
_writers.emplace_back(std::move(writer));
|
|
}
|
|
|
|
void addBinaryReaders();
|
|
void addYAMLReaders();
|
|
void addYAMLWriters();
|
|
void addDiagnosticReader();
|
|
void addReexportWriters();
|
|
|
|
private:
|
|
std::vector<std::unique_ptr<Reader>> _readers;
|
|
std::vector<std::unique_ptr<Writer>> _writers;
|
|
};
|
|
|
|
TAPI_NAMESPACE_INTERNAL_END
|
|
|
|
#endif // TAPI_CORE_REGISTRY_H
|