NIST Biometric Evaluation Framework
Software components for biometric technology evaluations
be_io_filelogcabinet.h
Go to the documentation of this file.
1/******************************************************************************
2 * This software was developed at the National Institute of Standards and
3 * Technology (NIST) by employees of the Federal Government in the course
4 * of their official duties. Pursuant to title 17 Section 105 of the
5 * United States Code, this software is not subject to copyright protection
6 * and is in the public domain. NIST assumes no responsibility whatsoever for
7 * its use by other parties, and makes no guarantees, expressed or implied,
8 * about its quality, reliability, or any other characteristic.
9 ******************************************************************************/
10#ifndef __BE_IO_LOGCABINET_H
11#define __BE_IO_LOGCABINET_H
12
13
14#include <cstdint>
15#include <memory>
16#include <sstream>
17#include <string>
18#include <vector>
19
20#include <be_error_exception.h>
21#include <be_io_filelogsheet.h>
22
23namespace BiometricEvaluation {
24 namespace IO {
34 public:
35
50 const std::string &pathname,
51 const std::string &description);
52
65 const std::string &pathname);
66
68
88 std::shared_ptr<FileLogsheet> newLogsheet(
89 const std::string &name,
90 const std::string &description);
91
98 std::string getPathname();
99
106 std::string getDescription();
107
114 unsigned int getCount();
115
116 private:
117
118 /* The directory where the cabinet is rooted */
119 std::string _pathname;
120
121 /* A textual description of the cabinet. */
122 std::string _description;
123
124 /* Number of items in the cabinet */
125 unsigned int _count;
126
127 /* The current record position cursor */
128 int _cursor;
129
130 /*
131 * Return the full path of a file stored as part
132 * of the FileLogCabinet, typically _pathname + name.
133 */
134 std::string canonicalName(const std::string &name);
135
136 /* Read the contents of the common control file format
137 * for all FileLogCabinet.
138 */
139 void readControlFile();
140
141 /* Write the contents of the common control file format
142 * for all FileLogCabinet.
143 */
144 void writeControlFile();
145
146 private:
147 /* Prevent copying of FileLogCabinet objects */
149 FileLogCabinet& operator=(const FileLogCabinet&);
150 };
151 }
152}
153#endif /* __BE_IO_LOGCABINET_H */
A class to represent a collection of log sheets.
std::shared_ptr< FileLogsheet > newLogsheet(const std::string &name, const std::string &description)
Create a new FileLogsheet within the cabinet.
FileLogCabinet(const std::string &pathname)
Open an existing FileLogCabinet.
std::string getDescription()
Obtain the description of the FileLogCabinet.
FileLogCabinet(const std::string &pathname, const std::string &description)
Create a new FileLogCabinet in the file system.
unsigned int getCount()
Obtain the number of items in the FileLogCabinet.
std::string getPathname()
Obtain the pathname of the FileLogCabinet.
This software was developed at the National Institute of Standards and Technology (NIST) by employees...