/* ========================================================================= * This file is part of NITRO * ========================================================================= * * (C) Copyright 2004 - 2010, General Dynamics - Advanced Information Systems * * NITRO is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, If not, * see . * */ #ifndef __NITF_FIELD_WARNING_H__ #define __NITF_FIELD_WARNING_H__ #include "nitf/System.h" #include "nitf/Field.h" NITF_CXX_GUARD /*! * \struct nitf_FieldWarning * \brief Describes a warning associated with a field in the NITF * * The FieldWarning object stores information necessary to describe a problem * associated with a NITF field. */ typedef struct _nitf_FieldWarning { /* Offset in bytes to the field in the NITF file */ nitf_Off fileOffset; /* Name of the offending field in the following format hdr.section(i). ... .fieldName section - Any of the following section abbreviations. If a section can occur more than once (i) will appear where "i" is the occurance number in the order they appear in the file hdr - Main file header (Identification & Organization Segment) ish(i) - ith image sub-header imd(i) - ith image data section gsh(i) - ith graphics sub-header grd(i) - ith graphics data section tsh(i) - ith text sub-header ted(i) - ith text data section esh(i) - ith extended data sub-header edd(i) - ith extended data section (i)- ith occurance of a particular TRE in a particular section (i.e. hdr.ish(2).ACFTB(1).SCNUM */ char *fieldName; /* Original field found in the file */ nitf_Field *field; /* Description of what was expected */ char *expectation; } nitf_FieldWarning; /*! * Construct a FieldWarning object * This function creates a FieldWarning object. * \param fileOffset Offset in the file to the field * \param field A string which represents the NITF field * \param value The NITF field value * \param expectation A string describing the expected field value * \param error An error object to fill if a problem occurs * \return A FieldWarning object or NULL upon failure */ NITFAPI(nitf_FieldWarning *) nitf_FieldWarning_construct(nitf_Off fileOffset, const char *fieldName, nitf_Field *field, const char *expectation, nitf_Error * error); /*! * Destruct a FieldWarning object * This function destructs a FieldWarning object and NULL sets its pointer * \param fieldWarningPtr A pointer to a FieldWarning object */ NITFAPI(void) nitf_FieldWarning_destruct(nitf_FieldWarning **fieldWarningPtr); /*! * Clone a FieldWarning object * This function clones (deep copies) a FieldWarning object * \param source The source object * \param error An error object to fill if a problem occurs * \return A FieldWarning object or NULL upon failure */ NITFAPI(nitf_FieldWarning *) nitf_FieldWarning_clone(nitf_FieldWarning *source, nitf_Error * error); /* HELP: This object should probably have 1 or more print methods, and ? */ NITF_CXX_ENDGUARD #endif