phonebookengines/mobcntactions/inc/mobcntaction.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Mar 2010 09:27:18 +0200
changeset 24 0ba2181d7c28
child 25 76a2435edfd4
permissions -rw-r--r--
Revision: 201007 Kit: 201011

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/

#ifndef MOBCNTACTION_H
#define MOBCNTACTION_H

#include <qcontactaction.h>
#include <qcontactactiondescriptor.h>

#include <QSharedData>
#include <QString>
#include <QVariantMap>

QTM_USE_NAMESPACE


class MobCntAction : public QContactAction
{
    Q_OBJECT

public:   
    MobCntAction(const QString &actionName);
    virtual ~MobCntAction();

public: 
	enum ErrorCodes {
		GeneralError = 1,
		DetailNotSupported
	};
    

public: //QContactAction
	QContactActionDescriptor actionDescriptor() const;
    QVariantMap metadata() const;
    QContactFilter contactFilter(const QVariant& value) const;
    bool supportsDetail(const QContactDetail& detail) const;
    QVariantMap result() const;
    void invokeAction(const QContact& contact, const QContactDetail& detail = QContactDetail());

public:
	virtual void resetAction();
	virtual MobCntAction* clone() const = 0;
	
private slots:	
	virtual void performAction() = 0;    

public:   
    //returns whether the actionDescription is supported by this action
    bool actionDescriptionSupported(const QContactActionDescriptor& descriptor) const;
    void performNumberAction(const QString &service, const QString &type);
    void emitResult(int errorCode, const QVariant &retValue);
    
    
protected:
    QString m_actionName;
	QString m_vendorName;
	int m_implementationVersion;
	
	QVariantMap m_result; 		//result returned to client
	QContact m_contact;    		//contact passed to invokeAction
	QContactDetail m_detail; 	//detail passed to invokeAction
};

#endif //MOBCNTACTION_H