Title: Require Namespace Person responsible: Joe McMullin (jmcmulli@nrao.edu) Originator of proposal: David DeBonis (ddebonis@nrao.edu) Exploders targeted: aips2-developers Time table: Date of issues: 2004 Jun 12 Done Comments due: 2004 Jun 18 Done Revised proposal: 2004 Jun 21 Done Final comments due: 2004 Jun 25 Done Decision date: 2004 Jul 1 Done Implementation 2004 Sep 11 Statement of goals: ---------------------------- Add one namespace ("casa" - common astronomy software application) to the AIPS++ code tree (it is suggested, yet not within the scope of this change proposal, that a namespace be given for each consortia package). Background: ------------------ As we move toward integrating AIPS++ with other C++ based packages (i.e. ACS), the AIPS++ libraries need to add a namespace to avoid naming conflicts with other packages. Summary: --------------- Adopt the global namespaces casa. All aips++ header files would contain the "namespace casa" (it is suggested, yet not within the scope of this change proposal, that all consortia packages will have "namespace XXX", where XXX is the name of the consortia package, i.e. atnf). Expected Impact: -------------------------- All header files within the aips directory will have to be modified to incorporate namespace casa { ... } For this change proposal, we will write a script to add "namespace casa { ... }" to all aips++ header and source files. The test directories will be treated as outside the casa namespace and will be processed in the same fashion as consortia packages (see explanation below). Though the consortia packages may wish to exclude "using namespace casa" from some of their source files, it is outside the scope of this change proposal to address (it wouldn't be feasible to manually diagnose whether to use namespace scoping rather than including the complete namespace for every file). For this reason, (within source files) full namespace inclusion will be used. The consortia packages header files will need to be manually changed to scope (casa::) any items referenced that are within the casa namespace in order to avoid namespace inclusion (using namespace casa) within header files. Just as in the doxygen change proposal, I believe that a code freeze (of less than half a day) should occur once the script has been refined and thoroughly tested. The C++ source and header templates and the code review document will need to be modified to add the namespace and using statements.