ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/Represent/DataType.cpp
Revision: 422
Committed: 2005-03-09T19:08:17-08:00 (20 years, 3 months ago) by douglas
File size: 1126 byte(s)
Log Message:
Gah! Menes is going crazy right now!

File Contents

# User Rev Content
1 douglas 380 // Represent
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7     #include "DataType.hpp"
8    
9     const ext::Vector<DataType>& DataType::enumerate()
10     {
11     if (enumeration.IsEmpty())
12     {
13 douglas 422 _for (unsigned, type, TYPE_bool, TYPE_ext_String + 1) enumeration.InsertLast(Type(type));
14 douglas 380 }
15    
16     return enumeration;
17     }
18    
19     ext::Vector<DataType> DataType::enumeration;
20    
21     DataType& DataType::operator=(const ext::String& string)
22     {
23     if (enumeration.IsEmpty()) enumerate();
24    
25 douglas 422 ext::Vector<DataType>::ConstIterator found(ext::FindFirstAll(enumeration, string));
26 douglas 380
27     if (found != enumeration.End()) type = *found;
28    
29     return *this;
30     }
31    
32     DataType::operator ext::String() const
33     {
34     switch (type)
35     {
36 douglas 391 default:
37 douglas 380 return "bool";
38     case TYPE_char:
39     return "char";
40     case TYPE_short:
41     return "short";
42     case TYPE_unsigned_short:
43     return "unsigned short";
44     case TYPE_int:
45     return "int";
46     case TYPE_unsigned_int:
47     return "unsigned int";
48     case TYPE_long:
49     return "long";
50     case TYPE_unsigned_long:
51 douglas 387 return "unsigned long";
52 douglas 380 case TYPE_float:
53     return "float";
54     case TYPE_double:
55     return "double";
56     case TYPE_std_string:
57     return "std::string";
58     case TYPE_ext_String:
59     return "ext::String";
60     }
61     }

Properties

Name Value
svn:eol-style native
svn:keywords Id