qthighway/xqserviceutil/src/xqservicemetadata/xqaiwinterfacedescriptor.h
branchRCL_3
changeset 9 5d007b20cfd0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qthighway/xqserviceutil/src/xqservicemetadata/xqaiwinterfacedescriptor.h	Tue Aug 31 16:02:37 2010 +0300
@@ -0,0 +1,103 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+*
+* This program 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, version 2.1 of the License.
+* 
+* 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 Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program.  If not, 
+* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
+*
+* Description:
+*
+*/
+
+#ifndef XQAIWINTERFACEDESCRIPTOR_H
+#define XQAIWINTERFACEDESCRIPTOR_H
+
+#include <QString>
+#include <QVariant>
+#include <QStringList>
+#include <xqserviceglobal.h>
+
+class XQAiwInterfaceDescriptorPrivate;
+
+// Custom keys
+namespace XQAiw
+{
+// NOTE !!! Names need to be fixed when service naming policy has been decided !!!
+//
+static const char *CustomKeyScheme = "schemes";  // CSV of schemes
+static const char *CustomKeyActionText = "txt_aiw_action_text";
+static const char *InterfaceUri = "com.nokia.symbian.IUriView";  // Interface to handle URIs (http://, file://, etc.)
+static const char *InterfaceFile = "com.nokia.symbian.IFileView"; // Interface to handle local files in file system
+static const char *OperationView = "view(QString)";  // Default operation signature for viewing files
+static const char *OperationViewSharable = "view(XQSharableFile)";  // Default signature for viewing sharable files
+static const char *UriSchemeApp = "appto"; // Custom scheme: appto://uid3?query-part
+static const char *UriSchemeFile = "file";  // Standard  file sceheme
+
+}
+
+class XQSERVICEUTIL_EXPORT XQAiwInterfaceDescriptor
+{
+public:
+    enum PropertyKey {
+        Capabilities = 0,
+        Location, 
+        ServiceDescription,
+        InterfaceDescription,
+        ImplementationId = 100  // Extension: Settable property, contains impl. id
+
+    };
+    
+public:
+    XQAiwInterfaceDescriptor();
+    XQAiwInterfaceDescriptor(const XQAiwInterfaceDescriptor& other);
+    ~XQAiwInterfaceDescriptor();
+    XQAiwInterfaceDescriptor& operator=(const XQAiwInterfaceDescriptor& other);
+    bool operator==(const XQAiwInterfaceDescriptor& other) const;
+    inline bool operator!=(const XQAiwInterfaceDescriptor& other) const { return !operator==(other); };
+    QString serviceName() const;
+    QString interfaceName() const;
+    int majorVersion() const;
+    int minorVersion() const;
+    bool isValid() const;
+    bool inSystemScope() const;
+    QVariant property(XQAiwInterfaceDescriptor::PropertyKey key) const;
+    QString customProperty(const QString& key) const;
+    QStringList customPropertyKeys() const;
+public:
+    // Extensions: For service management
+    bool setProperty(XQAiwInterfaceDescriptor::PropertyKey key, const QVariant value );
+
+private:
+    XQAiwInterfaceDescriptorPrivate* d;
+    friend class XQAiwInterfaceDescriptorPrivate;
+    friend class ServiceMetaData;
+    
+#ifndef QT_NO_DATASTREAM
+    friend XQSERVICEUTIL_EXPORT QDataStream &operator<<(QDataStream &, const XQAiwInterfaceDescriptor &);
+    friend XQSERVICEUTIL_EXPORT QDataStream &operator>>(QDataStream &, XQAiwInterfaceDescriptor &);
+#endif
+};
+
+
+#ifndef QT_NO_DATASTREAM
+XQSERVICEUTIL_EXPORT QDataStream &operator<<(QDataStream &, const XQAiwInterfaceDescriptor &);
+XQSERVICEUTIL_EXPORT QDataStream &operator>>(QDataStream &, XQAiwInterfaceDescriptor &);
+#endif
+#ifndef QT_NO_DEBUG_STREAM
+XQSERVICEUTIL_EXPORT QDebug operator<<(QDebug, const XQAiwInterfaceDescriptor &);
+#endif
+
+
+
+
+#endif