Kaydet (Commit) 169bd771 authored tarafından Caolán McNamara's avatar Caolán McNamara

[API-CHANGE] drop css.comp.logging.SimpleLogRing

Change-Id: I2f61a8ec24a28a917b458673df6ed45ac1f93e72
Reviewed-on: https://gerrit.libreoffice.org/36447Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 9bd5b6b9
......@@ -88,7 +88,6 @@ $(eval $(call gb_Library_add_exception_objects,comphelper,\
comphelper/source/misc/docpasswordhelper \
comphelper/source/misc/docpasswordrequest \
comphelper/source/misc/documentinfo \
comphelper/source/misc/documentiologring \
comphelper/source/misc/evtlistenerhlp \
comphelper/source/misc/evtmethodhelper \
comphelper/source/misc/fileurl \
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#include <com/sun/star/frame/DoubleInitializationException.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <cppuhelper/supportsservice.hxx>
#include "documentiologring.hxx"
#include <rtl/ref.hxx>
using namespace ::com::sun::star;
namespace comphelper
{
OSimpleLogRing::OSimpleLogRing()
: m_aMessages( SIMPLELOGRING_SIZE )
, m_bInitialized( false )
, m_bFull( false )
, m_nPos( 0 )
{
}
OSimpleLogRing::~OSimpleLogRing()
{
}
// XSimpleLogRing
void SAL_CALL OSimpleLogRing::logString( const OUString& aMessage )
{
::osl::MutexGuard aGuard( m_aMutex );
m_aMessages[m_nPos] = aMessage;
if ( ++m_nPos >= (sal_Int32)m_aMessages.size() )
{
m_nPos = 0;
m_bFull = true;
}
// if used once then default initialized
m_bInitialized = true;
}
uno::Sequence< OUString > SAL_CALL OSimpleLogRing::getCollectedLog()
{
::osl::MutexGuard aGuard( m_aMutex );
sal_Int32 nResLen = m_bFull ? m_aMessages.size() : m_nPos;
sal_Int32 nStart = m_bFull ? m_nPos : 0;
uno::Sequence< OUString > aResult( nResLen );
for ( sal_Int32 nInd = 0; nInd < nResLen; nInd++ )
aResult[nInd] = m_aMessages[ ( nStart + nInd ) % m_aMessages.size() ];
// if used once then default initialized
m_bInitialized = true;
return aResult;
}
// XInitialization
void SAL_CALL OSimpleLogRing::initialize( const uno::Sequence< uno::Any >& aArguments )
{
::osl::MutexGuard aGuard( m_aMutex );
if ( m_bInitialized )
throw frame::DoubleInitializationException();
if ( !m_refCount )
throw uno::RuntimeException(); // the object must be refcounted already!
if (aArguments.hasElements())
{
sal_Int32 nLen = 0;
if ( aArguments.getLength() == 1 && ( aArguments[0] >>= nLen ) && nLen )
m_aMessages.resize( nLen );
else
throw lang::IllegalArgumentException(
"Nonnull size is expected as the first argument!",
uno::Reference< uno::XInterface >(),
0 );
}
m_bInitialized = true;
}
// XServiceInfo
OUString SAL_CALL OSimpleLogRing::getImplementationName()
{
return OUString("com.sun.star.comp.logging.SimpleLogRing");
}
sal_Bool SAL_CALL OSimpleLogRing::supportsService( const OUString& aServiceName )
{
return cppu::supportsService(this, aServiceName);
}
uno::Sequence< OUString > SAL_CALL OSimpleLogRing::getSupportedServiceNames()
{
return { "com.sun.star.logging.SimpleLogRing" };
}
} // namespace comphelper
namespace {
struct Instance {
explicit Instance():
instance(new comphelper::OSimpleLogRing())
{}
rtl::Reference<cppu::OWeakObject> instance;
};
struct Singleton:
public rtl::Static<Instance, Singleton>
{};
}
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
com_sun_star_comp_logging_SimpleLogRing(
css::uno::XComponentContext *,
css::uno::Sequence<css::uno::Any> const &)
{
return cppu::acquire(Singleton::get().instance.get());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef INCLUDED_COMPHELPER_SOURCE_MISC_DOCUMENTIOLOGRING_HXX
#define INCLUDED_COMPHELPER_SOURCE_MISC_DOCUMENTIOLOGRING_HXX
#include <com/sun/star/logging/XSimpleLogRing.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <osl/mutex.hxx>
#include <cppuhelper/implbase.hxx>
#include <vector>
#define SIMPLELOGRING_SIZE 256
namespace comphelper
{
class OSimpleLogRing : public ::cppu::WeakImplHelper< css::logging::XSimpleLogRing,
css::lang::XInitialization,
css::lang::XServiceInfo >
{
::osl::Mutex m_aMutex;
std::vector< OUString > m_aMessages;
bool m_bInitialized;
bool m_bFull;
sal_Int32 m_nPos;
public:
OSimpleLogRing();
virtual ~OSimpleLogRing() override;
// XSimpleLogRing
virtual void SAL_CALL logString( const OUString& aMessage ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getCollectedLog() override;
// XInitialization
virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
// XServiceInfo
virtual OUString SAL_CALL getImplementationName( ) override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
};
} // namespace comphelper
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -51,11 +51,6 @@
constructor="com_sun_star_comp_embed_InstanceLocker">
<service name="com.sun.star.embed.InstanceLocker"/>
</implementation>
<implementation name="com.sun.star.comp.logging.SimpleLogRing"
constructor="com_sun_star_comp_logging_SimpleLogRing">
<service name="com.sun.star.logging.SimpleLogRing"/>
<singleton name="com.sun.star.logging.DocumentIOLogRing"/>
</implementation>
<implementation name="com.sun.star.comp.task.OfficeRestartManager"
constructor="com_sun_star_comp_task_OfficeRestartManager">
<service name="com.sun.star.comp.task.OfficeRestartManager"/>
......
......@@ -245,11 +245,9 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/linguistic2,\
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/logging,\
ConsoleHandler \
CsvLogFormatter \
DocumentIOLogRing \
FileHandler \
LoggerPool \
PlainTextFormatter \
SimpleLogRing \
))
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/mail,\
MailMessage \
......@@ -2863,7 +2861,6 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/logging,\
XLogHandler \
XLogger \
XLoggerPool \
XSimpleLogRing \
))
$(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/mail,\
MailAttachment \
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef __com_sun_star_logging_DocumentIOLogRing_idl__
#define __com_sun_star_logging_DocumentIOLogRing_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#include <com/sun/star/beans/NamedValue.idl>
module com { module sun { module star { module logging {
interface XSimpleLogRing;
/** This singleton is intended to log the IO events related to loading/storing
of documents.
<p>
Please do not use the singleton without communication with source owner!
</p>
@since OOo 3.2
*/
singleton DocumentIOLogRing : XSimpleLogRing;
}; }; }; };
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef __com_sun_star_logging_SimpleLogRing_idl__
#define __com_sun_star_logging_SimpleLogRing_idl__
#include <com/sun/star/lang/IllegalArgumentException.idl>
#include <com/sun/star/beans/NamedValue.idl>
module com { module sun { module star { module logging {
interface XSimpleLogRing;
/** This service allows to log the events in a ring of specified size.
@since OOo 3.2
*/
service SimpleLogRing : XSimpleLogRing
{
/** creates a ring of default size - 256 messages
*/
create();
/** creates a ring of specified size
@param nSize
the number of messages in a ring
*/
createWithSize( [in] long nSize );
};
}; }; }; };
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* 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 .
*/
#ifndef __com_sun_star_logging_XSimpleLogRing_idl__
#define __com_sun_star_logging_XSimpleLogRing_idl__
#include <com/sun/star/uno/XInterface.idl>
module com { module sun { module star { module logging {
/** a simple log ring allowing to collect a limited number of last events
<p>
The intention of this interface is to provide a simple possibility
for developer to collect the most important events without affecting
the performance. For this reasons the messages related API is quite
simple, the strings should be produced by the preprocessor mainly.
</p>
@since OOo 3.2
*/
interface XSimpleLogRing
{
/** allows to add a message to the logger
*/
void logString( [in] string aMessage );
/** allows to get the collected messages from the logger
<p>
It is up to logger implementation to provide only the limited
number of last messages.
</p>
*/
sequence< string > getCollectedLog();
};
}; }; }; };
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -102,7 +102,6 @@ core_constructor_list = [
"com_sun_star_comp_chart2_ChartFrameLoader_get_implementation",
# comphelper/util/comphelp.component
"com_sun_star_comp_MemoryStream",
"com_sun_star_comp_logging_SimpleLogRing",
"com_sun_star_comp_task_OfficeRestartManager",
"IndexedPropertyValuesContainer_get_implementation",
"NamedPropertyValuesContainer_get_implementation",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment