Fred Gleason a9a3f385ad 2018-11-29 Fred Gleason <fredg@paravelsystems.com>
* Added a 'SERVICES.INCLUDE_IMPORT_MARKERS' field to the database.
	* Added a 'LOGS.INCLUDE_IMPORT_MARKERS' field to the database.
	* Incremented the database version to 301.
	* Added an 'Inlcude Import Markers in Finished Logs' checkbox to
	the 'Edit Service' dialog in rdadmin(1).
2018-11-29 14:44:38 -05:00

104 lines
3.8 KiB
C++

// rdlog.h
//
// Abstract a Rivendell Log
//
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef RDLOG_H
#define RDLOG_H
#include <rdconfig.h>
#include <rdlog_event.h>
#include <rduser.h>
#include <rdstation.h>
class RDLog
{
public:
enum Type {Log=0,Event=1,Clock=2,Grid=3};
enum Source {SourceTraffic=0,SourceMusic=1};
enum LinkState {LinkMissing=0,LinkDone=1,LinkNotPresent=2};
RDLog(const QString &name);
QString name() const;
bool exists() const;
bool logExists() const;
void setLogExists(bool state) const;
RDLog::Type type() const;
void setType(RDLog::Type type) const;
QString description() const;
void setDescription(const QString &desc) const;
QString service() const;
void setService(const QString &svc) const;
QDate startDate() const;
void setStartDate(const QDate &date) const;
QDate endDate() const;
void setEndDate(const QDate &date) const;
QDate purgeDate() const;
void setPurgeDate(const QDate &date) const;
QString originUser() const;
void setOriginUser(const QString &user) const;
QDateTime originDatetime() const;
void setOriginDatetime(const QDateTime &datetime) const;
QDateTime linkDatetime() const;
void setLinkDatetime(const QDateTime &datetime) const;
QDateTime modifiedDatetime() const;
void setModifiedDatetime(const QDateTime &datetime) const;
bool autoRefresh() const;
void setAutoRefresh(bool state) const;
unsigned scheduledTracks() const;
void setScheduledTracks(unsigned tracks) const;
unsigned completedTracks() const;
void setCompletedTracks(unsigned tracks) const;
bool includeImportMarkers() const;
void setIncludeImportMarkers(bool state);
int linkQuantity(RDLog::Source src) const;
void setLinkQuantity(RDLog::Source src,int quan) const;
void updateLinkQuantity(RDLog::Source src) const;
RDLog::LinkState linkState(RDLog::Source src) const;
void setLinkState(RDLog::Source src,bool state) const;
int nextId() const;
void setNextId(int id) const;
bool isReady() const;
bool remove(RDStation *station,RDUser *user,RDConfig *config) const;
void updateTracks();
int removeTracks(RDStation *station,RDUser *user,RDConfig *config) const;
RDLogEvent *createLogEvent() const;
QString xml() const;
static bool create(const QString &name,const QString &svc_name,
const QDate &air_date,const QString &user_name,
QString *err_msg,RDConfig *config);
static bool exists(const QString &name);
static bool remove(const QString &name,RDStation *station,RDUser *user,
RDConfig *config);
private:
int GetIntValue(const QString &field) const;
unsigned GetUnsignedValue(const QString &field) const;
QString GetStringValue(const QString &field) const;
QDate GetDateValue(const QString &field) const;
QDateTime GetDatetimeValue(const QString &field) const;
void SetRow(const QString &param,int value) const;
void SetRow(const QString &param,unsigned value) const;
void SetRow(const QString &param,const QString &value) const;
void SetRow(const QString &param,const QDate &value) const;
void SetRow(const QString &param,const QDateTime &value) const;
QString log_name;
};
#endif // RDLOG_H