NamespaceBuilder.h

Go to the documentation of this file.
00001 // @(#)root/reflex:$Id: NamespaceBuilder.h 29288 2009-07-01 13:03:35Z axel $
00002 // Author: Stefan Roiser 2004
00003 
00004 // Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved.
00005 //
00006 // Permission to use, copy, modify, and distribute this software for any
00007 // purpose is hereby granted without fee, provided that this copyright and
00008 // permissions notice appear in all copies and derivatives.
00009 //
00010 // This software is provided "as is" without express or implied warranty.
00011 
00012 #ifndef Reflex_NamespaceBuilder
00013 #define Reflex_NamespaceBuilder
00014 
00015 // Include files
00016 #include "Reflex/Scope.h"
00017 
00018 
00019 namespace Reflex {
00020 /**
00021  * @class NamespaceBuilder NamespaceBuilder.h Reflex/Builder/NamespaceBuilder.h
00022  * @author Stefan Roiser
00023  * @ingroup RefBld
00024  * @date 30/3/2004
00025  */
00026 class RFLX_API NamespaceBuilder  {
00027 public:
00028    /** constructor */
00029    NamespaceBuilder(const char* nam);
00030 
00031 
00032    /** destructor */
00033    virtual ~NamespaceBuilder() {}
00034 
00035    /** AddProperty will add a PropertyNth
00036     * @param  key the PropertyNth key
00037     * @param  value the value of the PropertyNth
00038     * @return a reference to the building class
00039     */
00040    NamespaceBuilder& AddProperty(const char* key,
00041                                  Any value);
00042    NamespaceBuilder& AddProperty(const char* key,
00043                                  const char* value);
00044 
00045    /**
00046     * ToScope will return the currently being built namespace
00047     * @return namespace currently being built
00048     */
00049    Scope ToScope();
00050 
00051 private:
00052    /** the namespace */
00053    Scope fNamespace;
00054 
00055 };    // class NamespaceBuilder
00056 
00057 } // namespace Reflex
00058 
00059 
00060 #endif // Reflex_NamespaceBuilder

Generated on Tue Jul 5 14:25:48 2011 for ROOT_528-00b_version by  doxygen 1.5.1