Back to index

lightning-sunbird  0.9+nobinonly
nsCtlLEModule.cpp
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
00002  * XPCTL : nsCtlLEModule.cpp
00003  *
00004  * ***** BEGIN LICENSE BLOCK *****
00005  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00006  *
00007  * The contents of this file are subject to the Mozilla Public License Version
00008  * 1.1 (the "License"); you may not use this file except in compliance with
00009  * the License. You may obtain a copy of the License at
00010  * http://www.mozilla.org/MPL/
00011  *
00012  * Software distributed under the License is distributed on an "AS IS" basis,
00013  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00014  * for the specific language governing rights and limitations under the
00015  * License.
00016  *
00017  * The Original Code is mozilla.org code. The Initial Developer of the Original Code is Sun Microsystems, Inc.  Portions created by SUN are Copyright (C) 2000 SUN Microsystems, Inc. All Rights Reserved.
00018  *
00019  * The Initial Developer of the Original Code is
00020  * Sun Microsystems, Inc.
00021  * Portions created by the Initial Developer are Copyright (C) 2000
00022  * the Initial Developer. All Rights Reserved.
00023  *
00024  * Contributor(s):
00025  *   Prabhat Hegde (prabhat.hegde@sun.com)
00026  *
00027  * Alternatively, the contents of this file may be used under the terms of
00028  * either of the GNU General Public License Version 2 or later (the "GPL"),
00029  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00030  * in which case the provisions of the GPL or the LGPL are applicable instead
00031  * of those above. If you wish to allow use of your version of this file only
00032  * under the terms of either the GPL or the LGPL, and not to allow others to
00033  * use your version of this file under the terms of the MPL, indicate your
00034  * decision by deleting the provisions above and replace them with the notice
00035  * and other provisions required by the GPL or the LGPL. If you do not delete
00036  * the provisions above, a recipient may use your version of this file under
00037  * the terms of any one of the MPL, the GPL or the LGPL.
00038  *
00039  * ***** END LICENSE BLOCK ***** */
00040 
00041 #include "nsCOMPtr.h"
00042 #include "nsCRT.h"
00043 
00044 #include "nsIFactory.h"
00045 #include "nsIGenericFactory.h"
00046 #include "nsIModule.h"
00047 #include "nsULE.h"
00048 #include "nsICategoryManager.h"
00049 #include "nsEncoderDecoderUtils.h"
00050 #include "nsUnicodeToTIS620.h"
00051 #include "nsUnicodeToSunIndic.h"
00052 #include "nsUnicodeToThaiTTF.h"
00053 
00054 //----------------------------------------------------------------------------
00055 // Global functions and data [declaration]
00056 
00057 #define ENCODER_NAME_BASE "Unicode Encoder-"
00058 
00059 NS_GENERIC_FACTORY_CONSTRUCTOR(nsULE)
00060 
00061 // Per DLL Globals
00062 PRInt32 g_InstanceCount = 0;
00063 PRInt32 g_LockCount = 0;
00064 
00065 NS_CONVERTER_REGISTRY_START
00066 NS_UCONV_REG_UNREG_ENCODER("tis620-2", NS_UNICODETOTIS620_CID)
00067 NS_UCONV_REG_UNREG_ENCODER("x-thaittf-0", NS_UNICODETOTHAITTF_CID)
00068 NS_UCONV_REG_UNREG_ENCODER("x-sun-unicode-india-0", NS_UNICODETOSUNINDIC_CID)
00069 NS_CONVERTER_REGISTRY_END
00070 
00071 NS_IMPL_NSUCONVERTERREGSELF
00072 
00073 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToTIS620)
00074 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToThaiTTF)
00075 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToSunIndic)
00076 
00077 static const nsModuleComponentInfo components[] =
00078 {
00079   { ENCODER_NAME_BASE "tis620-2" , NS_UNICODETOTIS620_CID,
00080     NS_UNICODEENCODER_CONTRACTID_BASE "tis620-2",
00081     nsUnicodeToTIS620Constructor,
00082     nsUConverterRegSelf, nsUConverterUnregSelf },
00083   { ENCODER_NAME_BASE "x-thaittf-0" , NS_UNICODETOTHAITTF_CID,
00084     NS_UNICODEENCODER_CONTRACTID_BASE "x-thaittf-0",
00085     nsUnicodeToThaiTTFConstructor,
00086     nsUConverterRegSelf, nsUConverterUnregSelf },
00087   { ENCODER_NAME_BASE "x-sun-unicode-india-0" , NS_UNICODETOSUNINDIC_CID,
00088     NS_UNICODEENCODER_CONTRACTID_BASE "x-sun-unicode-india-0",
00089     nsUnicodeToSunIndicConstructor,
00090     nsUConverterRegSelf, nsUConverterUnregSelf },
00091   { "Unicode Layout Engine", NS_ULE_CID, NS_ULE_PROGID, 
00092     nsULEConstructor, NULL, NULL }
00093 };
00094 
00095 NS_IMPL_NSGETMODULE(nsCtlLEModule, components)