Changeset 344 for trunk/archive/pslib/include/psMetaData.h
- Timestamp:
- Mar 31, 2004, 5:01:04 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/archive/pslib/include/psMetaData.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/pslib/include/psMetaData.h
r294 r344 8 8 9 9 /** Possible types of metadata. */ 10 typedef enum { // !< type of val is:11 PS_META_ITEM_SET = 0, // !< NULL; metadata is in psMetaDataType.items12 PS_META_FLOAT, // !< float (.f)13 PS_META_INT, // !< int (.i)14 PS_META_STR, // !< string (.v)15 PS_META_IMG, // !< image (.v)16 PS_META_JPEG, // !< JPEG (.v)17 PS_META_PNG, // !< PNG (.v)18 PS_META_ASTROM, // !< astrometric coefficients (.v)19 PS_META_UNKNOWN, // !< other (.v)20 PS_META_NTYPE // !< Number of types; must be last10 typedef enum { ///< type of val is: 11 PS_META_ITEM_SET = 0, ///< NULL; metadata is in psMetaDataType.items 12 PS_META_FLOAT, ///< float (.f) 13 PS_META_INT, ///< int (.i) 14 PS_META_STR, ///< string (.v) 15 PS_META_IMG, ///< image (.v) 16 PS_META_JPEG, ///< JPEG (.v) 17 PS_META_PNG, ///< PNG (.v) 18 PS_META_ASTROM, ///< astrometric coefficients (.v) 19 PS_META_UNKNOWN, ///< other (.v) 20 PS_META_NTYPE ///< Number of types; must be last 21 21 } psMetaDataType; 22 22 23 23 /** Metadata flags (not exclusive with psMetaDataType). */ 24 24 typedef enum { 25 PS_META_TYPE_MASK = 0xffff, // !< the type enum must fit in this mask26 PS_META_UNIQUE = 0x10000, // !< the name must be unique (default)27 PS_META_NON_UNIQUE = 0x20000, // !< the name may be repeated, and should be disambiguated for us25 PS_META_TYPE_MASK = 0xffff, ///< the type enum must fit in this mask 26 PS_META_UNIQUE = 0x10000, ///< the name must be unique (default) 27 PS_META_NON_UNIQUE = 0x20000, ///< the name may be repeated, and should be disambiguated for us 28 28 } psMetaDataFlags; 29 29 30 30 /** A struct to define a single item of metadata */ 31 31 typedef struct { 32 const int id; // !< unique ID for this item33 char *restrict name; // !< Name of item34 psMetaDataType type; // !< type of this item35 psMetaDataFlags flags; // !< flags associated with this item32 const int id; ///< unique ID for this item 33 char *restrict name; ///< Name of item 34 psMetaDataType type; ///< type of this item 35 psMetaDataFlags flags; ///< flags associated with this item 36 36 const union { 37 float f; // !< floating value38 int i; // !< integer value39 void *v; // !< other type40 } val; // !< value of metadata41 char *comment; // !< optional comment ("", not NULL)42 psDlist *restrict items; // !< list of psMetaDataItems with the same name37 float f; ///< floating value 38 int i; ///< integer value 39 void *v; ///< other type 40 } val; ///< value of metadata 41 char *comment; ///< optional comment ("", not NULL) 42 psDlist *restrict items; ///< list of psMetaDataItems with the same name 43 43 } psMetaDataItem; 44 44 45 45 /** A set of metadata */ 46 46 typedef struct { 47 psDlist *restrict list; // !< list of psMetaDataItem48 psHash *restrict table; // !< hash table of the same metadata47 psDlist *restrict list; ///< list of psMetaDataItem 48 psHash *restrict table; ///< hash table of the same metadata 49 49 } psMetaDataSet; 50 50 … … 55 55 56 56 /** Constructor */ 57 psMetaDataItem *psMetaDataItemAlloc(int typeFlags, // !< type of this piece of metadata + flags58 const void *val, // !< value of new item N.b. a pointer even if the item59 // !< is of type e.g. int60 const char *comment, // !< comment associated with item61 const char *name, // !< name of new item of metadata (may be in sprintf62 // !< format)63 ... // !< possible arguments for name format57 psMetaDataItem *psMetaDataItemAlloc(int typeFlags, ///< type of this piece of metadata + flags 58 const void *val, ///< value of new item N.b. a pointer even if the item 59 ///< is of type e.g. int 60 const char *comment, ///< comment associated with item 61 const char *name, ///< name of new item of metadata (may be in sprintf 62 ///< format) 63 ... ///< possible arguments for name format 64 64 ); 65 65 66 66 /** Destructor */ 67 void psMetaDataItemFree(psMetaDataItem *ms // !< piece of metadata to destroy67 void psMetaDataItemFree(psMetaDataItem *ms ///< piece of metadata to destroy 68 68 ); 69 69 /** Constructor */ 70 psMetaDataSet *psMetaDataSetAlloc(void); // !< make a new set of metadata70 psMetaDataSet *psMetaDataSetAlloc(void); ///< make a new set of metadata 71 71 72 72 /** Destructor */ 73 void psMetaDataSetFree(psMetaDataSet *ms // !< destroy a set of metadata73 void psMetaDataSetFree(psMetaDataSet *ms ///< destroy a set of metadata 74 74 ); 75 75 … … 77 77 78 78 /// Add entry to the end of the metadata set 79 psMetaDataItem *psMetaDataAppend(psMetaDataSet *restrict ms, // !< Metadata set to add to80 psMetaDataItem *restrict item // !< Metatdata to add79 psMetaDataItem *psMetaDataAppend(psMetaDataSet *restrict ms, ///< Metadata set to add to 80 psMetaDataItem *restrict item ///< Metatdata to add 81 81 ); 82 82 83 83 /// delete entry from the metadata set 84 psMetaDataItem *psMetaDataRemove(psMetaDataSet *restrict ms, // !< Metadata set to delete from85 const char *restrict key // !< Key to delete84 psMetaDataItem *psMetaDataRemove(psMetaDataSet *restrict ms, ///< Metadata set to delete from 85 const char *restrict key ///< Key to delete 86 86 ); 87 87 88 88 /// reset the iterator to the start of the list 89 void psMetaDataSetIterator(psMetaDataSet *ms // !< Metadata set to set iterator for89 void psMetaDataSetIterator(psMetaDataSet *ms ///< Metadata set to set iterator for 90 90 ); 91 91 92 92 /// get the next entry in the sequence 93 psMetaDataItem *psMetaDataGetNext(psMetaDataSet *restrict ms, // !< Metadata set to get from94 const char *restrict match // !< Match this93 psMetaDataItem *psMetaDataGetNext(psMetaDataSet *restrict ms, ///< Metadata set to get from 94 const char *restrict match ///< Match this 95 95 ); 96 96 97 97 /// find the metadata with the specified key 98 psMetaDataItem *psMetaDataLookup(const psMetaDataSet *restrict ms, // !< Metadata set to look up99 const char *restrict key // !< Key to find98 psMetaDataItem *psMetaDataLookup(const psMetaDataSet *restrict ms, ///< Metadata set to look up 99 const char *restrict key ///< Key to find 100 100 ); 101 101 102 102 /// print metadata item to the specified stream 103 void psMetaDataItemPrint(FILE *fd, // !< file descriptor to write to104 const psMetaDataItem *restrict ms, // !< item of metadata to print105 const char *prefix // !< print this at the beginning of each line103 void psMetaDataItemPrint(FILE *fd, ///< file descriptor to write to 104 const psMetaDataItem *restrict ms, ///< item of metadata to print 105 const char *prefix ///< print this at the beginning of each line 106 106 ); 107 107 /* \} */ // End of AstroGroup Functions
Note:
See TracChangeset
for help on using the changeset viewer.
