--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/javaregclient.h Mon Jan 18 20:12:38 2010 +0200
@@ -0,0 +1,281 @@
+/*
+* Copyright (c) 2005-2006 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: javaregclient definition
+*
+*/
+
+
+#ifndef JAVAREGCLIENT_H
+#define JAVAREGCLIENT_H
+
+#include "javaregdef.h"
+#include "javaregburstates.h"
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+// FORWARD DECLARATIONS
+class CJavaPropertyArray;
+
+/**
+ * RJavaRegSession class makes it possible to access java registry server
+ * services like adding, getting and removing entries.
+ * The class implements the client side of java registry
+ * client-server communication.
+ *
+ * @since S60 v3.2
+ */
+class RJavaRegSession : public RSessionBase
+{
+
+public:
+
+ /**
+ * Constructor
+ *
+ * @since S60 v3.2
+ */
+ RJavaRegSession();
+
+ /**
+ * Connects to registry server and sets integrity service's
+ * transaction id.
+ *
+ * @since S60 v3.2
+ * @param aTransactionId transaction id of integrity service
+ * @param aLegacy legacy flag, must be set to true if
+ * legacy api wants to use server services
+ * @return KErrNone if connection was successful or an error code
+ */
+ TInt Connect(TInt64 aTransactionId, TBool aLegacy = EFalse);
+
+ /**
+ * Connects to registry server and sets if integrity service
+ * is required or not to be created in registry.
+ *
+ * @since S60 v3.2
+ * @param aUseIntegrity true if registry should create an
+ * interior integrity session
+ * @param aLegacy if true legacy api uses server services
+ * @return KErrNone if connection was successful or an error code
+ */
+ TInt Connect(TBool aUseIntegrity, TBool aLegacy = EFalse);
+
+ /**
+ * Checks if an entry with specified uid exist or not
+ * in the registry.
+ *
+ * @since S60 v3.2
+ * @param aUid uid of the entry to be checked if exists
+ * @return true if the entry exists and false if not
+ */
+ TBool EntryExistsL(TUid aUid) const;
+
+ /**
+ * Gets uids of entries stored in registry.
+ *
+ * @since S60 v3.2
+ * @param[out] aUids reference to an array where stored uids
+ * are returned
+ */
+ void GetEntryUidsL(RArray<TUid>& aUids) const;
+
+ /**
+ * Gets uids of entries stored in registry and belonging to
+ * the given drive.
+ *
+ * @since S60 v3.2
+ * @param[out] aUids reference to an array where stored uids
+ * are returned
+ * @param aDrive drive whose entry uids must be returned
+ */
+ void GetEntryUidsL(RArray<TUid>& aUids, TInt aDrive) const;
+
+ /**
+ * Gets the entry belonging to the given uid.
+ * The entry is represented as a set of properties.
+ * If no entry found for the given uid aProperties is null else
+ * it is allocated a new CJavaPropertyArray object containing the read
+ * entry.
+ *
+ * @since S60 v3.2
+ * @param aUid the uid of entry we are interested in
+ * @param[out] aProperties entry is read in this parameter
+ * @param aAllEntries decision if we want to read entry from not
+ * presented MMC
+ */
+ void GetEntryL(TUid aUid,
+ CJavaPropertyArray*& aProperties,
+ TBool aAllEntries = EFalse) const;
+
+ /**
+ * Adds a new entry or updates an existent one with the given uid.
+ * The entry is represented as a set of properties.
+ *
+ * @since S60 v3.2
+ * @param aUid the uid of the entry to be added or updated
+ * @param aProperties the entry to be added or updated
+ * @param aDrive the drive to which the set entry belongs
+ */
+ void SetEntryL(TUid aUid,
+ const CJavaPropertyArray& aProperties,
+ TInt aDrive) const;
+
+ /**
+ * Returns a set of uids whose entries contains the properties (and
+ * has the same values) given in the aProperties parameter.
+ *
+ * @since S60 v3.2
+ * @param aProperties the set of properties which must exists
+ * (and must have the same values) in the looked entries
+ * @param[out] aUids uids of the found entries are returned
+ * in this parameter
+ * @param aAllEntries means, that method give all entries including
+ * entries, which regards with midlets stored in not presented
+ * media. EFalse means entries with regarding not presented
+ * media will not return.
+ */
+ void FindEntriesL(const CJavaPropertyArray& aProperties,
+ RArray<TUid>& aUids, TBool aAllEntries = EFalse) const;
+
+ /**
+ * Removes the entry belonging to the given uid.
+ *
+ * @since S60 v3.2
+ * @param aUid uid of entry which must be deleted
+ * @param aAllEntries means, that method give all entries including
+ * entries, which regards with midlets stored in not presented
+ * media. EFalse means entries with regarding not presented
+ * media will not return.
+ */
+ void RemoveEntryL(TUid aUid, TBool aAllEntries = EFalse) const;
+
+ /**
+ * Allocates a range of new uids.
+ *
+ * @since S60 v3.2
+ * @param[out] aUids array reference where the allocated uids
+ * will be returned
+ * @param aUidCount number of uids to be allocated
+ */
+ void AllocateUidsL(RArray<TUid>& aUids,
+ TInt aUidCount = 1) const;
+
+ /**
+ * Sets the backup state of registry.
+ * If the registry is in backing up or restoring state
+ * the client requests will not be executed.
+ *
+ * @since S60 v3.2
+ * @param aBackupState the requested backup state
+ */
+ void SetBackupStateL(TBackupState aBackupState) const;
+
+private:
+
+ /**
+ * Initializes server with integrity service transaction id
+ * and the legacy api flag.
+ *
+ * @since S60 v3.2
+ * @param aTransactionId integrity service transaction id
+ * @param aLegacy legacy flag, must be set to true if
+ * legacy api wants to use server services
+ * @return KErrNone if no error or the appropriate error code
+ */
+ TInt InitializeServer(TInt64 aTransactionId, TBool aLegacy) const;
+
+ /**
+ * Initializes server with use integrity session flag,
+ * and the legacy api flag.
+ *
+ * @since S60 v3.2
+ * @param aUseIntegrity true if registry should create an interior
+ * integrity session
+ * @param aLegacy legacy flag, must be set to true if
+ * legacy api wants to use server services
+ * @return KErrNone if no error or the appropriate error code
+ */
+ TInt InitializeServer(TBool aUseIntegrity, TBool aLegacy) const;
+
+ /**
+ * Sends to server a message containing the function id and the
+ * arguments given in TIpcArgs argument.
+ * The first and second arguments of TIpcArgs are reserved.
+ *
+ * @since S60 v3.2
+ * @param aFunction funtion id
+ * @param[out] aBuffer the received buffer is returned
+ * in this parameter
+ * @param aArgs arguments to be sent for server, first and second
+ * argument must be left empty
+ */
+ void GetBuffer8FromServerL(TInt aFunction,
+ HBufC8*& aBuffer,
+ TIpcArgs& aArgs) const;
+
+ /**
+ * Sends to server a message containing the function id and the
+ * arguments given in TIpcArgs argument.
+ * The first and second arguments of TIpcArgs are reserved.
+ *
+ * @since S60 v3.2
+ * @param aFunction funtion id
+ * @param[out] aBuffer the received buffer is returned
+ * in this parameter
+ * @param aArgs arguments to be sent for server, first and second
+ * argument must be left empty
+ */
+ void GetBuffer16FromServerL(TInt aFunction,
+ HBufC16*& aBuffer,
+ TIpcArgs& aArgs) const;
+
+ /**
+ * Sends to server a message containing the function id and the
+ * arguments given in TIpcArgs argument.
+ * The first and second arguments of TIpcArgs are reserved.
+ *
+ * @since S60 v3.2
+ * @param aFunction funtion id
+ * @param[out] aBuffer the received buffer is returned
+ * in this parameter
+ * @param aArgs arguments to be sent for server, first and second
+ * argument must be left empty
+ * @param a8BitDesc if true a 8 bit descriptor must be allocated
+ * in other case a 16 bit descriptor must be allocated
+ */
+ void GetBufferFromServerL(TInt aFunction,
+ TAny** aBuffer,
+ TIpcArgs& aArgs,
+ TBool a8BitDesc) const;
+ /**
+ * Connects to server.
+ *
+ * @since S60 v3.2
+ * @return KErrNone if connection was successful or an error code
+ */
+ TInt Connect();
+
+private:
+
+};
+
+}//namespace Registry
+}//namespace Manager
+}//namespace Java
+
+#endif // JAVAREGCLIENT_H