phonesrv_plat/telephony_mediator_api/inc/callremotepartyinformation.h
changeset 0 ff3b6d0fd310
child 3 a4a774cb6ea7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonesrv_plat/telephony_mediator_api/inc/callremotepartyinformation.h	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 2009-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:  Call remote party information
+*
+*/
+
+
+#ifndef CALLREMOTEPARTYINFORMATION_H
+#define CALLREMOTEPARTYINFORMATION_H
+
+#include <e32base.h>
+#include <MCallRemotePartyInfo.h>
+
+class RWriteStream;
+
+/**  The category UID for the messages in this header file. */
+const TUid KCatCallRemotePartyInformation = { 0x10207906 }; 
+
+/**  Version number of this API */
+const TInt KCallRemotePartyInformationVersionMajor( 1 );
+const TInt KCallRemotePartyInformationVersionMinor( 0 );
+const TInt KCallRemotePartyInformationVersionBuild( 0 );
+
+/**
+ * Holds single calls remote party information
+ * 
+ * @since S60 v5.1
+ */
+NONSHARABLE_CLASS( CCallRemotePartyInfo ) : public CBase, public MCallRemotePartyInfo
+    {
+public:
+    
+    inline static CCallRemotePartyInfo* NewL();
+    inline static CCallRemotePartyInfo* NewLC();
+    inline ~CCallRemotePartyInfo();
+    
+    inline void ExternalizeL( RWriteStream& aStream ) const;
+    inline void InternalizeL( RReadStream& aStream );
+    
+    // Size of the descriptor required for this information
+    // to be externalized
+    inline TInt Size() const;
+    
+    inline void SetAddressL( const TDesC& aAddress );
+    inline void SetMatchedNameL( const TDesC& aName );
+    inline void SetNameFromNetworkL( const TDesC& aName );
+    inline void SetCompanyNameL( const TDesC& aName );
+    inline void SetCallIndex( TInt aCallIndex );
+    inline void SetRemoteIdentity( TRemoteIdentityStatus aRemoteIdentity );
+    inline void SetSATCall( TBool aSatCall );
+    
+// From base class MCallRemotePartyInfo
+    inline const TDesC& Address() const;
+    inline const TDesC& MatchedName() const;
+    inline const TDesC& NameFromNetwork() const;
+    inline const TDesC& CompanyName() const;    
+    inline TInt CallIndex() const;  
+    inline TRemoteIdentityStatus RemoteIdentity() const;
+    inline TBool SATCall() const;
+    inline TBool operator==(const MCallRemotePartyInfo& aRemoteInfo) const;
+    
+private:
+    
+    inline static HBufC* ReadDescriptorFromStreamLC( RReadStream& aStream );
+    inline static void WriteDescriptorToStreamL( 
+        RWriteStream& aStream,
+        const TDesC& aDesc );
+    
+    inline CCallRemotePartyInfo();
+    inline void ConstructL();
+    
+private: // Data
+    
+    HBufC* iMatchedName;
+    HBufC* iNameFromNetwork;
+    HBufC* iCompanyName;
+    HBufC* iAddress;
+    TInt iCallIndex;
+    TBool iSATCall;
+    TRemoteIdentityStatus iRemoteIdentity;
+    };
+    
+/**
+ * Holds all calls remote party information.
+ *
+ * @since S60 v5.1
+ */
+NONSHARABLE_CLASS( CCallRemotePartyInfos ) : public CBase
+    {
+public:
+    
+    inline static CCallRemotePartyInfos* NewL();
+    inline static CCallRemotePartyInfos* NewLC();
+    inline ~CCallRemotePartyInfos();
+    
+    /**
+     * Adds remote party information
+     * @param aInfo Information to be added. Ownership is taken. Must not be NULL.
+     */
+    inline void AddL( CCallRemotePartyInfo* aInfo );
+    
+    /**
+     * Access to remote party infos
+     */
+    inline const RPointerArray<CCallRemotePartyInfo>& RemotePartyInfos() const;
+    
+    /**
+     * Externalizes the remote party information to descriptor.
+     */
+    inline HBufC8* ExternalizeL() const;
+    
+    /**
+     * Internalizes remote party information from data. Note that
+     * the existing infos are removed before internalizing. So if leave
+     * occurs the old data is lost.
+     */
+    inline void InternalizeL( const TDesC8& aData ); 
+    
+private:
+    
+    inline CCallRemotePartyInfos();
+    
+private: // Data
+    
+    RPointerArray<CCallRemotePartyInfo> iInfos;
+    };
+
+  
+/**
+ * Commands
+ */
+enum TCallRemotePartyInformationCommands
+    {
+    EGetCallRemotePartyInformation = 0
+    };
+    
+/**
+ * Events
+ */
+enum TCallRemotePartyInformationEvents
+    {
+    EChangesInRemotePartyInformation = 0
+    };
+   
+#include <callremotepartyinformation.inl>
+
+
+
+#endif // CALLREMOTEPARTYINFORMATION_H