example/clientapi/smf/smfrelationmgr.h
author cgandhi <chandradeep.gandhi@sasken.com>
Tue, 02 Mar 2010 16:24:32 +0530
changeset 0 5d2360e70d9f
permissions -rw-r--r--
Application level use cases to illustrate the goal of SMF. Pushing the draft header files for SMF client and one sample application cpp

/**
* Copyright (c) 2010 Sasken Communication Technologies Ltd.
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the "{License}"
* which accompanies  this distribution, and is available
* at the URL "{LicenseUrl}".
*
* Initial Contributors:
* Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
*
* Contributors:
*
* Description:
* Interface spefication for managing associations between various social contacts
*
*/

#ifndef SMFRELATIONMGR_H
#define SMFRELATIONMGR_H

class SmfProvider;
class SmfContact;
class SmfRelationId; //persistent Id of a relation

class SmfRelationItem : public SmfContact
{
	private:
	//SmfProvider* provider;

	public:
	virtual SmfProvider* provider getProvider()=0;
	virtual SmfProvider* provider setProvider(SmfProvider* provider)=0;
};

/**
 * Interface for a base service provider. Other service provider classes o derive from
 * this base class so that each has access to service provider information
 *
 * All of the functionality described here should be implemented by a service
 * specific plug-in object.
 */
class SmfRelationMgr : public QObject
{
  Q_OBJECT;

public:
  // Seeing as this is a plug-in implementation, these will realistically
  // be generated by SMF factory of some kind
  SmfRelationMgr(QObject* parent = 0);
  ~SmfRelationMgr();

public:
  //create a relation with first contact (id optional)
  virtual SmfRelationId create(SmfProvider provider, SmfContact conact, uint id) = 0;
  // assign contact to a relation
  virtual bool associate(SmfRelationId relation, SmfProvider provider, SmfContact conact) = 0;
  //returns first contact in the relation when exists
  virtual SmfContact searchById(SmfRelationId relation)=0;
  //number of contacts in a relation
  virtual uint count(SmfRelationId relation) = 0;

slots:
  virtual QList<SmfRelationItem> get(SmfRelationId relation)=0;//list of contacts and their provider
  virtual QList<SmfRelationId> getAll()=0;//list of all relations

signals:
  //None at the moment
};

#endif // SMFRELATIONMGR_H