williamr@2: williamr@2: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // ImageConstruct.h - classes used during construction of decoders/encoders williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __ImageConstruct_h williamr@2: #define __ImageConstruct_h williamr@2: williamr@2: #include williamr@2: williamr@2: // forward declarations williamr@2: class CImageDecoder; williamr@2: class CImageDecoderPlugin; williamr@2: class CImageEncoder; williamr@2: class CImageEncoderPlugin; williamr@2: class RCImageDecodeConstructTest; williamr@2: class RCImageEncodeConstructTest; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Provides functions related to constructing decoders. williamr@2: williamr@2: Objects of this class are loaded by ECOM, and it is this class which williamr@2: is responsible for instantiating the decoder plugins. Plugin writers williamr@2: must derive their own plugin specific variants. The derived class williamr@2: is responsible for defining its own factory function to create instances williamr@2: of itself. williamr@2: */ williamr@2: williamr@2: class CImageDecodeConstruct : public CBase williamr@2: { williamr@2: friend class CImageDecoder; williamr@2: public: williamr@2: IMPORT_C ~CImageDecodeConstruct(); williamr@2: williamr@2: IMPORT_C TUid ImplementationUid() const; williamr@2: // create new CImageDecoder - default creates basic CImageDecoder williamr@2: IMPORT_C virtual CImageDecoder* NewDecoderL() const; williamr@2: williamr@2: /** williamr@2: Creates a new concrete CImageDecoderPlugin object. williamr@2: williamr@2: This is a pure virtual function that each derived class must implement. williamr@2: williamr@2: @return A pointer to a fully constructed CImageDecoderPlugin. williamr@2: */ williamr@2: virtual CImageDecoderPlugin* NewPluginL() const = 0; williamr@2: williamr@2: // request threaded decode - default false williamr@2: IMPORT_C virtual TBool RequestThread() const; williamr@2: protected: williamr@2: IMPORT_C CImageDecodeConstruct(); williamr@2: IMPORT_C void ConstructL(); williamr@2: williamr@2: private: williamr@2: IMPORT_C virtual void ReservedVirtual1(); williamr@2: IMPORT_C virtual void ReservedVirtual2(); williamr@2: IMPORT_C virtual void ReservedVirtual3(); williamr@2: IMPORT_C virtual void ReservedVirtual4(); williamr@2: private: williamr@2: /** williamr@2: This member is internal and not intended for use. williamr@2: */ williamr@2: TUid iDtorIDKey; williamr@2: williamr@2: /** williamr@2: This member is internal and not intended for use. williamr@2: */ williamr@2: TAny* iReserved; williamr@2: williamr@2: friend class RCImageDecodeConstructTest; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Provides functions related to constructing encoders. williamr@2: williamr@2: Objects of this class are loaded by ECOM, and it is this class which williamr@2: is responsible for instantiating the encoder plugins. Plugin writers williamr@2: must derive their own plugin specific variants. The derived class williamr@2: is responsible for defining its own factory function to create instances williamr@2: of itself. williamr@2: */ williamr@2: class CImageEncodeConstruct : public CBase williamr@2: { williamr@2: friend class CImageEncoder; williamr@2: public: williamr@2: IMPORT_C ~CImageEncodeConstruct(); williamr@2: williamr@2: IMPORT_C TUid ImplementationUid() const; williamr@2: // create new CImageEncoder - default creates basic CImageEncoder williamr@2: IMPORT_C virtual CImageEncoder* NewEncoderL() const; williamr@2: williamr@2: /** williamr@2: Creates new concrete CImageEncoderPlugin object. williamr@2: williamr@2: This is a virtual function that each derived class must implement. williamr@2: williamr@2: @return A pointer to fully constructed CImageEncoderPlugin. williamr@2: */ williamr@2: virtual CImageEncoderPlugin* NewPluginL() const = 0; williamr@2: williamr@2: // request threaded encode - default false williamr@2: IMPORT_C virtual TBool RequestThread() const; williamr@2: protected: williamr@2: IMPORT_C CImageEncodeConstruct(); williamr@2: IMPORT_C void ConstructL(); williamr@2: williamr@2: private: williamr@2: IMPORT_C virtual void ReservedVirtual1(); williamr@2: IMPORT_C virtual void ReservedVirtual2(); williamr@2: IMPORT_C virtual void ReservedVirtual3(); williamr@2: IMPORT_C virtual void ReservedVirtual4(); williamr@2: private: williamr@2: TUid iDtorIDKey; williamr@2: TAny* iReserved; williamr@2: friend class RCImageEncodeConstructTest; williamr@2: }; williamr@2: williamr@2: #endif //__ImageConstruct_h