summaryrefslogtreecommitdiffstats
path: root/kdeprint/cups/cupsdconf2/cupsdconf.h
diff options
context:
space:
mode:
Diffstat (limited to 'kdeprint/cups/cupsdconf2/cupsdconf.h')
-rw-r--r--kdeprint/cups/cupsdconf2/cupsdconf.h181
1 files changed, 181 insertions, 0 deletions
diff --git a/kdeprint/cups/cupsdconf2/cupsdconf.h b/kdeprint/cups/cupsdconf2/cupsdconf.h
new file mode 100644
index 000000000..3c53c5390
--- /dev/null
+++ b/kdeprint/cups/cupsdconf2/cupsdconf.h
@@ -0,0 +1,181 @@
+/*
+ * This file is part of the KDE libraries
+ * Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ **/
+
+#ifndef CUPSDCONF_H
+#define CUPSDCONF_H
+
+#include <qstring.h>
+#include <qstringlist.h>
+#include <qptrlist.h>
+#include <qtextstream.h>
+#include <qpair.h>
+
+#include "cupsdcomment.h"
+
+enum LogLevelType { LOGLEVEL_DEBUG2 = 0, LOGLEVEL_DEBUG, LOGLEVEL_INFO, LOGLEVEL_WARN, LOGLEVEL_ERROR, LOGLEVEL_NONE };
+enum OrderType { ORDER_ALLOW_DENY = 0, ORDER_DENY_ALLOW };
+enum AuthTypeType { AUTHTYPE_NONE = 0, AUTHTYPE_BASIC, AUTHTYPE_DIGEST };
+enum AuthClassType { AUTHCLASS_ANONYMOUS = 0, AUTHCLASS_USER, AUTHCLASS_SYSTEM, AUTHCLASS_GROUP };
+enum EncryptionType { ENCRYPT_ALWAYS = 0, ENCRYPT_NEVER, ENCRYPT_REQUIRED, ENCRYPT_IFREQUESTED };
+enum BrowseProtocolType { BROWSE_ALL = 0, BROWSE_CUPS, BROWSE_SLP };
+enum PrintcapFormatType { PRINTCAP_BSD = 0, PRINTCAP_SOLARIS };
+enum HostnameLookupType { HOSTNAME_OFF = 0, HOSTNAME_ON, HOSTNAME_DOUBLE };
+enum ClassificationType { CLASS_NONE = 0, CLASS_CLASSIFIED, CLASS_CONFIDENTIAL, CLASS_SECRET, CLASS_TOPSECRET, CLASS_UNCLASSIFIED, CLASS_OTHER };
+enum SatisfyType { SATISFY_ALL = 0, SATISFY_ANY };
+enum UnitType { UNIT_KB = 0, UNIT_MB, UNIT_GB, UNIT_TILE };
+
+struct CupsLocation;
+struct CupsResource;
+enum ResourceType { RESOURCE_GLOBAL, RESOURCE_PRINTER, RESOURCE_CLASS, RESOURCE_ADMIN };
+
+struct CupsdConf
+{
+// functions member
+ CupsdConf();
+ ~CupsdConf();
+
+ bool loadFromFile(const QString& filename);
+ bool saveToFile(const QString& filename);
+ bool parseOption(const QString& line);
+ bool parseLocation(CupsLocation *location, QTextStream& file);
+
+ bool loadAvailableResources();
+
+ static CupsdConf* get();
+ static void release();
+
+// data members
+ static CupsdConf *unique_;
+
+ // Server
+ QString servername_;
+ QString serveradmin_;
+ int classification_;
+ QString otherclassname_;
+ bool classoverride_;
+ QString charset_;
+ QString language_;
+ QString printcap_;
+ int printcapformat_;
+
+ // Security
+ QString remoteroot_;
+ QString systemgroup_;
+ QString encryptcert_;
+ QString encryptkey_;
+ QPtrList<CupsLocation> locations_;
+ QPtrList<CupsResource> resources_;
+
+ // Network
+ int hostnamelookup_;
+ bool keepalive_;
+ int keepalivetimeout_;
+ int maxclients_;
+ QString maxrequestsize_;
+ int clienttimeout_;
+ QStringList listenaddresses_;
+
+ // Log
+ QString accesslog_;
+ QString errorlog_;
+ QString pagelog_;
+ QString maxlogsize_;
+ int loglevel_;
+
+ // Jobs
+ bool keepjobhistory_;
+ bool keepjobfiles_;
+ bool autopurgejobs_;
+ int maxjobs_;
+ int maxjobsperprinter_;
+ int maxjobsperuser_;
+
+ // Filter
+ QString user_;
+ QString group_;
+ QString ripcache_;
+ int filterlimit_;
+
+ // Directories
+ QString datadir_;
+ QString documentdir_;
+ QStringList fontpath_;
+ QString requestdir_;
+ QString serverbin_;
+ QString serverfiles_;
+ QString tmpfiles_;
+
+ // Browsing
+ bool browsing_;
+ QStringList browseprotocols_;
+ int browseport_;
+ int browseinterval_;
+ int browsetimeout_;
+ QStringList browseaddresses_;
+ int browseorder_;
+ bool useimplicitclasses_;
+ bool hideimplicitmembers_;
+ bool useshortnames_;
+ bool useanyclasses_;
+
+ // cupsd.conf file comments
+ CupsdComment comments_;
+
+ // unrecognized options
+ QValueList< QPair<QString,QString> > unknown_;
+};
+
+struct CupsLocation
+{
+ CupsLocation();
+ CupsLocation(const CupsLocation& loc);
+
+ bool parseOption(const QString& line);
+ bool parseResource(const QString& line);
+
+ CupsResource *resource_;
+ QString resourcename_;
+ int authtype_;
+ int authclass_;
+ QString authname_;
+ int encryption_;
+ int satisfy_;
+ int order_;
+ QStringList addresses_;
+};
+
+struct CupsResource
+{
+ CupsResource();
+ CupsResource(const QString& path);
+
+ void setPath(const QString& path);
+
+ int type_;
+ QString path_;
+ QString text_;
+
+ static QString textToPath(const QString& text);
+ static QString pathToText(const QString& path);
+ static int typeFromPath(const QString& path);
+ static int typeFromText(const QString& text);
+ static QString typeToIconName(int type);
+};
+
+#endif