inc/CPEngNWSessionSlotID2.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/CPEngNWSessionSlotID2.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,257 @@
+/*
+* Copyright (c) 2004 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:  NWSessionSlotID.
+*
+*/
+
+#ifndef __CPENGNWSESSIONSLOTID2_H
+#define __CPENGNWSESSIONSLOTID2_H
+
+//  INCLUDES
+#include <E32Base.h>
+
+
+// FORWARD DECLARATIONS
+class CPEngNWSessionSlotID2Imp;
+
+
+
+// CLASS DECLARATION
+/**
+ * NWSessionSlotID.
+ *
+ * Class encapsulating the NWSessionSlotID.
+ *
+ * @since 3.0
+ * @lib PEngManager2.lib
+ */
+class CPEngNWSessionSlotID2 : public CBase
+    {
+
+        //-----------------------------------------------------------------------
+    public: /* Construction */
+
+        /**
+         * Instantiates NWSessionSlotID object.
+         *
+         * Initially all NWSessionSlotID sub parts are
+         * zero length and no wild fields.
+         *
+         * @return New NWSessionSlotID instance.
+         */
+        IMPORT_C static CPEngNWSessionSlotID2* NewL();
+        IMPORT_C static CPEngNWSessionSlotID2* NewLC();
+
+
+        /**
+         * Cloness CPEngNWSessionSlotID2 object.
+         *
+         * @return New CPEngNWSessionSlotID2 copy instance.
+         */
+        IMPORT_C CPEngNWSessionSlotID2* CloneL() const;
+
+
+        /**
+         * Destructor.
+         * Virtual by CBase.
+         */
+        ~CPEngNWSessionSlotID2();
+
+
+    private:
+
+        CPEngNWSessionSlotID2();
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* NWSessionSlotID */
+
+        /**
+         * Sets the NWSessionSlotID sub-part.
+         *
+         * All sub-parts must be properly defined before
+         * the CPEngNWSessionSlotID2 instance can be used
+         * to identify the NWSessionSlot.
+         *
+         * @param aAddress Service address to use.
+         * @param aUserId User id to use.
+         * @param aAppId AppId to use.
+         */
+        IMPORT_C void SetServiceAddressL( const TDesC& aAddress );
+        IMPORT_C void SetUserIdL( const TDesC& aUserId );
+        IMPORT_C void SetAppIdL( const TDesC& aAppId );
+        IMPORT_C void SetAllL( const TDesC& aAddress,
+                               const TDesC& aUserId,
+                               const TDesC& aAppId );
+
+
+
+        /**
+         * Fragment access.
+         *
+         * Return pointer descriptor presenting
+         * requested NWSessionSlotID sub-part.
+         *
+         * Pointed data remains valid untill new data
+         * is assigned with any Set*() method or
+         * NWSessionSlotID is reinitialized with UnPackL().
+         *
+         * @return Requested sub-part.
+         */
+        IMPORT_C TPtrC ServiceAddress() const;
+        IMPORT_C TPtrC UserId() const;
+        IMPORT_C TPtrC AppId() const;
+
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* Match support */
+
+        /**
+         * Sets the NWSessionSlotID sub-part as wild.
+         *
+         * If NWSessionSlotID is wanted to be used as
+         * match criteria when e.g. listing NWSessionSlotIDs,
+         * one or more sub-parts can be defined as "wild".
+         * Wild sub-part matches to any data in the matched
+         * NWSessionSlotIDs corresponding sub-part.
+         */
+        IMPORT_C void SetServiceAddressMatchAnyL();
+        IMPORT_C void SetUserIdMatchAnyL();
+        IMPORT_C void SetAppIdMatchAnyL();
+
+
+        /**
+         * Tests is certain sub-part defined as wild.
+         *
+         * @return ETrue if requested sub-part is defined as wild.
+         * Else EFalse.
+         */
+        IMPORT_C TBool IsServiceAddressWild() const;
+        IMPORT_C TBool IsUserIdWild() const;
+        IMPORT_C TBool IsAppIdWild() const;
+
+
+        /**
+         * Tests is one or more of the sub-parts defined as wild.
+         *
+         * @return ETrue if one or more sub-parts is defined as wild.
+         * Else EFalse.
+         */
+        IMPORT_C TBool IsWild() const;
+
+
+        /**
+         * Pattern-matches NWSessionSlotIDs.
+         *
+         * Matching uses common pattern matching between
+         * corresponding subparts. Any of sub-parts can be
+         * defined as wild, in which case that sub part
+         * matches to any data.
+         *
+         * @param aIdToMatch The NWSessionSlotID to match.
+         * @return KErrNone if NWSessionSlotIDs match.
+         * Else KErrNotFound.
+         */
+        IMPORT_C TInt MatchFullId( const CPEngNWSessionSlotID2& aIdToMatch ) const;
+
+
+
+        /**
+         * Pattern-matches NWSessionSlotIDs base parts.
+         * (ServiceAddress and UserId).
+         *
+         * @param aIdToMatch The NWSessionSlotID which base part to match.
+         * @return KErrNone if NWSessionSlotIDs match.
+         * Else KErrNotFound.
+         */
+        IMPORT_C TInt MatchBasePart( const CPEngNWSessionSlotID2& aIdToMatch ) const;
+
+
+        /**
+         * Pattern-matches NWSessionSlotIDs AppId parts.
+         * (AppId).
+         *
+         * @param aIdToMatch The NWSessionSlotID which AppId part to match.
+         * @return KErrNone if NWSessionSlotIDs match.
+         * Else KErrNotFound.
+         */
+        IMPORT_C TInt MatchAppIdPart( const CPEngNWSessionSlotID2& aIdToMatch ) const;
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* Serialized presentation */
+
+
+
+        /**
+         * Packs NWSessionSlotIDs state to buffer and
+         * returns buffer to caller. Caller is responsible
+         * of deleting the buffer. PackLC() leaves the created
+         * buffer to CleanupStack.
+         *
+         * @return NWSessionSlotID state buffer.
+         */
+        IMPORT_C HBufC8* PackL() const;
+        IMPORT_C HBufC8* PackLC() const;
+
+
+        /**
+         * Initializes NWSessionSlotID state from a package
+         * previously created with PackL() or PackLC().
+         *
+         * If given aPack isn't a valid NWSessionSlotID
+         * package, leaves with KErrCorrupt.
+         *
+         * @param aPack NWSessionSlotID state package.
+         */
+        IMPORT_C void UnPackL( const TDesC8& aPack );
+
+
+
+        //-----------------------------------------------------------------------
+    public: /* Non exported access to implementation */
+
+        /**
+         * Presence Engine internal access
+         * to NWSessionSlotID implementation.
+         *
+         * @return Implementation.
+         */
+        CPEngNWSessionSlotID2Imp* Implementation();
+        const CPEngNWSessionSlotID2Imp* Implementation() const;
+
+
+
+        //-----------------------------------------------------------------------
+    private: /* Data */
+
+
+        //OWN: Implementation
+        CPEngNWSessionSlotID2Imp*     iImp;
+
+    };
+
+
+#endif //__CPENGNWSESSIONSLOTID2_H
+
+
+//End of file
+
+
+
+