Graphite  Version 3
An experimental 3D geometry processing program
meta_member.h
Go to the documentation of this file.
1 /*
2  * GXML/Graphite: Geometry and Graphics Programming Library + Utilities
3  * Copyright (C) 2000 Bruno Levy
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  * If you modify this software, you should include a notice giving the
20  * name of the person performing the modification, the date of modification,
21  * and the reason for such modification.
22  *
23  * Contact: Bruno Levy
24  *
25  * levy@loria.fr
26  *
27  * ISA Project
28  * LORIA, INRIA Lorraine,
29  * Campus Scientifique, BP 239
30  * 54506 VANDOEUVRE LES NANCY CEDEX
31  * FRANCE
32  *
33  * Note that the GNU General Public License does not permit incorporating
34  * the Software into proprietary programs.
35  */
36 
37 #ifndef H_OGF_META_MEMBERS_MEMBER_H
38 #define H_OGF_META_MEMBERS_MEMBER_H
39 
40 #include <OGF/gom/common/common.h>
42 #include <string>
43 
49 namespace OGF {
50 
51  class MetaClass ;
52 
56  gom_class GOM_API MetaMember : public MetaInformation {
57  public:
68  MetaMember(const std::string& name, MetaClass* container) ;
69 
73  ~MetaMember() override;
74 
79  const std::string& name() const {
80  return name_ ;
81  }
82 
90  virtual void pre_delete();
91 
92  gom_slots:
97  MetaClass* container_meta_class() const {
98  return container_ ;
99  }
100 
101  gom_properties:
106  const std::string& get_name() const {
107  return name_;
108  }
109 
110  private:
111  std::string name_ ;
112  MetaClass* container_ ;
113  } ;
114 
119 
120 }
121 #endif
122 
A smart pointer with reference-counted copy semantics.
Definition: smart_pointer.h:76
The representation of a class in the Meta repository.
Definition: meta_class.h:64
Base class for everything that resides in the Meta repository.
Definition: meta_type.h:160
The base class for class members in the Meta repository.
Definition: meta_member.h:56
virtual void pre_delete()
Removes all variables that use the meta type system before deleting.
~MetaMember() override
MetaMember destructor.
const std::string & name() const
Gets the name of this MetaMember.
Definition: meta_member.h:79
MetaMember(const std::string &name, MetaClass *container)
MetaMember constructor.
Base class for meta informations.
Global Graphite namespace.
Definition: common.h:76
SmartPointer< MetaMember > MetaMember_var
Automatic reference-counted pointer to a MetaMember.
Definition: meta_member.h:118
Definitions common to all include files in the gom library.