Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



Location: COMMDB.H
Link against: commdb.lib

Class CCommsDatabaseBase

class CCommsDatabaseBase : public CBase;

Description

Base class for CCommsDatabase.

This class is never instantiated, but its member functions are used through the derived class.

Responsible for Transactions, Notifications, Write protection, Hidden records, Phone number resolution and Creating views. Stores the database, the session, transaction and notifier information.

CCommsDatabaseBase is an abstract base class as the CreateDatabaseL() and Open() methods are pure virtual.

Derivation

Members

Defined in CCommsDatabaseBase:
BeginTransaction(), CCommsDatabaseBase(), CancelRequestNotification(), CheckReadCapability(), CheckWriteCapability(), CommitTransaction(), CreateDatabaseL(), Database(), InTransaction(), IsDatabaseWriteLockedL(), OpenTableLC(), OpenViewLC(), OpenViewMatchingBoolLC(), OpenViewMatchingTextLC(), OpenViewMatchingTextLC(), OpenViewMatchingUintLC(), RequestNotification(), ResolvePhoneNumberFromDatabaseL(), ResolvePhoneNumberL(), RollbackTransaction(), ShowHiddenRecords(), Version(), iDatabase, iImpl, iImplNotCreated, iInInternalTransaction, iNotifications, iNotifier, iNotifierOpenError, iShowHiddenRecords, ~CCommsDatabaseBase()

Inherited from CBase:
Delete(), Extension_(), operator new()


Construction and destruction


~CCommsDatabaseBase()

virtual IMPORT_C ~CCommsDatabaseBase();

Description


CCommsDatabaseBase()

protected: IMPORT_C CCommsDatabaseBase();

Description

Default constructor for internal use only.

[Top]


Member functions


Version()

IMPORT_C TVersion Version() const;

Description

Gets the version from CommsDat.

Return value

TVersion

The object containing the version information.


BeginTransaction()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C TInt BeginTransaction();

Description

Marks the start of a transaction and gets a shared read-lock on the database. Other clients of the database can concurrently acquire a shared read-lock but no client can gain an exclusive write-lock until this transaction (and any transaction started by other clients) completes as a result of a call to either CommitTransaction() or RollbackTransaction().

A transaction consists of one or more record updates and/or insertions and/or deletions. The process of making changes to records within a view is part of CCommsDbTableView behaviour.

Return value

TInt

KErrNone if the database has been successfully locked; the transaction can start. KErrLocked if another client already has an exclusive write-lock on the database.

See also

See also:


CommitTransaction()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C TInt CommitTransaction();

Description

Marks the end of a transaction and commits any changes made since the start of the transaction. The client's shared read-lock is removed if no write operations were performed, or the exclusive write-lock is removed if write operations were performed.

Return value

TInt

KErrNone if successful, otherwise another of the system-wide error codes.


RollbackTransaction()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C void RollbackTransaction();

Description

Marks the end of a transaction and abandons any changes made since the start of the transaction. The database is, in effect, rolled back to the state it was in at the beginning of the transaction. The client's shared read-lock is removed if no write operations were performed, or the exclusive write-lock is removed if write operations were performed.


InTransaction()

IMPORT_C TBool InTransaction();

Description

Tests whether a transaction is in progress, i.e. whether a call to BeginTransaction() has been called.

Return value

TBool

ETrue if a transaction is in progress (BeginTransaction() has been called but not CommitTransaction() or RollbackTransaction()); EFalse otherwise.


IsDatabaseWriteLockedL()

IMPORT_C TBool IsDatabaseWriteLockedL();

Description

Tests if the database is write locked.

Tries to open a transaction from another client.

Note: Calling InTransaction() is not enough because if the transaction is automatic rather than explicit, this will still return EFalse.

Return value

TBool

ETrue if the database is write locked, EFalse if not.


RequestNotification()

IMPORT_C TInt RequestNotification(TRequestStatus &aStatus);

Description

Requests notification when any change is made to the database, whether by this client or any other.

(If the notifier is not successfully opened the function simply returns an error code and none of the following applies).

When any change is made to the database the outstanding notification request completes and TRequestStatus contains a value indicating what type of change has occurred. The value is one of the enumerators of the RDbNotifier::TEvent enumeration.

Alternatively, if an outstanding notification request is cancelled by a call to this CCommsDatabase's CancelRequestNotification() member function, then the request completes with aStatus set to KErrCancel.

An outstanding notification request is also cancelled if the connection to the DBMS is severed through a call to DoClose().

This is an asynchonous request.

Parameters

TRequestStatus &aStatus

A reference to the request status object. If the request is cancelled, this is set to KErrCancel. If the request completes normally, this is set to one of the enumerators of the RDbNotifier::TEvent enumeration.

Return value

TInt

Any error from opening the notifier: KErrNone if successful, otherwise another of the system-wide error codes.


CancelRequestNotification()

IMPORT_C void CancelRequestNotification();

Description

Cancels an outstanding request for notification of changes to the communications database.

An outstanding request completes with KErrCancel.


OpenTableLC()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C CCommsDbTableView *OpenTableLC(const TDesC &aTableName);

Description

Fills the container with all records from table and returns a pointer to view class. The view excludes hidden records, unless access to them has previously been explicitly requested by calling the ShowHiddenRecords() member function of this object.

If the process is succesful, the function constructs and returns a pointer to a CCommsDbTableView object which encapsulates the information on that view. The pointer is also put onto the cleanup stack.

Parameters

const TDesC &aTableName

A reference to a descriptor containing the name of the table in the communications database to be opened.

Return value

CCommsDbTableView *

A pointer to the view object.

See also


OpenViewLC()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C CCommsDbTableView *OpenViewLC(const TDesC &aTableName, const TDesC &aSqlQuery);

Description

Parameters

const TDesC &aTableName

A reference to a descriptor containing the name of a table in the communications database.

const TDesC &aSqlQuery

A reference to a descriptor containing the SQL query text.

Return value

CCommsDbTableView *

A pointer to the view object.

See also


OpenViewMatchingUintLC()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C CCommsDbTableView *OpenViewMatchingUintLC(const TDesC &aTableName, const TDesC &aColumnToMatch, TUint32 aValueToMatch);

Description

Opens a view onto a specified table based on a matching unsigned integer value, and returns a pointer to that view. The view includes all those records where the column, identified by aColumnToMatch, matches the unsigned integer value aValueToMatch.

The view excludes hidden records, unless access to them has previously been explicitly requested by calling the ShowHiddenRecords() member function of this object.

If the open process is succesful, the function constructs and returns a pointer to a CCommsDbTableView object which encapsulates the information on that view. The pointer is also put onto the cleanup stack.

Parameters

const TDesC &aTableName

A reference to a descriptor containing the name of the table in the communications database on which a view is to be opened.

const TDesC &aColumnToMatch

A reference to a descriptor containing the name of the column to be used in the selection process.

TUint32 aValueToMatch

The value to be matched with the content of column aColumnToMatch.

Return value

CCommsDbTableView *

A pointer to the view object.


OpenViewMatchingBoolLC()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C CCommsDbTableView *OpenViewMatchingBoolLC(const TDesC &aTableName, const TDesC &aColumnToMatch, TBool aValueToMatch);

Description

Opens a view onto a specified table based on a matching boolean value, and returns a pointer to that view. The view includes all those records where the column, identified by aColumnToMatch, matches the boolean value aValueToMatch.

The view excludes hidden records, unless access to them has previously been explicitly requested by calling the ShowHiddenRecords() member function.

If the open process is successful, the function constructs and returns a pointer to a CCommsDbTableView object which encapsulates the information on that view. The pointer is also put onto the cleanup stack.

Parameters

const TDesC &aTableName

A reference to a descriptor containing the name of the table of interest in the communications database.

const TDesC &aColumnToMatch

A reference to a descriptor containing the name of the column to be used in the selection process.

TBool aValueToMatch

The value to be matched with the content of column aColumnToMatch.

Return value

CCommsDbTableView *

A pointer to the view object.

See also


OpenViewMatchingTextLC()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C CCommsDbTableView *OpenViewMatchingTextLC(const TDesC &aTableName, const TDesC &aColumnToMatch, const TDesC8 &aValueToMatch);

Description

Opens a view onto a specified table based on a matching 8 bit text type, and returns a pointer to that view.

The view includes all those records where the column, identified by aColumnToMatch, matches the narrow text supplied in the descriptor aValueToMatch.

The view excludes hidden records, unless access to them has previously been explicitly requested by calling the ShowHiddenRecords() member function of this object.

If the open process is succesful, the function constructs and returns a pointer to a CCommsDbTableView object which encapsulates the information on that view. The pointer is also put onto the cleanup stack.

Parameters

const TDesC &aTableName

A reference to a descriptor containing the name of a table in the communications database.

const TDesC &aColumnToMatch

A reference to a descriptor containing the name of the column to be used in the selection process.

const TDesC8 &aValueToMatch

The narrow (ASCII) text to be matched with the content of column aColumnToMatch.

Return value

CCommsDbTableView *

A pointer to the view object.


OpenViewMatchingTextLC()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C CCommsDbTableView *OpenViewMatchingTextLC(const TDesC &aTableName, const TDesC &aColumnToMatch, const TDesC16 &aValueToMatch);

Description

Opens a view onto a specified table based on a matching 16 bit text type, and returns a pointer to that view. The view includes all those records where the column, identified by aColumnToMatch, matches the wide text supplied in the descriptor aValueToMatch.

The view excludes hidden records, unless access to them has previously been explicitly requested by calling the ShowHiddenRecords() member function of this object.

If the open process is successful, the function constructs and returns a pointer to a CCommsDbTableView object which encapsulates the information on that view. The pointer is also put onto the cleanup stack.

Parameters

const TDesC &aTableName

A reference to a descriptor containing the name of a table in the communications database.

const TDesC &aColumnToMatch

A reference to a descriptor containing the name of the column to be used in the selection process.

const TDesC16 &aValueToMatch

The wide (UNICODE) text to be matched with the content of column aColumnToMatch.

Return value

CCommsDbTableView *

A pointer to the view object.


ShowHiddenRecords()

Capability: Dependent on table, see the guide page referenced below.

IMPORT_C void ShowHiddenRecords();

Description

Ensures that hidden records are included in the search criteria when creating views using the member functions:

OpenTableLC()

OpenViewMatchingUintLC()

OpenViewMatchingBoolLC()

OpenViewMatchingTextLC()

See also


ResolvePhoneNumberL()

static IMPORT_C void ResolvePhoneNumberL(TDesC &aNumber, TDes &aDialString, TParseMode aDialParseMode, TUint32 aLocationId, TUint32 aChargecardId);

Description

Resolves a given telephone number based on a specified dialling location and chargecard. The function does not require a connection to the database server, but will form one itself.

The function does not resolve for mobile phones; aNumber is just copied to aDialString.

Parameters

TDesC &aNumber

The number to be parsed.

TDes &aDialString

On return, contains the parsed number.

TParseMode aDialParseMode

Indicates whether the parsed string is intended for dialling or for display.

TUint32 aLocationId

ID of the dialling location record to be used for resolution.

TUint32 aChargecardId

ID of the chargecard ID to be used for resolution.

Leave codes

KErrNotFound

if the specified location and chargecard records cannot be found; KErrOverflow if aDialString is not long enough to hold the resolved number.


ResolvePhoneNumberFromDatabaseL()

IMPORT_C void ResolvePhoneNumberFromDatabaseL(TDesC &aNumber, TDes &aDialString, TParseMode aDialParseMode, TUint32 aLocationId, TUint32 aChargecardId);

Description

Resolves a given telephone number based on a specified dialling location and chargecard. A connection must already exist to the database.

The function does not resolve for mobile phones; aNumber is just copied to aDialString.

Parameters

TDesC &aNumber

A reference to the descriptor containing the number to be parsed.

TDes &aDialString

On return, a reference to a descriptor which contains the parsed number.

TParseMode aDialParseMode

Indicates whether the parsed string is intended for dialling or for display.

TUint32 aLocationId

ID of the location record.

TUint32 aChargecardId

ID of the chargecard ID to be used for resolution.

Leave codes

KErrNotFound

if the specified location and chargecard records cannot be found; KErrOverflow if aDialString is not long enough to hold the resolved number.


CheckReadCapability()

IMPORT_C TInt CheckReadCapability(const TDesC &aField, const RMessagePtr2 *aMessage);

Description

Check the capabilites required to read a field from the database

Parameters

const TDesC &aField

the name of the field to be read

const RMessagePtr2 *aMessage

Message indicating the capabilites to be checked

Return value

TInt

KErrNone on success, one of the system-wide error codes otherwise


CheckWriteCapability()

IMPORT_C TInt CheckWriteCapability(const TDesC &aField, const RMessagePtr2 *aMessage);

Description

Check the capabilites required to write a field to the database

Parameters

const TDesC &aField

the name of the field to be written

const RMessagePtr2 *aMessage

Message indicating the capabilites to be checked

Return value

TInt

KErrNone on success, one of the system-wide error codes otherwise


CreateDatabaseL()

protected: virtual void CreateDatabaseL()=0;

Description


Database()

protected: inline RDbNamedDatabase *Database();

Description

Returns the interface for creating and opening a database identified by name and format.

Return value

RDbNamedDatabase *

A pointer to the interface for creating and opening a database identified by name and format.

[Top]


Member data


iImpl

protected: CCommsDatabaseImpl * iImpl;

Description


iDatabase

protected: RDbNamedDatabase iDatabase;

Description


iNotifier

protected: RDbNotifier iNotifier;

Description


iNotifierOpenError

protected: TInt iNotifierOpenError;

Description


iShowHiddenRecords

protected: TBool iShowHiddenRecords;

Description


iImplNotCreated

protected: TBool iImplNotCreated;

Description


iInInternalTransaction

protected: TBool iInInternalTransaction;

Description


iNotifications

protected: RArray< TCommDbPublishSubscribeNotification > iNotifications;

Description