btobexprofiles/obexsendservices/obexservicesendutils/inc/BTSUCapabilityResolver.h
author hgs
Fri, 28 May 2010 17:03:06 +0300
changeset 32 19bd632b5100
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Capability resolver
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef BTSU_CAPABILITY_RESOLVER_H
hgs
parents:
diff changeset
    20
#define BTSU_CAPABILITY_RESOLVER_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDES
hgs
parents:
diff changeset
    23
//#include <RXMLReader.h>
hgs
parents:
diff changeset
    24
// new headers
hgs
parents:
diff changeset
    25
#include <xml/contenthandler.h>
hgs
parents:
diff changeset
    26
#include <xml/parser.h> 
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
#include <badesca.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// CLASS DECLARATION
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
/**
hgs
parents:
diff changeset
    34
*  A content handler class implementing MXMLContentHandler interface.
hgs
parents:
diff changeset
    35
*  Listens notifications and appends found capabilities to a given list.
hgs
parents:
diff changeset
    36
*/
hgs
parents:
diff changeset
    37
NONSHARABLE_CLASS (CBTSUCapabilityResolver) :public CBase, 
hgs
parents:
diff changeset
    38
                                             public Xml::MContentHandler 
hgs
parents:
diff changeset
    39
    {
hgs
parents:
diff changeset
    40
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    41
    
hgs
parents:
diff changeset
    42
         /**
hgs
parents:
diff changeset
    43
        * Two-phased constructor.
hgs
parents:
diff changeset
    44
        */
hgs
parents:
diff changeset
    45
        static CBTSUCapabilityResolver* NewL( CDesCArrayFlat* aCapabilityList );
hgs
parents:
diff changeset
    46
        
hgs
parents:
diff changeset
    47
        
hgs
parents:
diff changeset
    48
        static CBTSUCapabilityResolver* NewL(  RArray<TBTSUImageCap>* aCapabilityList );        
hgs
parents:
diff changeset
    49
        
hgs
parents:
diff changeset
    50
        /**
hgs
parents:
diff changeset
    51
        * Destructor.
hgs
parents:
diff changeset
    52
        */
hgs
parents:
diff changeset
    53
        virtual ~CBTSUCapabilityResolver();
hgs
parents:
diff changeset
    54
        
hgs
parents:
diff changeset
    55
        /**
hgs
parents:
diff changeset
    56
        * Return capability object resolving status         
hgs
parents:
diff changeset
    57
        * @return A boolean according to status.
hgs
parents:
diff changeset
    58
        */   
hgs
parents:
diff changeset
    59
        TBool IsCompleted();
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
    private:
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
        /**
hgs
parents:
diff changeset
    64
        * From MContentHandler A notification telling about the beginning 
hgs
parents:
diff changeset
    65
        * of a document.
hgs
parents:
diff changeset
    66
        * @param  aDocParam     Specifies the various parameters of the document.
hgs
parents:
diff changeset
    67
        * @param  aErrorCode    is the error code. 
hgs
parents:
diff changeset
    68
        */	        
hgs
parents:
diff changeset
    69
        void OnStartDocumentL(const Xml::RDocumentParameters& aDocParam, TInt aErrorCode);        
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
        /**
hgs
parents:
diff changeset
    72
        * From MContentHandler A notification telling about the end 
hgs
parents:
diff changeset
    73
        * of a document.
hgs
parents:
diff changeset
    74
        * @param  	aErrorCode is the error code. 
hgs
parents:
diff changeset
    75
					If this is not KErrNone then special action may be required.        
hgs
parents:
diff changeset
    76
        */		    
hgs
parents:
diff changeset
    77
	    void OnEndDocumentL(TInt aErrorCode);
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
        /**
hgs
parents:
diff changeset
    80
        * From MContentHandler A notification telling about the beginning 
hgs
parents:
diff changeset
    81
        * of an element.
hgs
parents:
diff changeset
    82
        * @param				aElement is a handle to the element's details.
hgs
parents:
diff changeset
    83
        * @param				aAttributes contains the attributes for the element.
hgs
parents:
diff changeset
    84
        * @param				aErrorCode is the error code.        
hgs
parents:
diff changeset
    85
        * @return A boolean according to success.
hgs
parents:
diff changeset
    86
        */
hgs
parents:
diff changeset
    87
	    void OnStartElementL(const Xml::RTagInfo& aElement, const Xml::RAttributeArray& aAttributes, 
hgs
parents:
diff changeset
    88
								 TInt aErrorCode);   
hgs
parents:
diff changeset
    89
								 
hgs
parents:
diff changeset
    90
        /**
hgs
parents:
diff changeset
    91
        This method is a callback to indicate the end of the element has been reached.
hgs
parents:
diff changeset
    92
        @param				aElement is a handle to the element's details.
hgs
parents:
diff changeset
    93
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
    94
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
    95
        */
hgs
parents:
diff changeset
    96
        void OnEndElementL(const Xml::RTagInfo& aElement, TInt aErrorCode);
hgs
parents:
diff changeset
    97
        
hgs
parents:
diff changeset
    98
        /**
hgs
parents:
diff changeset
    99
        This method is a callback that sends the content of the element.
hgs
parents:
diff changeset
   100
        Not all the content may be returned in one go. The data may be sent in chunks.
hgs
parents:
diff changeset
   101
        When an OnEndElementL is received this means there is no more content to be sent.
hgs
parents:
diff changeset
   102
        @param				aBytes is the raw content data for the element. 
hgs
parents:
diff changeset
   103
        					The client is responsible for converting the data to the 
hgs
parents:
diff changeset
   104
        					required character set if necessary.
hgs
parents:
diff changeset
   105
        					In some instances the content may be binary and must not be converted.
hgs
parents:
diff changeset
   106
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
   107
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
   108
        */
hgs
parents:
diff changeset
   109
        void OnContentL(const TDesC8& aBytes, TInt aErrorCode);     
hgs
parents:
diff changeset
   110
        /**
hgs
parents:
diff changeset
   111
        This method is a notification of the beginning of the scope of a prefix-URI Namespace mapping.
hgs
parents:
diff changeset
   112
        This method is always called before the corresponding OnStartElementL method.
hgs
parents:
diff changeset
   113
        @param				aPrefix is the Namespace prefix being declared.
hgs
parents:
diff changeset
   114
        @param				aUri is the Namespace URI the prefix is mapped to.
hgs
parents:
diff changeset
   115
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
   116
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
   117
        */
hgs
parents:
diff changeset
   118
    	void OnStartPrefixMappingL(const RString& aPrefix, const RString& aUri, 
hgs
parents:
diff changeset
   119
    									   TInt aErrorCode);           								                         
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
        /**
hgs
parents:
diff changeset
   122
        This method is a notification of the end of the scope of a prefix-URI mapping.
hgs
parents:
diff changeset
   123
        This method is called after the corresponding DoEndElementL method.
hgs
parents:
diff changeset
   124
        @param				aPrefix is the Namespace prefix that was mapped.
hgs
parents:
diff changeset
   125
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
   126
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
   127
        */
hgs
parents:
diff changeset
   128
       	void OnEndPrefixMappingL(const RString& aPrefix, TInt aErrorCode);
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
        /**
hgs
parents:
diff changeset
   132
        This method is a notification of ignorable whitespace in element content.
hgs
parents:
diff changeset
   133
        @param				aBytes are the ignored bytes from the document being parsed.
hgs
parents:
diff changeset
   134
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
   135
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
   136
        */
hgs
parents:
diff changeset
   137
        void OnIgnorableWhiteSpaceL(const TDesC8& aBytes, TInt aErrorCode);
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
        /**
hgs
parents:
diff changeset
   141
        This method is a notification of a skipped entity. If the parser encounters an 
hgs
parents:
diff changeset
   142
        external entity it does not need to expand it - it can return the entity as aName 
hgs
parents:
diff changeset
   143
        for the client to deal with.
hgs
parents:
diff changeset
   144
        @param				aName is the name of the skipped entity.
hgs
parents:
diff changeset
   145
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
   146
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
   147
        */
hgs
parents:
diff changeset
   148
        void OnSkippedEntityL(const RString& aName, TInt aErrorCode);
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
        /**
hgs
parents:
diff changeset
   152
        This method is a receive notification of a processing instruction.
hgs
parents:
diff changeset
   153
        @param				aTarget is the processing instruction target.
hgs
parents:
diff changeset
   154
        @param				aData is the processing instruction data. If empty none was supplied.
hgs
parents:
diff changeset
   155
        @param				aErrorCode is the error code.
hgs
parents:
diff changeset
   156
        					If this is not KErrNone then special action may be required.
hgs
parents:
diff changeset
   157
        */
hgs
parents:
diff changeset
   158
        void OnProcessingInstructionL(const TDesC8& aTarget, const TDesC8& aData, 
hgs
parents:
diff changeset
   159
        										  TInt aErrorCode);
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
        /**
hgs
parents:
diff changeset
   163
        This method indicates an error has occurred.
hgs
parents:
diff changeset
   164
        @param				aError is the error code
hgs
parents:
diff changeset
   165
        */
hgs
parents:
diff changeset
   166
        void OnError(TInt aErrorCode);
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
        /**
hgs
parents:
diff changeset
   170
        This method obtains the interface matching the specified uid.
hgs
parents:
diff changeset
   171
        @return				0 if no interface matching the uid is found.
hgs
parents:
diff changeset
   172
        					Otherwise, the this pointer cast to that interface.
hgs
parents:
diff changeset
   173
        @param				aUid the uid identifying the required interface.
hgs
parents:
diff changeset
   174
        */
hgs
parents:
diff changeset
   175
        TAny* GetExtendedInterface(const TInt32 aUid);
hgs
parents:
diff changeset
   176
        
hgs
parents:
diff changeset
   177
        /**
hgs
parents:
diff changeset
   178
        * C++ default constructor.
hgs
parents:
diff changeset
   179
        */               
hgs
parents:
diff changeset
   180
        CBTSUCapabilityResolver( CDesCArrayFlat* aCapabilityList );
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
		/**
hgs
parents:
diff changeset
   183
        * C++ default constructor.
hgs
parents:
diff changeset
   184
        */          
hgs
parents:
diff changeset
   185
		CBTSUCapabilityResolver( RArray<TBTSUImageCap>* aCapabilityList );
hgs
parents:
diff changeset
   186
		
hgs
parents:
diff changeset
   187
        
hgs
parents:
diff changeset
   188
        /**
hgs
parents:
diff changeset
   189
        * By default Symbian 2nd phase constructor is private.
hgs
parents:
diff changeset
   190
        */
hgs
parents:
diff changeset
   191
        void ConstructL();
hgs
parents:
diff changeset
   192
        
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
    private: // Data
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196
        // Not owned.
hgs
parents:
diff changeset
   197
        //
hgs
parents:
diff changeset
   198
        RArray<TBTSUImageCap>* iCapabilityList;
hgs
parents:
diff changeset
   199
        TBool                  iCompleted;
hgs
parents:
diff changeset
   200
    };
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
#endif      // BTSU_CAPABILITY_RESOLVER_H
hgs
parents:
diff changeset
   203
            
hgs
parents:
diff changeset
   204
// End of File