File: binaryfile.h

package info (click to toggle)
classified-ads 0.13-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 6,772 kB
  • sloc: cpp: 34,291; tcl: 1,175; xml: 64; makefile: 40
file content (69 lines) | stat: -rw-r--r-- 2,835 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*    -*-C++-*- -*-coding: utf-8-unix;-*-
    Classified Ads is Copyright (c) Antti Jarvinen 2013.

    This file is part of Classified Ads.

    Classified Ads is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    Classified Ads is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with Classified Ads; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#ifndef CLASSIFIED_BINARYFILE_H
#define CLASSIFIED_BINARYFILE_H
#include <QString>
#include "../util/hash.h" // for class Hash  

class MController ;

/**
 * @brief Carrier-class for binary blob
 *
 * Instances of this class are stored and retrieved using
 * @ref BinaryFileModel. Lets decide that this class carries
 * the metadata only, actual octet-stream of the file
 * is retrieved using a QByteArray only, there is method
 * for that in the model.
 */
class BinaryFile {
public:
    /** enum for storing information if we have file locally or not */
    enum LocalStorageStatus {
        FileIsLocallyStored,
        FileIsNotLocallyStored,
        LocalStorageStatusUnknown
    } ;
    BinaryFile(const Hash& aHash) ; /**< constructor */
    ~BinaryFile() ; /**< destructor */
    /**
     * method for string that is shown to user about the file.
     * Most often could be original name from filesystem but
     * other explanation too..
     * @return string to display to user
     */
    QString displayName() const ;
    QByteArray asJSon(const MController& aController) const ; /**< returns file data as JSon stream */
    bool fromJSon(const QByteArray &aJSonBytes,
                  const MController& aController ) ; /**< parses json into members*/
    const Hash iFingerPrint ; /**< file hash */
    QString iMimeType ;  /**< what kind of data */
    QString iDescription ; /**< what is inside */
    QString iOwner ; /**< fingerprint of publisher */
    QString iContentOwner ; /**< if someone owns the content, name or SHA1 fp */
    QString iLicense ; /**< restriction in usage;PD or GPL or C-C or anything? */
    QString iFileName ; /**< name of the file-system file */
    quint32 iTimeOfPublish ; /**< seconds since 1-jan-1970 */
    bool iIsEncrypted ;
    bool iIsCompressed ; /**< needs to be in DB, not in JSon */
    LocalStorageStatus iLocalStorageStatus ; /** file is stored locally, or not */
} ;
#endif