2323
2424#include < istream>
2525#include < memory>
26+ #include < optional>
2627
2728namespace digidoc
2829{
@@ -31,20 +32,21 @@ class Digest;
3132class DataFilePrivate final : public DataFile
3233{
3334public:
34- DataFilePrivate (std::unique_ptr<std::istream> &&is, std::string filename, std::string mediatype, std::string id = {});
35-
36- std::string id () const final { return m_id.empty () ? m_filename : m_id; }
37- std::string fileName () const final { return m_filename; }
38- unsigned long fileSize () const final { return m_size; }
39- std::string mediaType () const final { return m_mediatype; }
40-
41- void digest (const Digest &method) const ;
42- std::vector<unsigned char > calcDigest (const std::string &method) const final ;
43- void saveAs (std::ostream &os) const final ;
44- void saveAs (const std::string& path) const final ;
45-
46- std::unique_ptr<std::istream> m_is;
47- std::string m_id, m_filename, m_mediatype;
48- unsigned long m_size;
35+ DataFilePrivate (std::unique_ptr<std::istream> &&is, std::string filename, std::string mediatype, std::string id = {});
36+
37+ std::string id () const final { return m_id.empty () ? m_filename : m_id; }
38+ std::string fileName () const final { return m_filename; }
39+ unsigned long fileSize () const final ;
40+ std::string mediaType () const final { return m_mediatype; }
41+
42+ void digest (const Digest &method) const ;
43+ std::vector<unsigned char > calcDigest (const std::string &method) const final ;
44+ void saveAs (std::ostream &os) const final ;
45+ void saveAs (const std::string& path) const final ;
46+
47+ struct Private ;
48+ std::unique_ptr<Private> d;
49+ std::unique_ptr<std::istream> m_is;
50+ std::string m_id, m_filename, m_mediatype;
4951};
5052}
0 commit comments