5 #ifndef VIL_NITF2_FIELD_SEQUENCE_H 6 #define VIL_NITF2_FIELD_SEQUENCE_H 12 # include <vcl_msvc_warnings.h> 42 bool get_value(std::string tag,
int& out_value)
const;
43 bool get_value(std::string tag,
double& out_value)
const;
44 bool get_value(std::string tag,
char& out_value)
const;
45 bool get_value(std::string tag,
void*& out_value)
const;
46 bool get_value(std::string tag, std::string& out_value)
const;
61 int& out_value,
bool ignore_extra_indexes =
false)
const;
63 double& out_value,
bool ignore_extra_indexes =
false)
const;
65 char& out_value,
bool ignore_extra_indexes =
false)
const;
67 void*& out_value,
bool ignore_extra_indexes =
false)
const;
69 std::string& out_value,
bool ignore_extra_indexes =
false)
const;
76 vil_nitf2_long& out_value,
bool ignore_extra_indexes =
false)
const;
86 std::vector<int>& out_values,
bool clear_out_values =
true)
const;
88 std::vector<double>& out_values,
bool clear_out_values =
true)
const;
90 std::vector<char>& out_values,
bool clear_out_values =
true)
const;
92 std::vector<void*>& out_values,
bool clear_out_values =
true)
const;
94 std::vector<std::string>& out_values,
bool clear_out_values =
true)
const;
96 std::vector<vil_nitf2_location*>& out_values,
bool clear_out_values =
true)
const;
98 std::vector<vil_nitf2_date_time>& out_values,
bool clear_out_values =
true)
const;
101 std::vector<vil_nitf2_long>& out_values,
bool clear_out_values =
true)
const;
106 bool get_values(std::string tag, std::vector<int>& out_values)
const;
107 bool get_values(std::string tag, std::vector<double>& out_values)
const;
108 bool get_values(std::string tag, std::vector<char>& out_values)
const;
109 bool get_values(std::string tag, std::vector<void*>& out_values)
const;
110 bool get_values(std::string tag, std::vector<std::string>& out_values)
const;
111 bool get_values(std::string tag, std::vector<vil_nitf2_location*>& out_values)
const;
112 bool get_values(std::string tag, std::vector<vil_nitf2_date_time>& out_values)
const;
114 bool get_values(std::string tag, std::vector<vil_nitf2_long>& out_values)
const;
117 #if 0 //Not yet implemented. 119 bool set_value(std::string tag,
int value) {
return false; }
164 typedef std::map<std::string, vil_nitf2_field*>
field_map;
173 #endif // VIL_NITF2_FIELD_SEQUENCE_H virtual ~vil_nitf2_field_sequence()
vxl_int_32 vil_nitf2_long
bool read(vil_nitf2_istream &input, const vil_nitf2_field_definitions *field_defs=nullptr, const vil_nitf2_index_vector &indexes=vil_nitf2_index_vector())
bool create_array_fields(const vil_nitf2_field_definitions *field_defs, int num_dimensions)
void set_array_fields_dimension(const vil_nitf2_field_definitions *field_defs, const vil_nitf2_index_vector &index, int repeat_count)
vil_nitf2_field_definition * find_field_definition(const std::string &tag)
virtual bool write(vil_nitf2_ostream &, const vil_nitf2_field_definitions *field_defs=nullptr, vil_nitf2_index_vector indexes=vil_nitf2_index_vector())
Stream interface for VIL image loaders.
std::vector< vil_nitf2_field * > fields_vector
std::map< std::string, vil_nitf2_field * > field_map
vil_nitf2_field * get_field(const std::string &tag) const
bool get_values(std::string tag, const vil_nitf2_index_vector &indexes, std::vector< int > &out_values, bool clear_out_values=true) const
const vil_nitf2_field_definitions * m_field_definitions
void insert_field(const std::string &str, vil_nitf2_field *field)
bool get_value(std::string tag, int &out_value) const
vil_nitf2_field_sequence(const vil_nitf2_field_definitions &field_definitions)
virtual vil_nitf2_field::field_tree * get_tree(vil_nitf2_field::field_tree *tr=nullptr) const