1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #include "precompiled_sd.hxx"
29 
30 #include "ConfigurationTracer.hxx"
31 
32 #include <cstdio>
33 
34 using namespace ::com::sun::star::uno;
35 using namespace ::com::sun::star::drawing::framework;
36 
37 namespace sd { namespace framework {
38 
39 void ConfigurationTracer::TraceConfiguration (
40     const Reference<XConfiguration>& rxConfiguration,
41     const char* pMessage)
42 {
43 #ifdef DEBUG
44     OSL_TRACE("%s at %p {", pMessage, rxConfiguration.get());
45     if (rxConfiguration.is())
46     {
47         TraceBoundResources(rxConfiguration, NULL, 0);
48     }
49     else
50     {
51         OSL_TRACE("    empty");
52     }
53     OSL_TRACE("}");
54 #else
55     (void)rxConfiguration;
56     (void)pMessage;
57 #endif
58 }
59 
60 
61 
62 
63 #ifdef DEBUG
64 void ConfigurationTracer::TraceBoundResources (
65     const Reference<XConfiguration>& rxConfiguration,
66     const Reference<XResourceId>& rxResourceId,
67     const int nIndentation)
68 {
69     Sequence<Reference<XResourceId> > aResourceList (
70         rxConfiguration->getResources(rxResourceId, ::rtl::OUString(), AnchorBindingMode_DIRECT));
71     const ::rtl::OUString sIndentation (::rtl::OUString::createFromAscii("    "));
72     for (sal_Int32 nIndex=0; nIndex<aResourceList.getLength(); ++nIndex)
73     {
74         ::rtl::OUString sLine (aResourceList[nIndex]->getResourceURL());
75         for (int i=0; i<nIndentation; ++i)
76             sLine = sIndentation + sLine;
77         OSL_TRACE("%s", OUStringToOString(sLine, RTL_TEXTENCODING_UTF8).getStr());
78         TraceBoundResources(rxConfiguration, aResourceList[nIndex], nIndentation+1);
79     }
80 }
81 #endif
82 
83 } } // end of namespace sd::framework
84