charconvfw/charconvplugins/src/shared/CnvPictographShared.h
changeset 0 1fb32624e06b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/charconvfw/charconvplugins/src/shared/CnvPictographShared.h	Tue Feb 02 02:02:46 2010 +0200
@@ -0,0 +1,305 @@
+/*
+* Copyright (c) 2002-2004 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:         This class is a utitlity class for conversion of Vodafone
+*                pictograph.
+*
+*/
+
+
+
+
+
+
+
+
+
+
+#ifndef CNVPICTOGRAPHSHARED_H
+#define CNVPICTOGRAPHSHARED_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <charconv.h>
+#include <convutils.h>
+#include "PictographObserver.h"
+
+
+// CONSTANTS
+// Count of Vodafone pictograph's pages
+const TInt KCountOfPictoPages(6);
+
+
+// CLASS DECLARATION
+
+/**
+*  This class is a utitlity class for conversion of Vodafone pictograph.
+*  The conversion data are in each CnvPctograph1 - 6 dll.
+*  CnvPictographShared only to be used by ISO2022Jp.cpl, SHIFTJIS_SHARED.dll or
+*  something. For example, when CCnvCharacterSetConverter::ConvertFromUnicode()
+*  is called, and ConvertFromUnicode() of ISO2022Jp.cpl is called. After that,
+*  ISO2022Jp.cpl sets some parameters for the conversion. At that time,
+*  CnvPictographShared::SetCharacterSetsForPictograph() is called.
+*  In a nut shell, CnvPictographShared is chaind from Japanese conversion
+*  plug-ins.
+*
+*  @lib CnvPictograph1.dll
+*  @lib CnvPictograph2.dll
+*  @lib CnvPictograph3.dll
+*  @lib CnvPictograph4.dll
+*  @lib CnvPictograph5.dll
+*  @lib CnvPictograph6.dll
+*  @since 2.6
+*/
+class CnvPictographShared
+    {
+    public:
+        /**
+        * It sets parameters to SCharacterSet array.
+        * It called in ConvertFromUnicode().
+        * It makes possible that pictograph conversion is called from other
+        * conversion plug-ins.
+        * @since 2.6
+        * @param aArrayOfCharacterSets The conversion table array
+        */
+        static void SetCharacterSetsForPictograph(
+            RArray<CnvUtilities::SCharacterSet>& aArrayOfCharacterSets);
+        /**
+        * It sets parameters to SCharacterSet array.
+        * It called in ConvertFromUnicode().
+        * It makes possible that pictograph conversion is called from other
+        * conversion plug-ins.
+        * @since 2.6
+        * @param aArrayOfCharacterSets The conversion table array
+        * @param aOriginalCharset The character set
+        */
+        static void SetCharacterSetsForPictograph(
+            RArray<CnvUtilities::SCharacterSet>& aArrayOfCharacterSets,
+            TOriginalCharset aOriginalCharset);
+        /**
+        * It sets parameters to SMethod array.
+        * It called in ConvertToUnicode().
+        * It makes possible that pictograph conversion is called from other
+        * conversion plug-ins.
+        * @since 2.6
+        * @param aArrayOfMethods The conversion table array
+        * @param aOriginalCharset The character set
+        */
+        static void SetMethodsForPictograph(
+            RArray<CnvUtilities::SMethod>& aArrayOfMethods,
+            TOriginalCharset aOriginalCharset);
+        /**
+        * It sets parameters to SState array.
+        * It called in ConvertToUnicode().
+        * It makes possible that pictograph conversion is called from other
+        * conversion plug-ins.
+        * @since 2.6
+        * @param aArrayOfMethods The conversion table array
+        */
+        static void SetStatesForPictograph(
+            RArray<CnvUtilities::SState>& aArrayOfStates);
+
+    private:
+        /**
+        * It converts from an intermediate buffer to a pictograph code.
+        * After that, it adds shift-in code(0x0F).
+        * @since 2.6
+        * @param aStartPositionInDescriptor The start postion for checking
+        * @param aDescriptor The descripter has intermidiate buffer.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void ConvertToPictograph1InPlace(
+            TInt aStartPositionInDescriptor,
+            TDes8& aDescriptor, TInt& aNumberOfCharactersThatDroppedOut);
+        /**
+        * It converts from an intermediate buffer to a pictograph code.
+        * After that, it adds shift-in code(0x0F).
+        * @since 2.6
+        * @param aStartPositionInDescriptor The start postion for checking
+        * @param aDescriptor The descripter has intermidiate buffer.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void ConvertToPictograph2InPlace(
+            TInt aStartPositionInDescriptor,
+            TDes8& aDescriptor, TInt& aNumberOfCharactersThatDroppedOut);
+        /**
+        * It converts from an intermediate buffer to a pictograph code.
+        * After that, it adds shift-in code(0x0F).
+        * @since 2.6
+        * @param aStartPositionInDescriptor The start postion for checking
+        * @param aDescriptor The descripter has intermidiate buffer.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void ConvertToPictograph3InPlace(
+            TInt aStartPositionInDescriptor,
+            TDes8& aDescriptor, TInt& aNumberOfCharactersThatDroppedOut);
+        /**
+        * It converts from an intermediate buffer to a pictograph code.
+        * After that, it adds shift-in code(0x0F).
+        * @since 2.6
+        * @param aStartPositionInDescriptor The start postion for checking
+        * @param aDescriptor The descripter has intermidiate buffer.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void ConvertToPictograph4InPlace(
+            TInt aStartPositionInDescriptor,
+            TDes8& aDescriptor, TInt& aNumberOfCharactersThatDroppedOut);
+        /**
+        * It converts from an intermediate buffer to a pictograph code.
+        * After that, it adds shift-in code(0x0F).
+        * @since 2.6
+        * @param aStartPositionInDescriptor The start postion for checking
+        * @param aDescriptor The descripter has intermidiate buffer.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void ConvertToPictograph5InPlace(
+            TInt aStartPositionInDescriptor,
+            TDes8& aDescriptor, TInt& aNumberOfCharactersThatDroppedOut);
+        /**
+        * It converts from an intermediate buffer to a pictograph code.
+        * After that, it adds shift-in code(0x0F).
+        * @since 2.6
+        * @param aStartPositionInDescriptor The start postion for checking
+        * @param aDescriptor The descripter has intermidiate buffer.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void ConvertToPictograph6InPlace(
+            TInt aStartPositionInDescriptor,
+            TDes8& aDescriptor, TInt& aNumberOfCharactersThatDroppedOut);
+
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertSJisDirectMap(const TDesC8& aDescriptor);
+
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToEucJpDirectMap1(const TDesC8& aDescriptor);
+
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToEucJpDirectMap2(const TDesC8& aDescriptor);
+
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPicto1(
+            const TDesC8& aDescriptor);
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPicto2(
+            const TDesC8& aDescriptor);
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPicto3(
+            const TDesC8& aDescriptor);
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPicto4(
+            const TDesC8& aDescriptor);
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPicto5(
+            const TDesC8& aDescriptor);
+        /**
+        * It returns a number of bytes that the conversion to pictograph is
+        * possible in the descriptor.
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPicto6(
+            const TDesC8& aDescriptor);
+        /**
+        * It's a common function for checking the number of bytes that
+        * the conversion to pictograph
+        * @since 2.6
+        * @param aDescriptor A descriptor has any character code.
+        * @param aIntermidiateCode An intermidiate buffer
+        * @return Number of bytes that the conversion is possible
+        */
+        static TInt NumberOfBytesAbleToConvertToPictograph(
+            const TDesC8& aDescriptor, TInt aIntermidiateCode);
+        /**
+        * It converts the string which includes a pictograph's escape sequence
+        * to unicode.
+        * @since 2.6
+        * @param aDescriptor It includes a pictograph's escape sequence
+        */
+        static void ConvertToPictographFromUnicode(TDes8& aDescriptor);
+
+        /**
+        * It converts the string which has Unicode with pictograph to EUC-jp
+        * with direct mapped pictograph
+        * @since 2.6
+        * @param aDescriptor It includes a pictograph's escape sequence
+        */
+        static void ConvertToPictographFromEucJpPackedInPlace(TDes8& aDescriptor);
+        /**
+        * It appends a shift-in code to the descriptor.
+        * @since 2.6
+        * @param aDescriptor It's append a shift-in code.
+        * @param aNumberOfCharactersThatDroppedOut The number of characters
+        *                                          that it's dropped out
+        */
+        static void AppendShiftIn(TDes8& aDescriptor,
+            TInt& aNumberOfCharactersThatDroppedOut);
+    };
+
+#endif // CNVPICTOGRAPHSHARED_H
+
+// End of File