#ifndef PM_CONCEPTS_WRITE_H
#define PM_CONCEPTS_WRITE_H

#include "pslib.h"
#include "pmFPA.h"

bool pmConceptsWriteToCamera(psMetadata *specs, // The concept specifications
                             pmCell *cell,   // The cell
                             psMetadata *concepts // The concepts
                            );
bool pmConceptsWriteToDefaults(psMetadata *specs, // The concept specifications
                               pmFPA *fpa, // The FPA
                               pmChip *chip, // The chip
                               pmCell *cell, // The cell
                               psMetadata *concepts // The concepts
                              );
bool pmConceptsWriteToHeader(psMetadata *specs, // The concept specifications
                             pmFPA *fpa, // The FPA
                             pmChip *chip, // The chip
                             pmCell *cell, // The cell
                             psMetadata *concepts // The concepts
                            );
bool pmConceptsWriteToDatabase(psMetadata *specs, // The concept specifications
                               pmFPA *fpa, // The FPA
                               pmChip *chip, // The chip
                               pmCell *cell, // The cell
                               psDB *db,// The database handle
                               psMetadata *concepts // The concepts
                              );


#ifdef OLD

// Well, not really "write", but check to make sure it's there and matches
bool pmConceptWriteToCamera(pmCell *cell, // The cell
                            psMetadataItem *concept // Concept
                           );

// Write the concept to the header in the appropriate location
bool pmConceptWriteToHeader(pmFPA *fpa, // The FPA that contains the chip
                            pmChip *chip, // The chip that contains the cell
                            pmCell *cell, // The cell
                            psMetadataItem *concept // Concept
                           );

// Well, not really "write", but check to see if it's there, and matches
bool pmConceptWriteToDefault(pmFPA *fpa, // The FPA that contains the chip
                             pmChip *chip, // The chip that contains the cell
                             pmCell *cell, // The cell
                             psMetadataItem *concept // Concept
                            );

bool pmConceptWriteToDB(pmFPA *fpa, // The FPA that contains the chip
                        pmChip *chip, // The chip that contains the cell
                        pmCell *cell, // The cell
                        psDB *db,    // DB handle
                        psMetadataItem *concept // Concept
                       );

// Concept write from item
bool pmConceptWriteItem(pmFPA *fpa,     // The FPA
                        pmChip *chip,   // The chip
                        pmCell *cell,   // The cell
                        psDB *db,       // DB handle
                        psMetadataItem *concept // Concept item
                       );

bool pmConceptWrite(pmFPA *fpa, // The FPA
                    pmChip *chip,// The chip
                    pmCell *cell,    // The cell
                    psDB *db, // DB handle
                    psMetadata *concepts, // Concepts MD from which to set
                    const char *name // Name of the concept
                   );

#endif

#endif
