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_MACROS_DEBUG_TARGETING_HXX_ 25*b1cdbd2cSJim Jagielski #define __FRAMEWORK_MACROS_DEBUG_TARGETING_HXX_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski //***************************************************************************************************************** 28*b1cdbd2cSJim Jagielski // special macros for targeting of frames 29*b1cdbd2cSJim Jagielski //***************************************************************************************************************** 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski #ifdef ENABLE_TARGETINGDEBUG 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski //_____________________________________________________________________________________________________________ 34*b1cdbd2cSJim Jagielski // includes 35*b1cdbd2cSJim Jagielski //_____________________________________________________________________________________________________________ 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski #ifndef _RTL_STRBUF_HXX_ 38*b1cdbd2cSJim Jagielski #include <rtl/strbuf.hxx> 39*b1cdbd2cSJim Jagielski #endif 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 42*b1cdbd2cSJim Jagielski LOGFILE_TARGETING 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski For follow macros we need a special log file. If user forget to specify anyone, we must do it for him! 45*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski #ifndef LOGFILE_TARGETING 48*b1cdbd2cSJim Jagielski #define LOGFILE_TARGETSTEPS "targetsteps.log" 49*b1cdbd2cSJim Jagielski #define LOGFILE_TARGETPARAM "targetparam.log" 50*b1cdbd2cSJim Jagielski #endif 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 53*b1cdbd2cSJim Jagielski LOG_PARAMETER_FINDFRAME( SSERVICE, SFRAMENAME, STARGETNAME, NSEARCHFLAGS ) 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski Log format for parameter e.g.: Desktop::findFrame( "frame1", 23 ) my name is "desktop" 56*b1cdbd2cSJim Jagielski Log format for steps e.g.: desktop-- 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski With this macro you can log informations about search parameter of method "findFrame()" of an service. 59*b1cdbd2cSJim Jagielski Use it at beginning of search only! 60*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski #define LOG_PARAMETER_FINDFRAME( SSERVICE, SFRAMENAME, STARGETNAME, NSEARCHFLAGS ) \ 63*b1cdbd2cSJim Jagielski /* Use new scope to prevent code against multiple variable defines! */ \ 64*b1cdbd2cSJim Jagielski { \ 65*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBufferParam(256); \ 66*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBufferSteps(256); \ 67*b1cdbd2cSJim Jagielski sBufferParam.append( SSERVICE ); \ 68*b1cdbd2cSJim Jagielski sBufferParam.append( "::findFrame( \"" ); \ 69*b1cdbd2cSJim Jagielski sBufferParam.append( U2B( STARGETNAME ) ); \ 70*b1cdbd2cSJim Jagielski sBufferParam.append( "\", " ); \ 71*b1cdbd2cSJim Jagielski sBufferParam.append( ::rtl::OString::valueOf( sal_Int32( NSEARCHFLAGS ) ) ); \ 72*b1cdbd2cSJim Jagielski sBufferParam.append( " ) my name is \"" ); \ 73*b1cdbd2cSJim Jagielski sBufferParam.append( U2B( SFRAMENAME ) ); \ 74*b1cdbd2cSJim Jagielski sBufferParam.append( "\"\n" ); \ 75*b1cdbd2cSJim Jagielski sBufferSteps.append( U2B( SFRAMENAME ) ); \ 76*b1cdbd2cSJim Jagielski sBufferSteps.append( "--" ); \ 77*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETPARAM, sBufferParam.makeStringAndClear() ) \ 78*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETSTEPS, sBufferSteps.makeStringAndClear() ) \ 79*b1cdbd2cSJim Jagielski } 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 82*b1cdbd2cSJim Jagielski LOG_PARAMETER_QUERYDISPATCH( SSERVICE, SFRAMENAME, AURL, STARGETNAME, NSEARCHFLAGS ) 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski With this macro you can log informations about search parameter of method "queryDispatch()" of an service. 85*b1cdbd2cSJim Jagielski Use it at beginning of search only! 86*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski #define LOG_PARAMETER_QUERYDISPATCH( SSERVICE, SFRAMENAME, AURL, STARGETNAME, NSEARCHFLAGS ) \ 89*b1cdbd2cSJim Jagielski /* Use new scope to prevent code against multiple variable defines! */ \ 90*b1cdbd2cSJim Jagielski { \ 91*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBuffer(1024); \ 92*b1cdbd2cSJim Jagielski sBuffer.append( "[ " ); \ 93*b1cdbd2cSJim Jagielski sBuffer.append( U2B( SFRAMENAME ) ); \ 94*b1cdbd2cSJim Jagielski sBuffer.append( "] " ); \ 95*b1cdbd2cSJim Jagielski sBuffer.append( SSERVICE ); \ 96*b1cdbd2cSJim Jagielski sBuffer.append( "::queryDispatch( \"" ); \ 97*b1cdbd2cSJim Jagielski sBuffer.append( U2B( AURL.Complete ) ); \ 98*b1cdbd2cSJim Jagielski sBuffer.append( "\", \"" ); \ 99*b1cdbd2cSJim Jagielski sBuffer.append( U2B( STARGETNAME ) ); \ 100*b1cdbd2cSJim Jagielski sBuffer.append( "\", " ); \ 101*b1cdbd2cSJim Jagielski sBuffer.append( ::rtl::OString::valueOf( sal_Int32( NSEARCHFLAGS ) ) ); \ 102*b1cdbd2cSJim Jagielski sBuffer.append( " )\n" ); \ 103*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETPARAM, sBuffer.makeStringAndClear() ) \ 104*b1cdbd2cSJim Jagielski } 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 107*b1cdbd2cSJim Jagielski LOG_PARAMETER_LOADCOMPONENTFROMURL( SSERVICE, SFRAMENAME, SURL, STARGETNAME, NSEARCHFLAGS, SEQPARAMETER ) 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski With this macro you can log informations about search parameter of method "loadComponentFromURL()" of an service. 110*b1cdbd2cSJim Jagielski Use it at beginning of search only! 111*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski #define LOG_PARAMETER_LOADCOMPONENTFROMURL( SSERVICE, SFRAMENAME, SURL, STARGETNAME, NSEARCHFLAGS, SEQPARAMETER ) \ 114*b1cdbd2cSJim Jagielski /* Use new scope to prevent code against multiple variable defines! */ \ 115*b1cdbd2cSJim Jagielski { \ 116*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBuffer(1024); \ 117*b1cdbd2cSJim Jagielski sBuffer.append( "[ " ); \ 118*b1cdbd2cSJim Jagielski sBuffer.append( U2B( SFRAMENAME ) ); \ 119*b1cdbd2cSJim Jagielski sBuffer.append( "] " ); \ 120*b1cdbd2cSJim Jagielski sBuffer.append( SSERVICE ); \ 121*b1cdbd2cSJim Jagielski sBuffer.append( "::loadComponentFromURL( \"" ); \ 122*b1cdbd2cSJim Jagielski sBuffer.append( U2B( SURL ) ); \ 123*b1cdbd2cSJim Jagielski sBuffer.append( "\", \"" ); \ 124*b1cdbd2cSJim Jagielski sBuffer.append( U2B( STARGETNAME ) ); \ 125*b1cdbd2cSJim Jagielski sBuffer.append( "\", " ); \ 126*b1cdbd2cSJim Jagielski sBuffer.append( ::rtl::OString::valueOf( sal_Int32( NSEARCHFLAGS ) ) ); \ 127*b1cdbd2cSJim Jagielski sBuffer.append( ", " ); \ 128*b1cdbd2cSJim Jagielski sal_Int32 nCount = SEQPARAMETER.getLength(); \ 129*b1cdbd2cSJim Jagielski for( sal_Int32 nParameter=0; nParameter<nCount; ++nParameter ) \ 130*b1cdbd2cSJim Jagielski { \ 131*b1cdbd2cSJim Jagielski sBuffer.append( U2B( SEQPARAMETER[nParameter].Name )); \ 132*b1cdbd2cSJim Jagielski if( nParameter<(nCount-1) ) \ 133*b1cdbd2cSJim Jagielski { \ 134*b1cdbd2cSJim Jagielski sBuffer.append( " | " ); \ 135*b1cdbd2cSJim Jagielski } \ 136*b1cdbd2cSJim Jagielski } \ 137*b1cdbd2cSJim Jagielski sBuffer.append( " )\n" ); \ 138*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETPARAM, sBuffer.makeStringAndClear() ) \ 139*b1cdbd2cSJim Jagielski } 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 142*b1cdbd2cSJim Jagielski LOG_RESULT_FINDFRAME( SSERVICE, SFRAMENAME, XFRAME ) 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski With this macro you can log informations about search result of "findFrame()". 145*b1cdbd2cSJim Jagielski Use it at the end of this method only! 146*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski #define LOG_RESULT_FINDFRAME( SSERVICE, SFRAMENAME, XFRAME ) \ 149*b1cdbd2cSJim Jagielski /* Use new scope to prevent code against multiple variable defines! */ \ 150*b1cdbd2cSJim Jagielski { \ 151*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBufferParam(256); \ 152*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBufferSteps(256); \ 153*b1cdbd2cSJim Jagielski sBufferParam.append( SSERVICE ); \ 154*b1cdbd2cSJim Jagielski sBufferParam.append( "::findFrame() at \"" ); \ 155*b1cdbd2cSJim Jagielski sBufferParam.append( U2B( SFRAMENAME ) ); \ 156*b1cdbd2cSJim Jagielski sBufferParam.append( "\" " ); \ 157*b1cdbd2cSJim Jagielski if( XFRAME.is() == sal_True ) \ 158*b1cdbd2cSJim Jagielski { \ 159*b1cdbd2cSJim Jagielski sBufferParam.append( "return with valid frame.\n" ); \ 160*b1cdbd2cSJim Jagielski sBufferSteps.append( "OK [" ); \ 161*b1cdbd2cSJim Jagielski sBufferSteps.append( U2B( XFRAME->getName() ) ); \ 162*b1cdbd2cSJim Jagielski sBufferSteps.append( "]\n" ); \ 163*b1cdbd2cSJim Jagielski } \ 164*b1cdbd2cSJim Jagielski else \ 165*b1cdbd2cSJim Jagielski { \ 166*b1cdbd2cSJim Jagielski sBufferParam.append( "return with NULL frame!\n"); \ 167*b1cdbd2cSJim Jagielski sBufferSteps.append( "??\n" ); \ 168*b1cdbd2cSJim Jagielski } \ 169*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETPARAM, sBufferParam.makeStringAndClear() ) \ 170*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETSTEPS, sBufferSteps.makeStringAndClear() ) \ 171*b1cdbd2cSJim Jagielski } 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 174*b1cdbd2cSJim Jagielski LOG_RESULT_QUERYDISPATCH( SSERVICE, SFRAMENAME, XDISPATCHER ) 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski With this macro you can log informations about search result of "queryDispatch()". 177*b1cdbd2cSJim Jagielski Use it at the end of this method only! 178*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 179*b1cdbd2cSJim Jagielski 180*b1cdbd2cSJim Jagielski #define LOG_RESULT_QUERYDISPATCH( SSERVICE, SFRAMENAME, XDISPATCHER ) \ 181*b1cdbd2cSJim Jagielski /* Use new scope to prevent code against multiple variable defines! */ \ 182*b1cdbd2cSJim Jagielski { \ 183*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBuffer(1024); \ 184*b1cdbd2cSJim Jagielski sBuffer.append( "[ " ); \ 185*b1cdbd2cSJim Jagielski sBuffer.append( U2B( SFRAMENAME ) ); \ 186*b1cdbd2cSJim Jagielski sBuffer.append( "] " ); \ 187*b1cdbd2cSJim Jagielski sBuffer.append( SSERVICE ); \ 188*b1cdbd2cSJim Jagielski if( XDISPATCHER.is() == sal_True ) \ 189*b1cdbd2cSJim Jagielski { \ 190*b1cdbd2cSJim Jagielski sBuffer.append( "::queryDispatch() return with valid dispatcher." ); \ 191*b1cdbd2cSJim Jagielski } \ 192*b1cdbd2cSJim Jagielski else \ 193*b1cdbd2cSJim Jagielski { \ 194*b1cdbd2cSJim Jagielski sBuffer.append( "::queryDispatch() return with NULL dispatcher!" ); \ 195*b1cdbd2cSJim Jagielski } \ 196*b1cdbd2cSJim Jagielski sBuffer.append( "\n" ); \ 197*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETPARAM, sBuffer.makeStringAndClear() ) \ 198*b1cdbd2cSJim Jagielski } 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 201*b1cdbd2cSJim Jagielski LOG_RESULT_LOADCOMPONENTFROMURL( SSERVICE, SFRAMENAME, XCOMPONENT ) 202*b1cdbd2cSJim Jagielski 203*b1cdbd2cSJim Jagielski With this macro you can log informations about search result of "loadComponentFromURL()". 204*b1cdbd2cSJim Jagielski Use it at the end of this method only! 205*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski #define LOG_RESULT_LOADCOMPONENTFROMURL( SSERVICE, SFRAMENAME, XCOMPONENT ) \ 208*b1cdbd2cSJim Jagielski /* Use new scope to prevent code against multiple variable defines! */ \ 209*b1cdbd2cSJim Jagielski { \ 210*b1cdbd2cSJim Jagielski ::rtl::OStringBuffer sBuffer(1024); \ 211*b1cdbd2cSJim Jagielski sBuffer.append( "[ " ); \ 212*b1cdbd2cSJim Jagielski sBuffer.append( U2B( SFRAMENAME ) ); \ 213*b1cdbd2cSJim Jagielski sBuffer.append( "] " ); \ 214*b1cdbd2cSJim Jagielski sBuffer.append( SSERVICE ); \ 215*b1cdbd2cSJim Jagielski if( XCOMPONENT.is() == sal_True ) \ 216*b1cdbd2cSJim Jagielski { \ 217*b1cdbd2cSJim Jagielski sBuffer.append( "::loadComponentFromURL() return with valid component." ); \ 218*b1cdbd2cSJim Jagielski } \ 219*b1cdbd2cSJim Jagielski else \ 220*b1cdbd2cSJim Jagielski { \ 221*b1cdbd2cSJim Jagielski sBuffer.append( "::loadComponentFromURL() return with NULL component!" ); \ 222*b1cdbd2cSJim Jagielski } \ 223*b1cdbd2cSJim Jagielski sBuffer.append( "\n" ); \ 224*b1cdbd2cSJim Jagielski WRITE_LOGFILE( LOGFILE_TARGETPARAM, sBuffer.makeStringAndClear() ) \ 225*b1cdbd2cSJim Jagielski } 226*b1cdbd2cSJim Jagielski 227*b1cdbd2cSJim Jagielski #else // #ifdef ENABLE_TARGETINGDEBUG 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski /*_____________________________________________________________________________________________________________ 230*b1cdbd2cSJim Jagielski If right testmode is'nt set - implements these macro empty! 231*b1cdbd2cSJim Jagielski _____________________________________________________________________________________________________________*/ 232*b1cdbd2cSJim Jagielski 233*b1cdbd2cSJim Jagielski #undef LOGFILE_TARGETPARAM 234*b1cdbd2cSJim Jagielski #undef LOGFILE_TARGETSTEPS 235*b1cdbd2cSJim Jagielski #define LOG_PARAMETER_FINDFRAME( SSERVICE, SFRAMENAME, STARGETNAME, NSEARCHFLAGS ) 236*b1cdbd2cSJim Jagielski #define LOG_PARAMETER_QUERYDISPATCH( SSERVICE, SFRAMENAME, AURL, STARGETNAME, NSEARCHFLAGS ) 237*b1cdbd2cSJim Jagielski #define LOG_PARAMETER_LOADCOMPONENTFROMURL( SSERVICE, SFRAMENAME, SURL, STARGETNAME, NSEARCHFLAGS, SEQPARAMETER ) 238*b1cdbd2cSJim Jagielski #define LOG_RESULT_FINDFRAME( SSERVICE, SFRAMENAME, XFRAME ) 239*b1cdbd2cSJim Jagielski #define LOG_RESULT_QUERYDISPATCH( SSERVICE, SFRAMENAME, XDISPATCHER ) 240*b1cdbd2cSJim Jagielski #define LOG_RESULT_LOADCOMPONENTFROMURL( SSERVICE, SFRAMENAME, XCOMPONENT ) 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski #endif // #ifdef ENABLE_TARGETINGDEBUG 243*b1cdbd2cSJim Jagielski 244*b1cdbd2cSJim Jagielski //***************************************************************************************************************** 245*b1cdbd2cSJim Jagielski // end of file 246*b1cdbd2cSJim Jagielski //***************************************************************************************************************** 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski #endif // #ifndef __FRAMEWORK_MACROS_DEBUG_TARGETING_HXX_ 249