vil_nitf2_tagged_record_definition defines a particular tagged record extension (TRE). More...
#include <vil_nitf2_tagged_record_definition.h>
Public Types | |
typedef vcl_map< vcl_string, vil_nitf2_tagged_record_definition * > | tagged_record_definition_map |
Public Member Functions | |
vil_nitf2_tagged_record_definition & | field (vcl_string field_name, vcl_string pretty_name, vil_nitf2_field_formatter *formatter, bool blanks_ok=false, vil_nitf2_field_functor< int > *width_functor=0, vil_nitf2_field_functor< bool > *condition_functor=0, vcl_string units="", vcl_string description="") |
Define a field. Assumes ownership of pointer arguments. | |
vil_nitf2_tagged_record_definition & | repeat (vil_nitf2_field_functor< int > *repeat_functor, vil_nitf2_field_definitions &field_definitions) |
Define a repeat node. Assumes ownership of pointer argument. | |
vil_nitf2_tagged_record_definition & | repeat (vcl_string int_tag, vil_nitf2_field_definitions &field_definitions) |
Convenience overload where repeat count is simply the value of a tag. | |
vil_nitf2_tagged_record_definition & | repeat (int repeat_count, vil_nitf2_field_definitions &field_definitions) |
Convenience overload where repeat count is a fixed value. | |
void | end () |
Declares that definition is finished, preventing further invocations of field() or repeat(). | |
vil_nitf2_field_definition * | find_field (vcl_string name) |
Look up a field definition. | |
~vil_nitf2_tagged_record_definition () | |
const vil_nitf2_field_definitions & | field_definitions () const |
Return field definitions. | |
Static Public Member Functions | |
static vil_nitf2_tagged_record_definition & | define (vcl_string name, vcl_string pretty_name) |
Factory method. Assumes ownership of optional pointer argument. | |
static vil_nitf2_tagged_record_definition * | find (vcl_string name) |
Look up a record definition. | |
static tagged_record_definition_map & | all_definitions () |
All tagged record definitions. | |
static bool | undefine (vcl_string name) |
Undefines a TRE. Returns whether TRE with specified name was found. | |
static void | register_test_tre () |
Registers some TREs for testing. | |
Private Member Functions | |
vil_nitf2_tagged_record_definition (const vil_nitf2_tagged_record_definition &) | |
vil_nitf2_tagged_record_definition & | operator= (const vil_nitf2_tagged_record_definition &) |
vil_nitf2_tagged_record_definition (vcl_string name, vcl_string pretty_name, vil_nitf2_field_definitions *defs=0) | |
Private Attributes | |
vcl_string | m_name |
vcl_string | m_pretty_name |
vil_nitf2_field_definitions * | m_field_definitions |
bool | m_definition_completed |
Friends | |
class | vil_nitf2_tagged_record |
vil_nitf2_tagged_record_definition defines a particular tagged record extension (TRE).
It consists of its name and an ordered list of vil_nitf2_field_definitions. It also defines a static method to look up a TRE definition by name.
The primary goal of this class design to provide a succinct way for the programmer to specify a NITF tagged record definition, which can be used for both reading and writing the record. The definition must support references to values of other fields in the record, which are needed to define conditional and repeating fields. Please see the example definition in method test().
Definition at line 32 of file vil_nitf2_tagged_record_definition.h.
typedef vcl_map<vcl_string, vil_nitf2_tagged_record_definition*> vil_nitf2_tagged_record_definition::tagged_record_definition_map |
Definition at line 84 of file vil_nitf2_tagged_record_definition.h.
vil_nitf2_tagged_record_definition::~vil_nitf2_tagged_record_definition | ( | ) |
Definition at line 111 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition::vil_nitf2_tagged_record_definition | ( | const vil_nitf2_tagged_record_definition & | ) | [private] |
vil_nitf2_tagged_record_definition::vil_nitf2_tagged_record_definition | ( | vcl_string | name, |
vcl_string | pretty_name, | ||
vil_nitf2_field_definitions * | defs = 0 |
||
) | [private] |
Definition at line 31 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition::tagged_record_definition_map & vil_nitf2_tagged_record_definition::all_definitions | ( | ) | [static] |
All tagged record definitions.
Definition at line 13 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition & vil_nitf2_tagged_record_definition::define | ( | vcl_string | name, |
vcl_string | pretty_name | ||
) | [static] |
Factory method. Assumes ownership of optional pointer argument.
Definition at line 40 of file vil_nitf2_tagged_record_definition.cxx.
void vil_nitf2_tagged_record_definition::end | ( | ) |
Declares that definition is finished, preventing further invocations of field() or repeat().
Definition at line 99 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition & vil_nitf2_tagged_record_definition::field | ( | vcl_string | field_name, |
vcl_string | pretty_name, | ||
vil_nitf2_field_formatter * | formatter, | ||
bool | blanks_ok = false , |
||
vil_nitf2_field_functor< int > * | width_functor = 0 , |
||
vil_nitf2_field_functor< bool > * | condition_functor = 0 , |
||
vcl_string | units = "" , |
||
vcl_string | description = "" |
||
) |
Define a field. Assumes ownership of pointer arguments.
Definition at line 63 of file vil_nitf2_tagged_record_definition.cxx.
const vil_nitf2_field_definitions& vil_nitf2_tagged_record_definition::field_definitions | ( | ) | const [inline] |
Return field definitions.
Definition at line 89 of file vil_nitf2_tagged_record_definition.h.
vil_nitf2_tagged_record_definition * vil_nitf2_tagged_record_definition::find | ( | vcl_string | name | ) | [static] |
Look up a record definition.
Definition at line 104 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_field_definition* vil_nitf2_tagged_record_definition::find_field | ( | vcl_string | name | ) |
Look up a field definition.
vil_nitf2_tagged_record_definition& vil_nitf2_tagged_record_definition::operator= | ( | const vil_nitf2_tagged_record_definition & | ) | [private] |
void vil_nitf2_tagged_record_definition::register_test_tre | ( | ) | [static] |
Registers some TREs for testing.
Definition at line 128 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition & vil_nitf2_tagged_record_definition::repeat | ( | vil_nitf2_field_functor< int > * | repeat_functor, |
vil_nitf2_field_definitions & | field_definitions | ||
) |
Define a repeat node. Assumes ownership of pointer argument.
Definition at line 85 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition & vil_nitf2_tagged_record_definition::repeat | ( | vcl_string | int_tag, |
vil_nitf2_field_definitions & | field_definitions | ||
) |
Convenience overload where repeat count is simply the value of a tag.
Definition at line 116 of file vil_nitf2_tagged_record_definition.cxx.
vil_nitf2_tagged_record_definition & vil_nitf2_tagged_record_definition::repeat | ( | int | repeat_count, |
vil_nitf2_field_definitions & | field_definitions | ||
) |
Convenience overload where repeat count is a fixed value.
Definition at line 122 of file vil_nitf2_tagged_record_definition.cxx.
bool vil_nitf2_tagged_record_definition::undefine | ( | vcl_string | name | ) | [static] |
Undefines a TRE. Returns whether TRE with specified name was found.
Definition at line 52 of file vil_nitf2_tagged_record_definition.cxx.
friend class vil_nitf2_tagged_record [friend] |
Definition at line 34 of file vil_nitf2_tagged_record_definition.h.
bool vil_nitf2_tagged_record_definition::m_definition_completed [private] |
Definition at line 117 of file vil_nitf2_tagged_record_definition.h.
Definition at line 116 of file vil_nitf2_tagged_record_definition.h.
vcl_string vil_nitf2_tagged_record_definition::m_name [private] |
Definition at line 114 of file vil_nitf2_tagged_record_definition.h.
vcl_string vil_nitf2_tagged_record_definition::m_pretty_name [private] |
Definition at line 115 of file vil_nitf2_tagged_record_definition.h.