2015-02-26 15:02:31 +00:00
|
|
|
|
2015-03-23 21:03:14 +00:00
|
|
|
#ifndef ENUMVALUES_HH
|
|
|
|
#define ENUMVALUES_HH
|
2015-02-26 15:02:31 +00:00
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
#include <utility>
|
|
|
|
|
|
|
|
#include "ConstructValues.hh"
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
EnumValues holds information describing a class found with ICG. The
|
|
|
|
information includes the name and location of the class, properties of the
|
|
|
|
class, and a vector list of the member data contained in the class.
|
|
|
|
|
|
|
|
The class also provides print routines for each function in the io_src.
|
|
|
|
|
|
|
|
@author Alexander S. Lin
|
|
|
|
|
|
|
|
@date July 2012
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
class EnumValues : public ConstructValues {
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
typedef std::pair< std::string , long long > NameValuePair ;
|
|
|
|
|
|
|
|
EnumValues() ;
|
|
|
|
|
|
|
|
void addEnum(std::string in_name , long long in_val) ;
|
|
|
|
|
|
|
|
typedef std::vector< NameValuePair >::iterator NameValueIterator ;
|
|
|
|
NameValueIterator begin() { return enum_values.begin() ; } ;
|
|
|
|
NameValueIterator end() { return enum_values.end() ; } ;
|
|
|
|
|
|
|
|
friend std::ostream & operator << (std::ostream & os , EnumValues & ev ) ;
|
|
|
|
|
|
|
|
void setHasDefinition( bool in ) ;
|
|
|
|
bool getHasDefinition() ;
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
/** List of enums and their values */
|
|
|
|
std::vector< NameValuePair > enum_values ;
|
|
|
|
|
|
|
|
bool has_definition ;
|
|
|
|
|
|
|
|
} ;
|
|
|
|
|
|
|
|
#endif
|