19
19
#ifndef __CNamespaceInfo_h__
20
20
#define __CNamespaceInfo_h__
23
// knows whether it is an alias or an original namespace
23
* Semantic information about a namespace. */
25
25
#include "Puma/CStructure.h"
31
* Representation of a C++ 'namespace'.
32
* \see Puma::CNamespaceInfo */
34
/** \class CNamespaceInfo CNamespaceInfo.h Puma/infos/CNamespaceInfo.h
35
* A CNamespaceInfo object represents a C++ 'namespace'. There are two
36
* kinds of namespaces, i.e. original namespaces and namespace aliases. */
30
/** \class CNamespaceInfo CNamespaceInfo.h Puma/CNamespaceInfo.h
31
* Semantic information about a user-defined namespace.
32
* There are two kinds of namespaces, original namespaces and
33
* namespace aliases. */
37
34
class CNamespaceInfo : public CStructure {
39
36
bool _aroundInstantiation;
42
/** This constructor is to be used by classes inherited from
43
* CNamespaceInfo. It makes it possible to set another object id
44
* than \c NAMESPACE_INFO for abstractions not representing a
46
* \param id The object id to be used instead of \c NAMESPACE_INFO. */
40
* \param id The object type. */
47
41
CNamespaceInfo (ObjectId id);
50
/** Create a new namespace info. */
52
/** Destroy the namespace info. If the object id is
53
* \c NAMESPACE_INFO, Puma::CObjectInfo::CleanUp() is called. */
46
/** Destructor. If the object type is CObjectInfo::NAMESPACE_INFO,
47
* then CObjectInfo::CleanUp() is called. */
54
48
~CNamespaceInfo ();
56
/** Return \e true if this is a namespace alias. */
50
/** Check if this is a namespace alias. */
57
51
bool isAlias () const;
58
52
/** Set whether this is a namespace alias.
59
53
* \param v \e true if it is a namespace alias. */
60
54
void isAlias (bool v);
62
/** Return \e true if this is a special internal namespace
56
/** Check if this is a special internal namespace
63
57
* around template instantiations. */
64
58
bool aroundInstantiation () const;
65
59
/** Set whether this is a special internal namespace around