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

# Content
1 // 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 _for (unsigned, type, TYPE_bool, TYPE_ext_String + 1) enumeration.InsertLast(Type(type));
14 }
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 ext::Vector<DataType>::ConstIterator found(ext::FindFirstAll(enumeration, string));
26
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 default:
37 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 return "unsigned long";
52 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