1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SW_INC_IINTERFACE_HXX
21 #define INCLUDED_SW_INC_IINTERFACE_HXX
23 #include <sal/types.h>
25 /** The base interface
31 /** Acquire a reference to an instance. A caller shall release
32 the instance by calling 'release' when it is no longer needed.
33 'acquire' and 'release' calls need to be balanced.
36 the current reference count of the instance for debugging purposes.
38 virtual sal_Int32
acquire() = 0;
40 /** Releases a reference to an instance. A caller has to call
41 'release' when a before acquired reference to an instance
42 is no longer needed. 'acquire' and 'release' calls need to
46 the current reference count of the instance for debugging purposes.
48 virtual sal_Int32
release() = 0;
50 /** Returns the current reference count. This method should be used for
51 debugging purposes. Using it otherwise is a signal of a design flaw.
53 virtual sal_Int32
getReferenceCount() const = 0;
56 virtual ~IInterface() {};
59 #endif // INCLUDED_SW_INC_IINTERFACE_HXX
61 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */