blob: 117eff24c72f9a63a65d85475c80f1ab2aa4670a [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#if !defined INCLUDED_JFW_PLUGIN_DIAGNOSTICS_HXX
#define INCLUDED_JFW_PLUGIN_DIAGNOSTICS_HXX
#include "osl/diagnose.h"
#include "rtl/ustring.hxx"
#include <stdio.h>
#if OSL_DEBUG_LEVEL >= 1
#define JFW_ENSURE(c, m) _JFW_ENSURE(c, OSL_THIS_FILE, __LINE__, m)
#else
#define JFW_ENSURE(c, m) ((void) 0)
#endif
#if OSL_DEBUG_LEVEL >= 2
#define JFW_WARNING2(c, m) _JFW_WARNING2(c, OSL_THIS_FILE, __LINE__, m)
#else
#define JFW_WARNING2(c, m) ((void) 0)
#endif
#if OSL_DEBUG_LEVEL >= 0
#define JFW_TRACE0(m) jfw_trace(m)
#else
#define JFW_TRACE0(m) ((void) 0)
#endif
#if OSL_DEBUG_LEVEL >= 1
#define JFW_TRACE1(m) jfw_trace(m)
#else
#define JFW_TRACE1(m) ((void) 0)
#endif
#if OSL_DEBUG_LEVEL >= 2
#define JFW_TRACE2(m) jfw_trace(m)
#else
#define JFW_TRACE2(m) ((void) 0)
#endif
#define _JFW_ENSURE(c, f, l, m) jfw_ensure(c, f, l, m)
#define _JFW_WARNING(c, f, l, m) jfw_warning2(c, f, l, m);
namespace jfw_plugin
{
inline void jfw_ensure(bool
#if OSL_DEBUG_LEVEL > 0 /* prevent warning in pro version */
condition
#endif
, const sal_Char *
#if OSL_DEBUG_LEVEL > 0 /* prevent warning in pro version */
pzFile
#endif
, sal_Int32
#if OSL_DEBUG_LEVEL > 0 /* prevent warning in pro version */
line
#endif
, const rtl::OUString& message )
{
rtl::OString oMsg = rtl::OUStringToOString(message, osl_getThreadTextEncoding());
_OSL_ENSURE(condition, pzFile, line, oMsg.getStr());
}
inline void jfw_warning2(bool condition, const sal_Char * pzFile, sal_Int32 line,
sal_Char * pzMessage)
{
if (! condition)
fprintf(
stderr, "%s\n File: %s\n Line: %ld", pzMessage, pzFile,
sal::static_int_cast< unsigned long >(line));
}
inline void jfw_trace(rtl::OUString message)
{
rtl::OString oMsg = rtl::OUStringToOString(message, osl_getThreadTextEncoding());
fprintf(stderr,"%s", oMsg.getStr());
}
inline void jfw_trace(const sal_Char * pzMessage)
{
if (pzMessage)
fprintf(stderr,"%s", pzMessage);
}
inline void jfw_trace(const rtl::OString& message)
{
if (message.getLength() > 0)
fprintf(stderr,"%s", message.getStr());
}
}
#endif