example/clientapi/smf/inc/common/smfmusic/smfmusicprofile.h
author cgandhi <chandradeep.gandhi@sasken.com>
Thu, 25 Mar 2010 14:44:08 +0530
changeset 1 4b1e636e8a71
child 2 86af6c333601
permissions -rw-r--r--
Updating the interfaces for SMFClient and SMFPlugins

/**
 * @file	smfmusicprofile.h
 * @author  Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution
 * @version 1.0
 *
 * @section LICENSE
 *
 * 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}".
 * 
 * @section DESCRIPTION
 *
 * The music profile class represents a user's profile in music site
 */

#ifndef SMFMUSICPROFILE_H_
#define SMFMUSICPROFILE_H_

#include <qdatastream.h>
#include "SmfClientGlobal.h"

#include "smfcontact.h"
class SmfTrackInfo;
class SmfEventsList;
typedef QList<SmfTrackInfo> SmfTrackInfoList; 
/**
 * User profile containing music usage and interest info, extends SmfContact.
 * Consists of,-
 * 1. Conatct info
 * 2. Music usage info as SmfTrackInfoList
 * 3. Interest info as SmfTrackInfoList
 * 4. Events SmfEventsList
 */
class SMFCLIENT_EXPORT SmfMusicProfile : public SmfContact
	{
	  Q_OBJECT

	public:
	  // Seeing as this is a plug-in implementation, these will realistically
	  // be generated by SMF factory of some kind
	  SmfMusicProfile(QObject* parent = 0);
	  ~SmfMusicProfile();
	  
	  /**
	   * Gets the music usage info of the user as list of SmfTrackInfo
	   */
	  SmfTrackInfoList* getMusicUsageInfo();
	  
	  /**
	   * Gets the music interest info of the user as list of SmfTrackInfo
	   */
	  SmfTrackInfoList* getInterestInfo();
	  
	  /**
	   * Gets the user events as list of SmfEvents
	   */
	  SmfEventsList* getUserEvents();
	  
	  /**
	   * Sets the music usage info of the user as list of SmfTrackInfo
	   */
	  void setMusicUsageInfo(SmfTrackInfoList* usage);
	  
	  /**
	   * Gets the music interest info of the user as list of SmfTrackInfo
	   */
	  void setInterestInfo(SmfTrackInfoList* interest);

	private:
	  SmfTrackInfoList* usage;
	  SmfTrackInfoList* interest;
	  
	};
/**
* Externalization
*/
QDataStream &operator<<(QDataStream &, const SmfMusicProfile&);
/**
 * Internalization
 */
QDataStream &operator>>(QDataStream &, SmfMusicProfile&);
#endif /* SMFMUSICPROFILE_H_ */