view ui/certificatelist.h @ 502:e551de11d8b6

Properly handle the case that the file does not exist. TRUNCATE makes create file fail if the file does not exist but we need TRUNCATE in the case that the file already exists
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 28 Apr 2014 09:18:07 +0000
parents 4204ae2753d9
children f89b41fa7048
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */
#ifndef CERTIFICATELIST_H
#define CERTIFICATELIST_H
/**
 * This class handles a certificate list file.
 * It checks for the validity of that certificate
 * list file and provides an API for working with that
 * file.
 *
 * The List is parsed on Initialization. You should
 * check the Status afterwards to see if the file
 * could be parsed.
 *
 */

class QByteArray;

#include <QString>
#include <QDateTime>
#include <QObject>

#include "listutil.h"
#include "certificate.h"

class CertificateList
{
public:
    CertificateList();
    CertificateList(const char *fileName);

    list_status_t getStatus() {return mStatus;}

    /** @brief Read a list
     *
     * @param[in] fileName the filename of the list to read
     *
     * @return status of the read. Vaild on success.
     */
    list_status_t readList(const char *fileName);

    /** @brief Returns true if the list is Valid 
     *
     *  A list is valid only if the signature matched and the
     *  list could be parsed.
     */
    bool isValid() const {return mStatus == Valid;}

    /* @brief get a list of certificate objects in this list */
    const QList<Certificate>& getCertificates() const;

    /* @brief get the raw certificate list */
    const QString& rawData() const {return mData;}

    /* @brief get the absolute filename of the certificate */
    const QString& fileName() const {return mFileName;}

    /* @brief get the list date. */
    const QDateTime& date() const {return mDate;}

private:
    QList<Certificate> mCertificates;
    QString mData;
    QString mFileName;
    list_status_t mStatus;
    QDateTime mDate;
};
#endif

http://wald.intevation.org/projects/trustbridge/