Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- MemoryBufferRef.h - Memory Buffer Reference --------------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. //  This file defines the MemoryBuffer interface.
  10. //
  11. //===----------------------------------------------------------------------===//
  12.  
  13. #ifndef LLVM_SUPPORT_MEMORYBUFFERREF_H
  14. #define LLVM_SUPPORT_MEMORYBUFFERREF_H
  15.  
  16. #include "llvm/ADT/StringRef.h"
  17.  
  18. namespace llvm {
  19.  
  20. class MemoryBuffer;
  21.  
  22. class MemoryBufferRef {
  23.   StringRef Buffer;
  24.   StringRef Identifier;
  25.  
  26. public:
  27.   MemoryBufferRef() = default;
  28.   MemoryBufferRef(const MemoryBuffer &Buffer);
  29.   MemoryBufferRef(StringRef Buffer, StringRef Identifier)
  30.       : Buffer(Buffer), Identifier(Identifier) {}
  31.  
  32.   StringRef getBuffer() const { return Buffer; }
  33.   StringRef getBufferIdentifier() const { return Identifier; }
  34.  
  35.   const char *getBufferStart() const { return Buffer.begin(); }
  36.   const char *getBufferEnd() const { return Buffer.end(); }
  37.   size_t getBufferSize() const { return Buffer.size(); }
  38.  
  39.   /// Check pointer identity (not value) of identifier and data.
  40.   friend bool operator==(const MemoryBufferRef &LHS,
  41.                          const MemoryBufferRef &RHS) {
  42.     return LHS.Buffer.begin() == RHS.Buffer.begin() &&
  43.            LHS.Buffer.end() == RHS.Buffer.end() &&
  44.            LHS.Identifier.begin() == RHS.Identifier.begin() &&
  45.            LHS.Identifier.end() == RHS.Identifier.end();
  46.   }
  47.  
  48.   friend bool operator!=(const MemoryBufferRef &LHS,
  49.                          const MemoryBufferRef &RHS) {
  50.     return !(LHS == RHS);
  51.   }
  52. };
  53.  
  54. } // namespace llvm
  55.  
  56. #endif // LLVM_SUPPORT_MEMORYBUFFERREF_H
  57.