#include <dm4io.h>
Public Member Functions | |
TagTable () | |
~TagTable () | |
void | add (const string &name, const string &value) |
void | add_data (char *data) |
string | get_string (const string &name) |
int | get_int (const string &name) |
float | get_float (const string &name) |
double | get_double (const string &name) |
int | get_xsize () const |
int | get_ysize () const |
int | get_datatype () const |
char * | get_data () const |
void | dump () const |
template<class T> | |
void | become_host_endian (T *data, int n=1) |
void | set_endian (bool big_endian) |
Private Member Functions | |
void | set_thumb_index (int i) |
Private Attributes | |
int | img_index |
bool | is_big_endian |
std::map< string, string > | tags |
vector< int > | x_list |
vector< int > | y_list |
vector< int > | datatype_list |
vector< char * > | data_list |
Static Private Attributes | |
const char * | IMAGE_WIDTH_TAG = "Dimensions #0" |
const char * | IMAGE_HEIGHT_TAG = "Dimensions #1" |
const char * | IMAGE_DATATYPE_TAG = "DataType" |
const char * | IMAGE_THUMB_INDEX_TAG = "ImageIndex" |
|
Definition at line 49 of file dm4io.cpp. 00050 : img_index(0), is_big_endian(true) 00051 { 00052 }
|
|
Definition at line 54 of file dm4io.cpp. References data_list. 00055 { 00056 for (unsigned int i = 0; i < data_list.size(); i++) { 00057 if (data_list[i]) { 00058 delete[]data_list[i]; 00059 data_list[i] = 0; 00060 } 00061 } 00062 }
|
|
Definition at line 65 of file dm4io.cpp. References datatype_list, set_thumb_index(), tags, x_list, and y_list. Referenced by EMAN::GatanDM4::TagData::read_any(), EMAN::GatanDM4::TagData::read_array_data(), and EMAN::GatanDM4::TagData::read_native(). 00066 { 00067 const char *value_str = value.c_str(); 00068 00069 if (name == IMAGE_WIDTH_TAG) { 00070 x_list.push_back(atoi(value_str)); 00071 } 00072 else if (name == IMAGE_HEIGHT_TAG) { 00073 y_list.push_back(atoi(value_str)); 00074 } 00075 else if (name == IMAGE_DATATYPE_TAG) { 00076 datatype_list.push_back(atoi(value_str)); 00077 } 00078 else if (name == IMAGE_THUMB_INDEX_TAG) { 00079 set_thumb_index(atoi(value_str)); 00080 } 00081 else { 00082 tags[name] = value; 00083 } 00084 }
|
|
Definition at line 86 of file dm4io.cpp. References data, data_list, and NullPointerException. Referenced by EMAN::GatanDM4::TagData::read_array_data(). 00087 { 00088 if (!data) { 00089 throw NullPointerException("DM4 data is NULL"); 00090 } 00091 else { 00092 data_list.push_back(data); 00093 } 00094 }
|
|
Definition at line 66 of file dm4io.h. References data. Referenced by EMAN::GatanDM4::TagData::read_array_data(), EMAN::GatanDM4::TagData::read_native(), and EMAN::GatanDM4::TagData::read_string(). 00066 { 00067 if (is_big_endian != ByteOrder::is_host_big_endian()) { 00068 ByteOrder::swap_bytes(data, n); 00069 } 00070 }
|
|
Definition at line 116 of file dm4io.cpp. References tags. 00117 { 00118 map < string, string >::const_iterator p; 00119 00120 for (p = tags.begin(); p != tags.end(); p++) { 00121 // LOGDEBUG(" %s: %s", (*p).first.c_str(), (*p).second.c_str()); 00122 printf(" %s: %s\n", (*p).first.c_str(), (*p).second.c_str()); 00123 } 00124 }
|
|
Definition at line 141 of file dm4io.cpp. References data_list. 00142 { 00143 return data_list[img_index]; 00144 }
|
|
Definition at line 136 of file dm4io.cpp. References datatype_list. 00137 { 00138 return datatype_list[img_index]; 00139 }
|
|
Definition at line 111 of file dm4io.cpp. References tags. 00112 {
00113 return atof(tags[name].c_str());
00114 }
|
|
Definition at line 106 of file dm4io.cpp. References tags. 00107 {
00108 return static_cast < float >(atof(tags[name].c_str()));
00109 }
|
|
Definition at line 101 of file dm4io.cpp. References tags. 00102 {
00103 return atoi(tags[name].c_str());
00104 }
|
|
Definition at line 96 of file dm4io.cpp. References tags. 00097 { 00098 return tags[name]; 00099 }
|
|
Definition at line 126 of file dm4io.cpp. References x_list. 00127 { 00128 return x_list[img_index]; 00129 }
|
|
Definition at line 131 of file dm4io.cpp. References y_list. 00132 { 00133 return y_list[img_index]; 00134 }
|
|
Definition at line 72 of file dm4io.h. 00073 { 00074 is_big_endian = big_endian; 00075 }
|
|
Definition at line 146 of file dm4io.cpp. References img_index, and OutofRangeException. Referenced by add(). 00147 { 00148 if (i != 0 && i != 1) { 00149 throw OutofRangeException(0, 1, i, "image index"); 00150 } 00151 else { 00152 if (i == 0) { 00153 img_index = 1; 00154 } 00155 else { 00156 img_index = 0; 00157 } 00158 } 00159 }
|
|
Definition at line 91 of file dm4io.h. Referenced by add_data(), get_data(), and ~TagTable(). |
|
Definition at line 90 of file dm4io.h. Referenced by add(), and get_datatype(). |
|
|
|
|
|
|
|
|
|
Definition at line 85 of file dm4io.h. Referenced by set_thumb_index(). |
|
|
|
Definition at line 87 of file dm4io.h. Referenced by add(), dump(), get_double(), get_float(), get_int(), and get_string(). |
|
Definition at line 88 of file dm4io.h. Referenced by add(), and get_xsize(). |
|
Definition at line 89 of file dm4io.h. Referenced by add(), and get_ysize(). |