From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdeprint/cups/ipprequest.h | 196 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 kdeprint/cups/ipprequest.h (limited to 'kdeprint/cups/ipprequest.h') diff --git a/kdeprint/cups/ipprequest.h b/kdeprint/cups/ipprequest.h new file mode 100644 index 000000000..68fe3ec0b --- /dev/null +++ b/kdeprint/cups/ipprequest.h @@ -0,0 +1,196 @@ +/* + * This file is part of the KDE libraries + * Copyright (c) 2001 Michael Goffioul + * + * 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 IPPREQUEST_H +#define IPPREQUEST_H + +#include +#include +#include +#include + +#include + +class IppRequest +{ +public: + IppRequest(); + ~IppRequest(); + + void init(); // re-initializes the request + + // request building functions + void addMime(int group, const QString& name, const QString& mime); + void addKeyword(int group, const QString& name, const QString& key); + void addKeyword(int group, const QString& name, const QStringList& keys); + void addURI(int group, const QString& name, const QString& uri); + void addURI(int group, const QString& name, const QStringList& uris); + void addText(int group, const QString& name, const QString& txt); + void addText(int group, const QString& name, const QStringList& txts); + void addName(int group, const QString& name, const QString& nm); + void addName(int group, const QString& name, const QStringList& nms); + void addInteger(int group, const QString& name, int value); + void addInteger(int group, const QString& name, const QValueList& values); + void addEnum(int group, const QString& name, int value); + void addEnum(int group, const QString& name, const QValueList& values); + void addBoolean(int group, const QString& name, bool value); + void addBoolean(int group, const QString& name, const QValueList& values); + + void setOperation(int op); + void setHost(const QString& host); + void setPort(int p); + + // request answer functions + int status(); + QString statusMessage(); + bool integer(const QString& name, int& value); + bool boolean(const QString& name, bool& value); + bool enumvalue(const QString& name, int& value); + bool name(const QString& name, QString& value); + bool name(const QString& name, QStringList& value); + bool text(const QString& name, QString& value); + bool text(const QString& name, QStringList& value); + bool uri(const QString& name, QString& value); + bool uri(const QString& name, QStringList& value); + bool keyword(const QString& name, QString& value); + bool keyword(const QString& name, QStringList& value); + bool mime(const QString& name, QString& value); + ipp_attribute_t* first(); + ipp_attribute_t* last(); + QMap toMap(int group = -1); + void setMap(const QMap& opts); + + // processing functions + bool doRequest(const QString& res); + bool doFileRequest(const QString& res, const QString& filename = QString::null); + + // report functions + bool htmlReport(int group, QTextStream& output); + + // debug function + void dump(int state); + +protected: + void addString_p(int group, int type, const QString& name, const QString& value); + void addStringList_p(int group, int type, const QString& name, const QStringList& values); + void addInteger_p(int group, int type, const QString& name, int value); + void addIntegerList_p(int group, int type, const QString& name, const QValueList& values); + bool stringValue_p(const QString& name, QString& value, int type); + bool stringListValue_p(const QString& name, QStringList& values, int type); + bool integerValue_p(const QString& name, int& value, int type); + +private: + ipp_t *request_; + QString host_; + int port_; + bool connect_; + int dump_; +}; + +inline void IppRequest::addMime(int group, const QString& name, const QString& mime) +{ addString_p(group, IPP_TAG_MIMETYPE, name, mime); } + +inline void IppRequest::addKeyword(int group, const QString& name, const QString& key) +{ addString_p(group, IPP_TAG_KEYWORD, name, key); } + +inline void IppRequest::addKeyword(int group, const QString& name, const QStringList& keys) +{ addStringList_p(group, IPP_TAG_KEYWORD, name, keys); } + +inline void IppRequest::addURI(int group, const QString& name, const QString& uri) +{ addString_p(group, IPP_TAG_URI, name, uri); } + +inline void IppRequest::addURI(int group, const QString& name, const QStringList& uris) +{ addStringList_p(group, IPP_TAG_URI, name, uris); } + +inline void IppRequest::addText(int group, const QString& name, const QString& txt) +{ addString_p(group, IPP_TAG_TEXT, name, txt); } + +inline void IppRequest::addText(int group, const QString& name, const QStringList& txts) +{ addStringList_p(group, IPP_TAG_TEXT, name, txts); } + +inline void IppRequest::addName(int group, const QString& name, const QString& nm) +{ addString_p(group, IPP_TAG_NAME, name, nm); } + +inline void IppRequest::addName(int group, const QString& name, const QStringList& nms) +{ addStringList_p(group, IPP_TAG_NAME, name, nms); } + +inline void IppRequest::addInteger(int group, const QString& name, int value) +{ addInteger_p(group, IPP_TAG_INTEGER, name, value); } + +inline void IppRequest::addInteger(int group, const QString& name, const QValueList& values) +{ addIntegerList_p(group, IPP_TAG_INTEGER, name, values); } + +inline void IppRequest::addEnum(int group, const QString& name, int value) +{ addInteger_p(group, IPP_TAG_ENUM, name, value); } + +inline void IppRequest::addEnum(int group, const QString& name, const QValueList& values) +{ addIntegerList_p(group, IPP_TAG_ENUM, name, values); } + +inline bool IppRequest::integer(const QString& name, int& value) +{ return integerValue_p(name, value, IPP_TAG_INTEGER); } + +inline bool IppRequest::enumvalue(const QString& name, int& value) +{ return integerValue_p(name, value, IPP_TAG_ENUM); } + +inline bool IppRequest::name(const QString& name, QString& value) +{ return stringValue_p(name, value, IPP_TAG_NAME); } + +inline bool IppRequest::name(const QString& name, QStringList& values) +{ return stringListValue_p(name, values, IPP_TAG_NAME); } + +inline bool IppRequest::text(const QString& name, QString& value) +{ return stringValue_p(name, value, IPP_TAG_TEXT); } + +inline bool IppRequest::text(const QString& name, QStringList& values) +{ return stringListValue_p(name, values, IPP_TAG_TEXT); } + +inline bool IppRequest::uri(const QString& name, QString& value) +{ return stringValue_p(name, value, IPP_TAG_URI); } + +inline bool IppRequest::uri(const QString& name, QStringList& values) +{ return stringListValue_p(name, values, IPP_TAG_URI); } + +inline bool IppRequest::keyword(const QString& name, QString& value) +{ return stringValue_p(name, value, IPP_TAG_KEYWORD); } + +inline bool IppRequest::keyword(const QString& name, QStringList& values) +{ return stringListValue_p(name, values, IPP_TAG_KEYWORD); } + +inline bool IppRequest::mime(const QString& name, QString& value) +{ return stringValue_p(name, value, IPP_TAG_MIMETYPE); } + +inline bool IppRequest::doRequest(const QString& res) +{ return doFileRequest(res); } + +inline ipp_attribute_t* IppRequest::first() +{ return (request_ ? request_->attrs : NULL); } + +inline ipp_attribute_t* IppRequest::last() +{ return (request_ ? request_->last : NULL); } + +inline void IppRequest::setHost(const QString& host) +{ host_ = host; } + +inline void IppRequest::setPort(int p) +{ port_ = p; } + +inline void IppRequest::dump(int state) +{ dump_ = state; } + +#endif -- cgit v1.2.3