imagingandcamerafws/imagingunittest/testcodec/src/TestProxy.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/testcodec/src/TestProxy.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,316 @@
+// Copyright (c) 2001-2009 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:
+//
+
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
+#include "TestCodec.h"
+#include "BadVerTestCodec.h"
+#include "TestUids.hrh"
+#include "TestAsyncCodec.h"
+#include "TestExifDerived.h"
+
+#include <icl/imageconstruct.h>
+
+//
+//
+//
+class CTestDecodeConstruct : public CImageDecodeConstruct
+	{
+public:
+	static CTestDecodeConstruct* NewL();
+	static CTestDecodeConstruct* FailNewL();
+	virtual CImageDecoderPlugin* NewPluginL() const;	// from CImageDecodeConstruct
+	virtual TBool RequestThread() const;
+
+private:
+	CTestDecodeConstruct(TBool aLeaveCorrupt = EFalse);
+
+private:
+	TBool iLeaveCorrupt;
+	};
+
+
+CTestDecodeConstruct* CTestDecodeConstruct::NewL()
+	{
+	return new (ELeave) CTestDecodeConstruct();
+	}
+
+CTestDecodeConstruct* CTestDecodeConstruct::FailNewL()
+	{
+	return new (ELeave) CTestDecodeConstruct(ETrue);
+	}
+
+CTestDecodeConstruct::CTestDecodeConstruct(TBool aLeaveCorrupt)
+ :	iLeaveCorrupt(aLeaveCorrupt)
+	{
+	}
+
+CImageDecoderPlugin* CTestDecodeConstruct::NewPluginL() const
+	{
+	return CTestDecoder::NewL(iLeaveCorrupt);
+	}
+
+TBool CTestDecodeConstruct::RequestThread() const
+	{
+	return ETrue;
+	}
+
+
+//
+//
+//
+class CTestEncodeConstruct : public CImageEncodeConstruct
+	{
+public:
+	static CTestEncodeConstruct* NewL();
+	virtual CImageEncoderPlugin* NewPluginL() const;	// from CImageEncodeConstruct
+	virtual TBool RequestThread() const;
+	};
+
+CTestEncodeConstruct* CTestEncodeConstruct::NewL()
+	{
+	return new (ELeave) CTestEncodeConstruct();
+	}
+
+CImageEncoderPlugin* CTestEncodeConstruct::NewPluginL() const
+	{
+	return CTestEncoder::NewL();
+	}
+
+TBool CTestEncodeConstruct::RequestThread() const
+	{
+	return ETrue;
+	}
+
+
+class CTestExtendedDecodeConstruct : public CImageDecodeConstruct
+	{
+public:
+	static CTestExtendedDecodeConstruct* NewL();
+	virtual CImageDecoderPlugin* NewPluginL() const;	// from CImageDecodeConstruct
+
+private:
+	CTestExtendedDecodeConstruct();
+	};
+
+CTestExtendedDecodeConstruct* CTestExtendedDecodeConstruct::NewL()
+	{
+	return new (ELeave) CTestExtendedDecodeConstruct();
+	}
+
+CImageDecoderPlugin* CTestExtendedDecodeConstruct::NewPluginL() const
+	{
+	return CTestExtendedDecoder::NewL();
+	}
+
+CTestExtendedDecodeConstruct::CTestExtendedDecodeConstruct()
+	{
+	}
+
+
+class CTestExtendedEncodeConstruct : public CImageEncodeConstruct
+	{
+public:
+	static CTestExtendedEncodeConstruct * NewL();
+	virtual CImageEncoderPlugin* NewPluginL() const;	// from CImageEncodeConstruct
+
+private:
+	CTestExtendedEncodeConstruct();
+	};
+
+CTestExtendedEncodeConstruct * CTestExtendedEncodeConstruct::NewL()
+	{
+	return new (ELeave) CTestExtendedEncodeConstruct();
+	}
+
+CImageEncoderPlugin* CTestExtendedEncodeConstruct::NewPluginL() const
+	{
+	return CTestExtendedEncoder::NewL();
+	}
+
+CTestExtendedEncodeConstruct::CTestExtendedEncodeConstruct()
+	{
+	}
+	
+//
+//
+//
+class CBadVerTestDecodeConstruct : public CImageDecodeConstruct
+	{
+public:
+	static CBadVerTestDecodeConstruct* NewL();
+	virtual CImageDecoderPlugin* NewPluginL() const;	// from CImageDecodeConstruct
+	};
+
+CBadVerTestDecodeConstruct* CBadVerTestDecodeConstruct::NewL()
+	{
+	return new (ELeave) CBadVerTestDecodeConstruct();
+	}
+
+CImageDecoderPlugin* CBadVerTestDecodeConstruct::NewPluginL() const
+	{
+	return CBadVerTestDecoder::NewL();
+	}
+
+
+//
+//
+//
+class CBadVerTestEncodeConstruct : public CImageEncodeConstruct
+	{
+public:
+	static CBadVerTestEncodeConstruct* NewL();
+	virtual CImageEncoderPlugin* NewPluginL() const;	// from CImageEncodeConstruct
+	};
+
+CBadVerTestEncodeConstruct* CBadVerTestEncodeConstruct::NewL()
+	{
+	return new (ELeave) CBadVerTestEncodeConstruct;
+	}
+
+CImageEncoderPlugin* CBadVerTestEncodeConstruct::NewPluginL() const
+	{
+	return CBadVerTestEncoder::NewL();
+	}
+
+
+//
+//
+//
+class CTestAsyncDecodeConstruct : public CImageDecodeConstruct
+	{
+public:
+	static CTestAsyncDecodeConstruct* NewL();
+	virtual CImageDecoderPlugin* NewPluginL() const; // from CImageDecodeConstruct
+	};
+
+
+CTestAsyncDecodeConstruct* CTestAsyncDecodeConstruct::NewL()
+	{
+	return new (ELeave) CTestAsyncDecodeConstruct();
+	}
+
+CImageDecoderPlugin* CTestAsyncDecodeConstruct::NewPluginL() const
+	{
+	return CTestAsyncDecoder::NewL();
+	}
+
+
+//
+//
+//
+class CTestAsyncEncodeConstruct : public CImageEncodeConstruct
+	{
+public:
+	static CTestAsyncEncodeConstruct* NewL();
+	virtual CImageEncoderPlugin* NewPluginL() const; // from CImageEncodeConstruct
+	};
+
+
+CTestAsyncEncodeConstruct* CTestAsyncEncodeConstruct::NewL()
+	{
+	return new (ELeave) CTestAsyncEncodeConstruct();
+	}
+
+CImageEncoderPlugin* CTestAsyncEncodeConstruct::NewPluginL() const
+	{
+	return CTestAsyncEncoder::NewL();
+	}
+
+
+//
+// for testing the INC059847
+//
+class CTestExifDerivedEncodeConstruct : public CImageEncodeConstruct
+	{
+public:
+	static CTestExifDerivedEncodeConstruct* NewL();
+	virtual CImageEncoder* NewEncoderL() const;		// from CImageEncodeConstruct
+	virtual CImageEncoderPlugin* NewPluginL() const;
+	};
+
+CTestExifDerivedEncodeConstruct* CTestExifDerivedEncodeConstruct::NewL()
+	{
+	return new (ELeave) CTestExifDerivedEncodeConstruct();
+	}
+
+CImageEncoderPlugin* CTestExifDerivedEncodeConstruct::NewPluginL() const
+	{
+	return CDummyExifEncoder::NewL();
+	}
+	
+CImageEncoder* CTestExifDerivedEncodeConstruct::NewEncoderL() const
+	{
+	return CTestExifDerivedEncoder::NewL();
+	}	
+
+
+//
+//
+//	
+class CTestExifDerivedDecodeConstruct : public CImageDecodeConstruct
+	{
+public:
+	static CTestExifDerivedDecodeConstruct* NewL();
+	virtual CImageDecoderPlugin* NewPluginL() const;	// from CImageDecodeConstruct
+	virtual CImageDecoder* NewDecoderL() const;
+	};
+
+CTestExifDerivedDecodeConstruct* CTestExifDerivedDecodeConstruct::NewL()
+	{
+	return new (ELeave) CTestExifDerivedDecodeConstruct();
+	}
+
+CImageDecoderPlugin* CTestExifDerivedDecodeConstruct::NewPluginL() const
+	{
+	return CDummyExifDecoder::NewL();
+	}	
+	
+CImageDecoder* CTestExifDerivedDecodeConstruct::NewDecoderL() const
+	{
+	return CTestExifDerivedDecoder::NewL();
+	}
+
+
+// Exported proxy for instantiation method resolution
+
+// Define the Implementation UIDs for TST decoder
+const TImplementationProxy ImplementationTable[] =
+	{
+	IMPLEMENTATION_PROXY_ENTRY(KTestDecoderImplementationUidValue, CTestDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KFailTestDecoderImplementationUidValue, CTestDecodeConstruct::FailNewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestEncoderImplementationUidValue, CTestEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KBadVerTestDecoderImplementationUidValue, CBadVerTestDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KBadVerTestEncoderImplementationUidValue, CBadVerTestEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestAsyncDecoderImplementationUidValue, CTestAsyncDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestAsyncEncoderImplementationUidValue, CTestAsyncEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestExifDummyEncoderImplementationUidValue, CTestExifDerivedEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestExifDummyDecoderImplementationUidValue, CTestExifDerivedDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyDecoderExtCropUidValue, CTestExtendedDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyDecoderExtStreamUidValue, CTestExtendedDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyDecoderExtRotationUidValue, CTestExtendedDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyDecoderExtScalingUidValue, CTestExtendedDecodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyEncoderExtStreamUidValue, CTestExtendedEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyEncoderExtRotationUidValue, CTestExtendedEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyEncoderExtUseWithSetThumbnailUidValue, CTestExtendedEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyEncoderExtMirrorHorizontalVerticalAxisUidValue, CTestExtendedEncodeConstruct::NewL),
+	IMPLEMENTATION_PROXY_ENTRY(KTestDummyDecoderExtMirrorHorizontalVerticalAxisUidValue, CTestExtendedDecodeConstruct::NewL)
+	};
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+	{
+	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+	return ImplementationTable;
+	}