• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ------------------------------------------------------------------
2  * Copyright (C) 1998-2009 PacketVideo
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13  * express or implied.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  * -------------------------------------------------------------------
17  */
18 #ifndef PV_CONFIG_INTERFACE_H_INCLUDED
19 #define PV_CONFIG_INTERFACE_H_INCLUDED
20 
21 #include "oscl_base.h"
22 #include "oscl_vector.h"
23 
24 /**
25  * Base interface for all configuration classes
26  */
27 class PVConfigInterface
28 {
29         /**
30          * This command provides a list of UUIDs supported by this configuration object.
31          * The client can then check whether it also supports the interfaces
32          * implemented by the configuration object.  If so, the client needs to call
33          * QueryInterface to retrieve the interface object of the specified UID.
34          *
35          * @param aUuids Output parameter to hold a vector containing the supported UUIDs
36          * @param aExactUuidsOnly Turns on/off the retrival of UUIDs with aMimeType as a base type
37          * @param aContextData Optional opaque data to be passed back to user with the command response
38          * @returns A unique command id for asynchronous completion
39          */
40         virtual PVCommandId QueryUUID(Oscl_Vector<PVUUID>& aUuids, OsclAny* aContextData = NULL) = 0;
41 
42         /**
43          * This command provides a pointer to the configuration interface of the specified UUID.
44          *
45          * @param aUuid The UUID of the desired interface
46          * @param aInterfacePtr Output pointer to the desired interface
47          * @param aContextData Optional opaque data to be passed back to user with the command response
48          * @returns A unique command id for asynchronous completion
49          */
50         virtual PVCommandId QueryInterface(const PVUUID& aUuid,
51                                            PVInterfacePtr& aInterfacePtr,
52                                            OsclAny* aContextData = NULL) = 0;
53 }
54 
55 #endif // PV_CONFIG_INTERFACE_H_INCLUDED
56 
57 
58 
59 
60