diff -r fa1df4b99609 -r ebe688cedc25 messagingapp/msgnotifications/inc/msginfodefs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgnotifications/inc/msginfodefs.h Tue Aug 31 15:11:31 2010 +0300 @@ -0,0 +1,156 @@ +/* + * 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: Interface between msgindicatorplugin and msgnotifier. + * + */ + + +#ifndef MSGINFODEFS_H +#define MSGINFODEFS_H + +#include +#include +#include +#include +#include + + +/** + * Indicator types + */ +enum IndicatorTypes +{ + Unknown = 0, + NewIndicatorPlugin = 1, + FailedIndicatorPlugin = 2, + PendingIndicatorPlugin = 3 +}; + + +/** + * return the indicator name + * @return QString the name of the indicator + */ +inline QString indicatorName(IndicatorTypes type) +{ + switch(type){ + case NewIndicatorPlugin: + return QString("com.nokia.messaging.newindicatorplugin"); + case FailedIndicatorPlugin: + return QString("com.nokia.messaging.failedindicatorplugin"); + case PendingIndicatorPlugin: + return QString("com.nokia.messaging.pendingindicatorplugin"); + default: + return QString(); + } +} + +/** + * Interface class used by indications between msgnotifier + * and msgindications. + * @class MsgInfo + * + */ +class MsgInfo +{ +public: + MsgInfo() { + mMsgCount = 0; + mIndicatorType = Unknown; + mConversationId = -1; + mFromSingle = false; + mDescription = QString(); + mMessageType = 0; + } + virtual ~MsgInfo(){} + + /** + * the count of messages + */ + int mMsgCount; + + /** + * The type of indicator + */ + IndicatorTypes mIndicatorType; + + /** + * The indicator type in int. + */ + int mIndicatorTypeInt; + + /** + * The conversation id. + */ + int mConversationId; + + /** + * The message type + */ + int mMessageType; + + /** + * Indication of number of senders/recipients + * True if one, false if many + */ + bool mFromSingle; + + /** + * List of Names of the contacts, or phone numbers + */ + QStringList mDisplayName; + + /** + * Any body text if present + */ + QString mDescription; + // TODO: check if the serialize/deserialize is okay + /** + * serialize + * @param stream QDataStream serialize into this data stream. + */ + inline void serialize(QDataStream& stream) const + { + stream << mMsgCount; + stream << mIndicatorType; + stream << mDisplayName; + stream << mConversationId; + stream << mFromSingle; + stream << mDisplayName; + stream << mDescription; + } + + /** + * deserialize + * @param stream QDataStream deserialize from this data stream. + */ + inline void deserialize(QDataStream& stream) + { + int indicatorType; + stream >> mMsgCount; + stream >> indicatorType; + stream >> mDisplayName; + stream >> mConversationId; + stream >> mFromSingle; + stream >> mDisplayName; + stream >> mDescription; + + mIndicatorType = static_cast(indicatorType); + } +}; + + +Q_DECLARE_METATYPE(MsgInfo) + +#endif