Add some debug bits for type detection code.
The code is used only during debugging and needs to be explicitly
enabled by setting DEBUG_TYPE_DETECTION to 1 and inserting the function
that prints debug outputs.
Change-Id: I72f31eb86f7fcc99030e3bb6c2a869d076b066fd
diff --git a/filter/source/config/cache/cacheitem.cxx b/filter/source/config/cache/cacheitem.cxx
index 005285d..d33c3fb 100644
--- a/filter/source/config/cache/cacheitem.cxx
+++ b/filter/source/config/cache/cacheitem.cxx
@@ -389,6 +389,9 @@ sal_Bool CacheItem::dontHaveProps(const CacheItem& lProps) const
return sal_True;
}
FlatDetectionInfo::FlatDetectionInfo() :
bMatchByExtension(false), bMatchByPattern(false), bPreselectedByDocumentService(false) {}
} // namespace config
} // namespace filter
diff --git a/filter/source/config/cache/cacheitem.hxx b/filter/source/config/cache/cacheitem.hxx
index 33e7272..5e01890 100644
--- a/filter/source/config/cache/cacheitem.hxx
+++ b/filter/source/config/cache/cacheitem.hxx
@@ -206,26 +206,21 @@ typedef ::boost::unordered_map< ::rtl::OUString ,
structure can decide then, if a deep detection should be
suppressed e.g. if an URLPattern was used.
*/
struct FlatDetectionInfo
struct FlatDetectionInfo
{
// the internal type name
::rtl::OUString sType;
// this type was found by a matching the URL extension
sal_Bool bMatchByExtension;
bool bMatchByExtension;
// this type was found by a matching URL Pattern
sal_Bool bMatchByPattern;
bool bMatchByPattern;
// the user selected this type implicit by selecting a corresponding office module
sal_Bool bPreselectedByDocumentService;
bool bPreselectedByDocumentService;
FlatDetectionInfo()
: sType (::rtl::OUString())
, bMatchByExtension (sal_False )
, bMatchByPattern (sal_False )
, bPreselectedByDocumentService(sal_False )
{}
FlatDetectionInfo();
};
typedef ::std::list< FlatDetectionInfo > FlatDetection;
diff --git a/filter/source/config/cache/typedetection.cxx b/filter/source/config/cache/typedetection.cxx
index f3772e5..e7c0bc0 100644
--- a/filter/source/config/cache/typedetection.cxx
+++ b/filter/source/config/cache/typedetection.cxx
@@ -34,6 +34,13 @@
#include <unotools/localfilehelper.hxx>
#include <comphelper/processfactory.hxx>
#define DEBUG_TYPE_DETECTION 0
#if DEBUG_TYPE_DETECTION
#include <iostream>
using std::cout;
using std::endl;
#endif
namespace filter{
namespace config{
@@ -226,6 +233,22 @@ struct EqualByName : public std::binary_function<FlatDetectionInfo, FlatDetectio
}
};
#if DEBUG_TYPE_DETECTION
void printFlatDetectionList(const char* caption, const FlatDetection& types)
{
cout << "-- " << caption << endl;
FlatDetection::const_iterator it = types.begin(), itEnd = types.end();
for (; it != itEnd; ++it)
{
const FlatDetectionInfo& item = *it;
cout << " type='" << item.sType << "'; match by extension (" << item.bMatchByExtension
<< "); match by pattern (" << item.bMatchByPattern << "); pre-selected by doc service ("
<< item.bPreselectedByDocumentService << ")" << endl;
}
cout << "--" << endl;
}
#endif
}
::rtl::OUString SAL_CALL TypeDetection::queryTypeByDescriptor(css::uno::Sequence< css::beans::PropertyValue >& lDescriptor,