1 //===-- ClangNamespaceDecl.h ------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_ClangNamespaceDecl_h_
11 #define liblldb_ClangNamespaceDecl_h_
13 #include "lldb/lldb-public.h"
14 #include "lldb/Core/ClangForward.h"
16 namespace lldb_private {
18 class ClangNamespaceDecl
21 ClangNamespaceDecl () :
23 m_namespace_decl (NULL)
27 ClangNamespaceDecl (clang::ASTContext *ast, clang::NamespaceDecl *namespace_decl) :
29 m_namespace_decl (namespace_decl)
33 ClangNamespaceDecl (const ClangNamespaceDecl &rhs) :
35 m_namespace_decl (rhs.m_namespace_decl)
39 const ClangNamespaceDecl &
40 operator = (const ClangNamespaceDecl &rhs)
43 m_namespace_decl = rhs.m_namespace_decl;
47 //------------------------------------------------------------------
48 /// Convert to bool operator.
50 /// This allows code to check a ClangNamespaceDecl object to see if
51 /// it contains a valid namespace decl using code such as:
54 /// ClangNamespaceDecl ns_decl(...);
60 /// /b True this object contains a valid namespace decl, \b
62 //------------------------------------------------------------------
65 return m_ast != NULL && m_namespace_decl != NULL;
75 SetASTContext (clang::ASTContext *ast)
80 clang::NamespaceDecl *
81 GetNamespaceDecl () const
83 return m_namespace_decl;
87 SetNamespaceDecl (clang::NamespaceDecl *namespace_decl)
89 m_namespace_decl = namespace_decl;
93 GetQualifiedName () const;
96 clang::ASTContext *m_ast;
97 clang::NamespaceDecl *m_namespace_decl;
101 } // namespace lldb_private
103 #endif // #ifndef liblldb_ClangNamespaceDecl_h_