1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef __FRAMEWORK_SERVICES_FRAMELOADERFACTORY_HXX_ 25*b1cdbd2cSJim Jagielski #define __FRAMEWORK_SERVICES_FRAMELOADERFACTORY_HXX_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 28*b1cdbd2cSJim Jagielski // my own includes 29*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski #include <classes/filtercache.hxx> 32*b1cdbd2cSJim Jagielski #include <threadhelp/threadhelpbase.hxx> 33*b1cdbd2cSJim Jagielski #include <macros/generic.hxx> 34*b1cdbd2cSJim Jagielski #include <macros/debug.hxx> 35*b1cdbd2cSJim Jagielski #include <macros/xinterface.hxx> 36*b1cdbd2cSJim Jagielski #include <macros/xtypeprovider.hxx> 37*b1cdbd2cSJim Jagielski #include <macros/xserviceinfo.hxx> 38*b1cdbd2cSJim Jagielski #include <general.h> 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 41*b1cdbd2cSJim Jagielski // interface includes 42*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 43*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyValue.hpp> 44*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XInitialization.hpp> 45*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/WrappedTargetException.hpp> 46*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameAccess.hpp> 47*b1cdbd2cSJim Jagielski #include <com/sun/star/container/NoSuchElementException.hpp> 48*b1cdbd2cSJim Jagielski #include <com/sun/star/io/XInputStream.hpp> 49*b1cdbd2cSJim Jagielski 50*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 51*b1cdbd2cSJim Jagielski // other includes 52*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 53*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase3.hxx> 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 56*b1cdbd2cSJim Jagielski // namespace 57*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski namespace framework{ 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 62*b1cdbd2cSJim Jagielski // exported const 63*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 66*b1cdbd2cSJim Jagielski // exported definitions 67*b1cdbd2cSJim Jagielski //_________________________________________________________________________________________________________________ 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski struct tIMPLExtractedArguments 70*b1cdbd2cSJim Jagielski { 71*b1cdbd2cSJim Jagielski ::rtl::OUString sMimeType ; 72*b1cdbd2cSJim Jagielski sal_Int32 nFlags ; 73*b1cdbd2cSJim Jagielski ::rtl::OUString sFilterName ; 74*b1cdbd2cSJim Jagielski sal_Int32 nClipboardFormat ; 75*b1cdbd2cSJim Jagielski ::rtl::OUString sDetectService ; 76*b1cdbd2cSJim Jagielski css::uno::Reference< css::io::XInputStream > xInputStream ; 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski sal_Int32 nValidMask ; 79*b1cdbd2cSJim Jagielski }; 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski /*-************************************************************************************************************//** 82*b1cdbd2cSJim Jagielski @short factory to create frameloader-objects 83*b1cdbd2cSJim Jagielski @descr These class can be used to create new loader for specified contents. 84*b1cdbd2cSJim Jagielski We use cached values of the registry to lay down, wich frameloader match 85*b1cdbd2cSJim Jagielski a given URL or filtername. To do this, we use the XMultiServiceFactory-interface. 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski @ATTENTION In a specialmode of these implementation we support a simple filterdetection. 88*b1cdbd2cSJim Jagielski But there is no special interface. You must call some existing methods in another context! 89*b1cdbd2cSJim Jagielski see createInstanceWithArguments() fo rfurther informations! 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski @implements XInterface 92*b1cdbd2cSJim Jagielski XTypeProvider 93*b1cdbd2cSJim Jagielski XServiceInfo 94*b1cdbd2cSJim Jagielski XMultiServiceFactory 95*b1cdbd2cSJim Jagielski XNameAccess 96*b1cdbd2cSJim Jagielski XElementAccess 97*b1cdbd2cSJim Jagielski @base ThreadHelpBase 98*b1cdbd2cSJim Jagielski OWeakObject 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski @devstatus deprecated 101*b1cdbd2cSJim Jagielski *//*-*************************************************************************************************************/ 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski class FrameLoaderFactory : public ThreadHelpBase , // Struct for right initalization of mutex member! Mst first of baseclasses 104*b1cdbd2cSJim Jagielski public ::cppu::WeakImplHelper3< ::com::sun::star::lang::XServiceInfo,::com::sun::star::lang::XMultiServiceFactory,::com::sun::star::container::XNameAccess > 105*b1cdbd2cSJim Jagielski { 106*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 107*b1cdbd2cSJim Jagielski // public methods 108*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski public: 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 113*b1cdbd2cSJim Jagielski // constructor / destructor 114*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 117*b1cdbd2cSJim Jagielski @short standard constructor 118*b1cdbd2cSJim Jagielski @descr Initialize a new instance and fill the registrycache with values. 119*b1cdbd2cSJim Jagielski To do this - xFactory must be valid! 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski @seealso class RegistryCache 122*b1cdbd2cSJim Jagielski @seealso member m_aRegistryCache 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski @param "xFactory", factory which has created us. 125*b1cdbd2cSJim Jagielski @return - 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski @onerror An ASSERTION is thrown in debug version, if xFactory is invalid or cache can't filled. 128*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski FrameLoaderFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory ); 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 133*b1cdbd2cSJim Jagielski @short standard destructor to delete instance 134*b1cdbd2cSJim Jagielski @descr We use it to clear ouer cache. 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski @seealso class RegistryCache 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski @param - 139*b1cdbd2cSJim Jagielski @return - 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski @onerror - 142*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski virtual ~FrameLoaderFactory(); 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 147*b1cdbd2cSJim Jagielski // XInterface, XTypeProvider, XServiceInfo 148*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski DECLARE_XSERVICEINFO 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 153*b1cdbd2cSJim Jagielski // XMultiServiceFactory 154*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 155*b1cdbd2cSJim Jagielski 156*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 157*b1cdbd2cSJim Jagielski @short create a new frameloder (without arguments!) 158*b1cdbd2cSJim Jagielski @descr We search for an agreement between given type name and our cache-content. 159*b1cdbd2cSJim Jagielski If we found some information, we create the registered frameloader for these type. 160*b1cdbd2cSJim Jagielski Otherwise - we return NULL. 161*b1cdbd2cSJim Jagielski We search from begin to end of internal loader list! 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski @seealso method impl_createFrameLoader() 164*b1cdbd2cSJim Jagielski @seealso method createInstanceWithArguments() 165*b1cdbd2cSJim Jagielski 166*b1cdbd2cSJim Jagielski @param "sTypeName", type name of a document to filter, open or save. 167*b1cdbd2cSJim Jagielski @return A reference to a new created frameloader. 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski @onerror A null reference is returned. 170*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& sTypeName ) throw( css::uno::Exception , 173*b1cdbd2cSJim Jagielski css::uno::RuntimeException ); 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 176*b1cdbd2cSJim Jagielski @short create a new frameloder 177*b1cdbd2cSJim Jagielski @descr We search for an agreement between given type name and our cache-content. 178*b1cdbd2cSJim Jagielski If we found some information, we create the registered frameloader for these type. 179*b1cdbd2cSJim Jagielski Otherwise - we return NULL. 180*b1cdbd2cSJim Jagielski You can give us some optional arguments to influence our search! 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski @seealso method impl_createFrameLoader() 183*b1cdbd2cSJim Jagielski @seealso method createInstance() 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielski @param "sTypeName", type name of a document to filter, open or save. 186*b1cdbd2cSJim Jagielski @param "seqArguments", list of optional arguments for initializing of new frameloader. 187*b1cdbd2cSJim Jagielski @return A reference to a new created frameloader. 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim Jagielski @onerror A null reference is returned. 190*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::rtl::OUString& sTypeName , 193*b1cdbd2cSJim Jagielski const css::uno::Sequence< css::uno::Any >& seqArguments) throw( css::uno::Exception , 194*b1cdbd2cSJim Jagielski css::uno::RuntimeException); 195*b1cdbd2cSJim Jagielski 196*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 197*b1cdbd2cSJim Jagielski @short not supported 198*b1cdbd2cSJim Jagielski @descr Please use XNameAcces instead of these! 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski @seealso - 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski @param - 203*b1cdbd2cSJim Jagielski @return - 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski @onerror - 206*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 207*b1cdbd2cSJim Jagielski 208*b1cdbd2cSJim Jagielski virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames() throw( css::uno::RuntimeException ); 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 211*b1cdbd2cSJim Jagielski // XNameAccess 212*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 215*b1cdbd2cSJim Jagielski @short return properties of registered frame loader specified by his implementation name 216*b1cdbd2cSJim Jagielski @descr Use these method to get all informations about our internal loader cache 217*b1cdbd2cSJim Jagielski and a special frame loader. 218*b1cdbd2cSJim Jagielski We return a Sequence< PropertyValue > in an Any packed as result. 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski structure of return value: 221*b1cdbd2cSJim Jagielski [0].Name = "Types" 222*b1cdbd2cSJim Jagielski [0].Value = list of supported types of these loader as [sequence< oustring >] 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski [1].Name = "UIName" 225*b1cdbd2cSJim Jagielski [1].Value = localized name of loader as [string] 226*b1cdbd2cSJim Jagielski 227*b1cdbd2cSJim Jagielski @seealso method getElementNames() 228*b1cdbd2cSJim Jagielski @seealso method hasByName() 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski @param "sName", the name of searched frame loader (use getElementNames() to get it!) 231*b1cdbd2cSJim Jagielski @return A Sequence< PropertyValue > packed in an Any. 232*b1cdbd2cSJim Jagielski 233*b1cdbd2cSJim Jagielski @onerror If given name not exist a NoSuchElementException is thrown. 234*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 235*b1cdbd2cSJim Jagielski 236*b1cdbd2cSJim Jagielski virtual css::uno::Any SAL_CALL getByName( const ::rtl::OUString& sName ) throw( css::container::NoSuchElementException , 237*b1cdbd2cSJim Jagielski css::lang::WrappedTargetException , 238*b1cdbd2cSJim Jagielski css::uno::RuntimeException ); 239*b1cdbd2cSJim Jagielski 240*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 241*b1cdbd2cSJim Jagielski @short return list of all well known loader names from configuration 242*b1cdbd2cSJim Jagielski @descr Use these method to get all names of well known loader. 243*b1cdbd2cSJim Jagielski You can use it to get the properties of a loader by calling getByName()! 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski @seealso method getByName() 246*b1cdbd2cSJim Jagielski @seealso method hasByName() 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski @param - 249*b1cdbd2cSJim Jagielski @return A list of well known loader. Is static at runtime! 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski @onerror No error should occure. 252*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 253*b1cdbd2cSJim Jagielski 254*b1cdbd2cSJim Jagielski virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw( css::uno::RuntimeException ); 255*b1cdbd2cSJim Jagielski 256*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 257*b1cdbd2cSJim Jagielski @short check if searched frame loader exist in configuration 258*b1cdbd2cSJim Jagielski @descr Normaly nobody need these method realy (use getElementNames() in combination with getByName()). 259*b1cdbd2cSJim Jagielski We guarantee correctness of these mechanism. There is no reason to check for existing elements then ... 260*b1cdbd2cSJim Jagielski but if you have an unknwon name and has no fun to search it in returned sequence ... 261*b1cdbd2cSJim Jagielski you can call these ... 262*b1cdbd2cSJim Jagielski 263*b1cdbd2cSJim Jagielski @seealso method getByName() 264*b1cdbd2cSJim Jagielski @seealso method getElementNames() 265*b1cdbd2cSJim Jagielski 266*b1cdbd2cSJim Jagielski @param "sName", implementation name of searched frame loader 267*b1cdbd2cSJim Jagielski @return sal_True if loader exist, sal_False otherwise. 268*b1cdbd2cSJim Jagielski 269*b1cdbd2cSJim Jagielski @onerror No error should occure. 270*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& sName ) throw( css::uno::RuntimeException ); 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 275*b1cdbd2cSJim Jagielski // XElementAccess 276*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------------------------------------------- 277*b1cdbd2cSJim Jagielski 278*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 279*b1cdbd2cSJim Jagielski @short return the type of retrun value of method XNameAccess::getByName() 280*b1cdbd2cSJim Jagielski @descr In these implementation its a Sequence< PropertyValue > everytime! 281*b1cdbd2cSJim Jagielski 282*b1cdbd2cSJim Jagielski @seealso description of interface XNameAccess 283*b1cdbd2cSJim Jagielski 284*b1cdbd2cSJim Jagielski @param - 285*b1cdbd2cSJim Jagielski @return Type of Sequence< PropertyValue >. 286*b1cdbd2cSJim Jagielski 287*b1cdbd2cSJim Jagielski @onerror No error should occure. 288*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 289*b1cdbd2cSJim Jagielski 290*b1cdbd2cSJim Jagielski virtual css::uno::Type SAL_CALL getElementType() throw( css::uno::RuntimeException ); 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 293*b1cdbd2cSJim Jagielski @short return state if informations about frame loader available 294*b1cdbd2cSJim Jagielski @descr If these method return false - no information could'nt read from configuration ... 295*b1cdbd2cSJim Jagielski I think nothing will work then. Normaly we return sal_True! 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski @seealso class FilterCache! 298*b1cdbd2cSJim Jagielski 299*b1cdbd2cSJim Jagielski @param - 300*b1cdbd2cSJim Jagielski @return sal_True if information available, sal_False otherwise. 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski @onerror No error should occure. 303*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 304*b1cdbd2cSJim Jagielski 305*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() throw( css::uno::RuntimeException ); 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 308*b1cdbd2cSJim Jagielski // protected methods 309*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski protected: 312*b1cdbd2cSJim Jagielski 313*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 314*b1cdbd2cSJim Jagielski // private methods 315*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 316*b1cdbd2cSJim Jagielski 317*b1cdbd2cSJim Jagielski private: 318*b1cdbd2cSJim Jagielski 319*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 320*b1cdbd2cSJim Jagielski @short try to set configuration properties at created loader 321*b1cdbd2cSJim Jagielski @descr We support the old async. loader interface ( XFrameLoader ) and the new one XSynchronousFrameLoader. 322*b1cdbd2cSJim Jagielski The new one should implement a property set on which we can set his configuration values! 323*b1cdbd2cSJim Jagielski We try to cast given loader to these interface - if it's exist we set the values - otherwise not! 324*b1cdbd2cSJim Jagielski 325*b1cdbd2cSJim Jagielski @seealso service FrameLoader 326*b1cdbd2cSJim Jagielski @seealso service SynchronousFrameLoader 327*b1cdbd2cSJim Jagielski 328*b1cdbd2cSJim Jagielski @param "xLoader" loader with generic XInterface! (We don't know before which service type is used!) 329*b1cdbd2cSJim Jagielski @param "pLoaderInfo" configuration structure of these loader. 330*b1cdbd2cSJim Jagielski @return - 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski @onerror No error should occure. 333*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski void impl_initializeLoader( css::uno::Reference< css::uno::XInterface >& xLoader, const Loader& pLoaderInfo ); 336*b1cdbd2cSJim Jagielski 337*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 338*b1cdbd2cSJim Jagielski // debug methods 339*b1cdbd2cSJim Jagielski // (should be private everyway!) 340*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski /*-****************************************************************************************************//** 343*b1cdbd2cSJim Jagielski @short debug-method to check incoming parameter of some other mehods of this class 344*b1cdbd2cSJim Jagielski @descr The following methods are used to check parameters for other methods 345*b1cdbd2cSJim Jagielski of this class. The return value is used directly for an ASSERT(...). 346*b1cdbd2cSJim Jagielski 347*b1cdbd2cSJim Jagielski @seealso ASSERTs in implementation! 348*b1cdbd2cSJim Jagielski 349*b1cdbd2cSJim Jagielski @param references to checking variables 350*b1cdbd2cSJim Jagielski @return sal_False ,on invalid parameter 351*b1cdbd2cSJim Jagielski @return sal_True ,otherwise 352*b1cdbd2cSJim Jagielski 353*b1cdbd2cSJim Jagielski @onerror - 354*b1cdbd2cSJim Jagielski *//*-*****************************************************************************************************/ 355*b1cdbd2cSJim Jagielski 356*b1cdbd2cSJim Jagielski 357*b1cdbd2cSJim Jagielski #ifdef ENABLE_ASSERTIONS 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim Jagielski private: 360*b1cdbd2cSJim Jagielski 361*b1cdbd2cSJim Jagielski static sal_Bool impldbg_checkParameter_FrameLoaderFactory ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory ); 362*b1cdbd2cSJim Jagielski static sal_Bool impldbg_checkParameter_createInstance ( const ::rtl::OUString& sTypeName ); 363*b1cdbd2cSJim Jagielski static sal_Bool impldbg_checkParameter_createInstanceWithArguments ( const ::rtl::OUString& sTypeName , 364*b1cdbd2cSJim Jagielski const css::uno::Sequence< css::uno::Any >& seqArguments); 365*b1cdbd2cSJim Jagielski static sal_Bool impldbg_checkParameter_getByName ( const ::rtl::OUString& sName ); 366*b1cdbd2cSJim Jagielski static sal_Bool impldbg_checkParameter_hasByName ( const ::rtl::OUString& sName ); 367*b1cdbd2cSJim Jagielski 368*b1cdbd2cSJim Jagielski #endif // #ifdef ENABLE_ASSERTIONS 369*b1cdbd2cSJim Jagielski 370*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 371*b1cdbd2cSJim Jagielski // private variables 372*b1cdbd2cSJim Jagielski // (should be private everyway!) 373*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------------------------------------------- 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim Jagielski private: 376*b1cdbd2cSJim Jagielski 377*b1cdbd2cSJim Jagielski css::uno::Reference< css::lang::XMultiServiceFactory > m_xFactory ; 378*b1cdbd2cSJim Jagielski FilterCache m_aCache ; 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim Jagielski }; // class FrameLoaderFactory 381*b1cdbd2cSJim Jagielski 382*b1cdbd2cSJim Jagielski } // namespace framework 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim Jagielski #endif // #ifndef __FRAMEWORK_SERVICES_FRAMELOADERFACTORY_HXX_ 385