summaryrefslogtreecommitdiff
path: root/linguistic/source/spelldsp.hxx
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2008-12-15 12:01:46 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2008-12-15 12:01:46 +0000
commit4cd49d0d3f71d2162bcf50d0beecba2bc67a8e48 (patch)
tree8597e76338a51b35ce0555f8e7954e4dbffbbfdf /linguistic/source/spelldsp.hxx
parent308739bd5b6f8c59c84d00c71a139aced75035fa (diff)
CWS-TOOLING: integrate CWS tl56_DEV300
Diffstat (limited to 'linguistic/source/spelldsp.hxx')
-rw-r--r--linguistic/source/spelldsp.hxx151
1 files changed, 37 insertions, 114 deletions
diff --git a/linguistic/source/spelldsp.hxx b/linguistic/source/spelldsp.hxx
index b826f30ba5..53e5be5d17 100644
--- a/linguistic/source/spelldsp.hxx
+++ b/linguistic/source/spelldsp.hxx
@@ -36,69 +36,39 @@
#include "iprcache.hxx"
#include <uno/lbnames.h> // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
-#include <cppuhelper/implbase1.hxx> // helper for implementations
-#include <cppuhelper/implbase2.hxx> // helper for implementations
-#include <cppuhelper/implbase7.hxx> // helper for implementations
+#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase7.hxx>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XServiceDisplayName.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/PropertyValues.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/linguistic2/XSpellChecker.hpp>
#include <com/sun/star/linguistic2/XSpellChecker1.hpp>
+#include <com/sun/star/linguistic2/XSpellChecker.hpp>
#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
#include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
-#include <tools/table.hxx>
+#include <boost/shared_ptr.hpp>
+#include <map>
class LngSvcMgr;
///////////////////////////////////////////////////////////////////////////
-class SeqLangSvcEntry_Spell
-{
- friend class SpellCheckerDispatcher;
- friend BOOL SvcListHasLanguage(
- const SeqLangSvcEntry_Spell &rEntry,
- INT16 nLanguage );
-
- ::com::sun::star::uno::Sequence< ::rtl::OUString > aSvcImplNames;
- ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XSpellChecker > > aSvcRefs;
- ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XSpellChecker1 > > aSvc1Refs;
-
-// INT16 nLang; //used as key in the table
- SvcFlags aFlags;
-
-public:
- SeqLangSvcEntry_Spell() {}
- SeqLangSvcEntry_Spell( const ::com::sun::star::uno::Sequence<
- ::rtl::OUString > &rSvcImplNames );
- ~SeqLangSvcEntry_Spell();
-
- BOOL IsAlreadyWarned() const { return aFlags.bAlreadyWarned != 0; }
- void SetAlreadyWarned(BOOL bVal) { aFlags.bAlreadyWarned = 0 != bVal; }
- BOOL IsDoWarnAgain() const { return aFlags.bDoWarnAgain != 0; }
- void SetDoWarnAgain(BOOL bVal) { aFlags.bDoWarnAgain = 0 != bVal; }
-};
-
-DECLARE_TABLE( SpellSvcList, SeqLangSvcEntry_Spell * )
-
-
class SpellCheckerDispatcher :
public cppu::WeakImplHelper2
<
- ::com::sun::star::linguistic2::XSpellChecker,
- ::com::sun::star::linguistic2::XSpellChecker1
+ ::com::sun::star::linguistic2::XSpellChecker1,
+ ::com::sun::star::linguistic2::XSpellChecker
>,
public LinguDispatcher
{
- SpellSvcList aSvcList;
- LinguOptions aOpt;
+ typedef boost::shared_ptr< LangSvcEntries_Spell > LangSvcEntries_Spell_Ptr_t;
+ typedef std::map< LanguageType, LangSvcEntries_Spell_Ptr_t > SpellSvcByLangMap_t;
+ SpellSvcByLangMap_t aSvcMap;
+ LinguOptions aOpt;
::com::sun::star::uno::Reference<
::com::sun::star::beans::XPropertySet > xPropSet;
@@ -106,15 +76,13 @@ class SpellCheckerDispatcher :
::com::sun::star::linguistic2::XSearchableDictionaryList > xDicList;
LngSvcMgr &rMgr;
- linguistic::IPRSpellCache *pExtCache; // SpellCache for external SpellCheckers
- // (usually those not called via XSpellChecker1)
- // One for all of them.
+ linguistic::SpellCache *pCache; // Spell Cache (holds known words)
// disallow copy-constructor and assignment-operator for now
SpellCheckerDispatcher(const SpellCheckerDispatcher &);
SpellCheckerDispatcher & operator = (const SpellCheckerDispatcher &);
- inline linguistic::IPRSpellCache & GetExtCache() const;
+ inline linguistic::SpellCache & GetCache() const;
inline ::com::sun::star::uno::Reference<
::com::sun::star::beans::XPropertySet >
@@ -125,97 +93,52 @@ class SpellCheckerDispatcher :
void ClearSvcList();
- BOOL isValid_Impl(const ::rtl::OUString& aWord, INT16 nLanguage,
+ BOOL isValid_Impl(const ::rtl::OUString& aWord, LanguageType nLanguage,
const ::com::sun::star::beans::PropertyValues& aProperties,
BOOL bCheckDics)
throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException );
::com::sun::star::uno::Reference<
::com::sun::star::linguistic2::XSpellAlternatives >
- spell_Impl(const ::rtl::OUString& aWord, INT16 nLanguage,
+ spell_Impl(const ::rtl::OUString& aWord, LanguageType nLanguage,
const ::com::sun::star::beans::PropertyValues& aProperties,
BOOL bCheckDics)
throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException );
- BOOL isValidInAny(const ::rtl::OUString& aWord,
- const ::com::sun::star::uno::Sequence< INT16 >& aLanguages,
- const ::com::sun::star::beans::PropertyValues& aProperties)
- throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException );
-
- com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XSpellAlternatives >
- spellInAny(const ::rtl::OUString& aWord,
- const ::com::sun::star::uno::Sequence< INT16 >& aLanguages,
- const ::com::sun::star::beans::PropertyValues& aProperties,
- INT16 nPreferredResultLang)
- throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException );
-
public:
SpellCheckerDispatcher( LngSvcMgr &rLngSvcMgr );
virtual ~SpellCheckerDispatcher();
// XSupportedLocales (for XSpellChecker)
- virtual ::com::sun::star::uno::Sequence<
- ::com::sun::star::lang::Locale > SAL_CALL
- getLocales()
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL
- hasLocale( const ::com::sun::star::lang::Locale& aLocale )
- throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::lang::Locale > SAL_CALL getLocales() throw(::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL hasLocale( const ::com::sun::star::lang::Locale& aLocale ) throw(::com::sun::star::uno::RuntimeException);
// XSpellChecker
- virtual sal_Bool SAL_CALL
- isValid( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XSpellAlternatives > SAL_CALL
- spell( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
-
- // XSupportedLanguages (for XSpellChecker1)
- virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL
- getLanguages()
- throw(::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL
- hasLanguage( sal_Int16 nLanguage )
- throw(::com::sun::star::uno::RuntimeException);
-
- // XSpellChecker1 (same as XSpellChecker but sal_Int16 for language)
- virtual sal_Bool SAL_CALL
- isValid( const ::rtl::OUString& aWord, sal_Int16 nLanguage,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XSpellAlternatives > SAL_CALL
- spell( const ::rtl::OUString& aWord, sal_Int16 nLanguage,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isValid( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XSpellAlternatives > SAL_CALL spell( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+
+ // XSupportedLanguages
+ virtual ::com::sun::star::uno::Sequence< ::sal_Int16 > SAL_CALL getLanguages( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL hasLanguage( ::sal_Int16 nLanguage ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XSpellChecker1
+ virtual ::sal_Bool SAL_CALL isValid( const ::rtl::OUString& aWord, ::sal_Int16 nLanguage, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProperties ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XSpellAlternatives > SAL_CALL spell( const ::rtl::OUString& aWord, ::sal_Int16 nLanguage, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProperties ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
// LinguDispatcher
- virtual void
- SetServiceList( const ::com::sun::star::lang::Locale &rLocale,
- const ::com::sun::star::uno::Sequence<
- rtl::OUString > &rSvcImplNames );
- virtual ::com::sun::star::uno::Sequence< rtl::OUString >
- GetServiceList( const ::com::sun::star::lang::Locale &rLocale ) const;
- virtual DspType
- GetDspType() const;
+ virtual void SetServiceList( const ::com::sun::star::lang::Locale &rLocale, const ::com::sun::star::uno::Sequence< rtl::OUString > &rSvcImplNames );
+ virtual ::com::sun::star::uno::Sequence< rtl::OUString > GetServiceList( const ::com::sun::star::lang::Locale &rLocale ) const;
+ virtual DspType GetDspType() const;
+
+ void FlushSpellCache();
};
-inline linguistic::IPRSpellCache & SpellCheckerDispatcher::GetExtCache() const
+inline linguistic::SpellCache & SpellCheckerDispatcher::GetCache() const
{
- if (!pExtCache)
- ((SpellCheckerDispatcher *) this)->pExtCache = new linguistic::IPRSpellCache( 997 );
- return *pExtCache;
+ if (!pCache)
+ ((SpellCheckerDispatcher *) this)->pCache = new linguistic::SpellCache();
+ return *pCache;
}