~logan/ubuntu/quantal/cadabra/fix-for-1030273

« back to all changes in this revision

Viewing changes to src/props.hh

  • Committer: Bazaar Package Importer
  • Author(s): Iulian Udrea
  • Date: 2010-05-04 17:03:02 UTC
  • mfrom: (1.1.2 upstream) (0.3.7 maverick)
  • Revision ID: james.westby@ubuntu.com-20100504170302-ce6yx4wkbqg5sbzw
* New upstream release.
* debian/control:
  - Remove Gürkan Sengün <gurkan@phys.ethz.ch> from Uploaders (thanks for
  all your work Gürkan).
  - Add myself as a co-maintainer of the package.
  - Add DM-Upload-Allowed field.
  - Add new homepage.
  - Add libcairomm-1.0-dev to Build-Depends in order to fix FTBFS.
    + error: cairommconfig.h: No such file or directory (see bug#579772
    for more details).
* Add myself to copyright.
* debian/rules: merge rm -f with dh_clean.

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
                kvlist_t keyvals;
68
68
};
69
69
 
 
70
/// Base class for all properties, handling argument parsing and defining the
 
71
/// interface.
70
72
class property_base {
71
73
        public:
72
 
//              typedef std::multimap<std::string, exptree::iterator>     keyval_t;
73
 
//              typedef std::pair<keyval_t::iterator, keyval_t::iterator> keyval_range_t;
74
 
//              typedef std::multimap<std::string, exptree::iterator>     keyval_t;
75
 
//              typedef std::pair<keyval_t::iterator, keyval_t::iterator> keyval_range_t;
76
 
 
77
74
                virtual ~property_base() {};
78
75
                virtual bool        core_parse(keyval_t&);
79
76
                virtual bool        parse(exptree&, exptree::iterator pat, exptree::iterator prop, keyval_t& keyvals);
94
91
                bool                parse_one_argument(exptree::iterator arg, keyval_t& keyvals);
95
92
};
96
93
 
 
94
/// Placeholder.
 
95
/// \bug Should be merged with property_base.
97
96
class property : public property_base {
98
97
        public:
99
98
};
140
139
class properties {
141
140
        public:
142
141
                // Registering property types.
143
 
                typedef std::map<std::string, property_base* (*)()> registered_property_map_t;
 
142
                class registered_property_map_t {
 
143
                        public:
 
144
                                ~registered_property_map_t();
 
145
 
 
146
                                typedef std::map<std::string, property_base* (*)()> internal_property_map_t;
 
147
                                typedef internal_property_map_t::iterator iterator;
 
148
 
 
149
                                internal_property_map_t store;
 
150
                };
144
151
 
145
152
                static void                          register_property(property_base* (*)());
146
153
                static void                          register_properties();
147
 
                static  registered_property_map_t    registered_properties;
 
154
                static registered_property_map_t     registered_properties;
148
155
 
149
156
                // Registering properties.
150
157
                // When inserting a property or list_property, ownership of the
514
521
                virtual match_t equals(const property_base *) const;
515
522
                
516
523
                std::string set_name, parent_name;
517
 
                bool        position_free;
 
524
                enum position_t { free, fixed, independent } position_type;
518
525
                exptree     values;
519
526
};
520
527