/usr/include/ossim/imaging/ossimFgdcFileWriter.h is in libossim-dev 1.7.21-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | //----------------------------------------------------------------------------
// Copyright (c) 2005, David Burken, all rights reserved.
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: David Burken
//
// Description: Class to write out meta data in a Federal Geographic Data
// Committe (FGDC) format.
//
//----------------------------------------------------------------------------
// $Id: ossimFgdcFileWriter.h 9094 2006-06-13 19:12:40Z dburken $
#ifndef ossimFgdcFileWriter_HEADER
#define ossimFgdcFileWriter_HEADER
#include <ossim/imaging/ossimMetadataFileWriter.h>
#include <ossim/base/ossimXmlNode.h>
#include <ossim/base/ossimXmlDocument.h>
/**
* Class to write out meta data in a Federal Geographic Data
* Committe (FGDC) format.
*/
class OSSIMDLLEXPORT ossimFgdcFileWriter : public ossimMetadataFileWriter
{
public:
/** constructor */
ossimFgdcFileWriter();
/** destructor */
virtual ~ossimFgdcFileWriter();
/**
* Method to load the state from a keyword list.
*
* @param kwl Keyword list to load state from.
*
* @param prefix Prefix to attatch to keyword (like "object1.").
* default=NULL
*
* @return true if ok or false on error.
*
* Keywords picked up by this loadState:
*
* source_image_filename: foo.ntf
* tab_string: "\t"
* fgdc_template_doc: fgdc_template.xml
*
*/
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0);
/**
* Satisfies pure virtual from ossimMetadataWriter base.
*
* Appends the writers image types to the "metadatatypeList".
*
* @param metadatatypeList stl::vector<ossimString> list to append to.
*
* @note Appends to the list, does not clear it first.
*/
virtual void getMetadatatypeList(
std::vector<ossimString>& metadatatypeList) const;
/**
* Satisfies pure virtual from ossimMetadataWriter base.
*
* @param imageType string representing image type.
*
* @return true if "metadataType" is supported by writer.
*/
virtual bool hasMetadataType(const ossimString& metadataType)const;
/** @return Returns the current indentation level. */
ossim_uint32 getIndentionLevel() const;
/**
* Sets the current indentation level.
*
* @param level Indentation level. "0" equals no indentation.
*/
void setIndentionLevel(ossim_uint32 level);
/**
* @return The current tab string e.g.: "\t".
*/
ossimString getTabString() const;
/**
* Sets the tab string. Usually "\t" or spaces " ".
*
* @param tabString String to use for indentation.
*/
void setTabString(const ossimString& tabString);
/**
* @param title Tile of data usually the image file name.
*/
void setTitle(const ossimString& pubDate);
void setTemplate(const ossimFilename& xmlTemplateFile);
ossimString find(const ossimString& xpath) const;
bool writeTemplate(const ossimFilename& file) const;
protected:
/**
* Writes file to disk.
*
* @return true on success, false on failure.
*/
virtual bool writeFile();
private:
/**
* Writes openning tag adding any indentation and brackets. Increments
* indentation level.
*
* @param os otream to write to.
*
* @param tag String representing tag with no brackets, i.e. "metadata".
*
* @param newLine If true a new line "\n" is added.
*/
void openTag(std::ostream& os,
const ossimString& tag,
bool newLine) const;
/**
* Closes tag decrementing indentation.
* e.g.: <metadata>
*
* @param os otream to write to.
*
* @param tag String representing tag with no brackets.
*
* @param decrementLevel If true indentation level is decremented.
*/
void closeTag(std::ostream& os,
const ossimString& tag,
bool decrementLevel) const;
mutable ossim_uint32 theIndentionLevel;
ossimString theTabString;
ossimXmlDocument theTemplate;
ossimFilename theSourceImageFilename;
TYPE_DATA
};
#endif /* End of "#ifndef ossimFgdcFileWriter_HEADER" */
|