libdigidocpp
Document.h
Go to the documentation of this file.
1 /*
2  * libdigidocpp
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  */
19 
20 #pragma once
21 
22 #include "Exception.h"
23 
24 namespace digidoc
25 {
26  class Digest;
33  {
34 
35  public:
36  Document(const std::string &filepath, const std::string &mediaType);
37  Document(const std::string &filename, const std::string &filepath, const std::string &mediaType, const std::string &id = "");
38  std::string getId() const;
39  std::string getFileName() const;
40  std::string getFilePath() const;
41  std::string getMediaType() const;
42  unsigned long getSize() const throw(IOException);
43  std::vector<unsigned char> calcDigest(Digest* calc) throw(IOException);
44  void saveAs(const std::string& path) throw(IOException);
45 
46  protected:
47  std::string id, filename, filepath, mediaType;
48  std::vector<unsigned char> digest;
49 
50  };
51 }