/usr/include/CLAM/Connection.hxx is in libclam-dev 1.4.0-6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | /*
* Copyright (c) 2001-2004 MUSIC TECHNOLOGY GROUP (MTG)
* UNIVERSITAT POMPEU FABRA
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/** \file Connection.hxx
*/
#ifndef __CONNECTION__
#define __CONNECTION__
namespace SigSlot
{
class Signal;
/** \class Connection
* \brief Class that model connections between signals and slots.
*
* This class model the concept of signal and slot connection i.e. the knowledge
* a signal has about who it has to notify whenever the client invoke the Emit( )
* method on a Signal object. Also it becomes the passage through the Slot::Unbind
* method can access the bound signals to disconnect them.
* Each time a Signal and a Slot are bound together a Connection object is created,
* being tagged by a Global Unique IDenfier ( GUID ). These GUID's are reused whenever
* the Connection object holding it is destroyed.
*
* \sa Signal, Signalv0, Signalv1, Signalv2, Signalv3, Signalv4
* \sa Slot, Slotv0, Slotv1, Slotv2, Slotv3, Slotv4
*/
class Connection
{
public:
typedef unsigned tConnectionId; /**< Type declaration for the ConnectionId */
/** \brief Default constructor
*
* Initializes the Connection so to be nil. This constructor should not
* be used from the client: its existence is justified for allowing to have
* Connection objects inside STL containers
*/
Connection();
/** \brief Explicit constructor
*
* Initializes the object with a GUID and a reference to the Signal the Slot is
* being connected to.
*/
Connection( tConnectionId id, Signal* connectedSignal );
/** \brief Assignment operator.
*
* Copies the Connection object provided, keeping the GUID and the reference
* to the signal. To avoid owning problems, the source Connection object is marked
* as 'disabled'.
*/
Connection& operator=( Connection& s );
/** \brief Copy constructor.
*
* \see operator=
*/
Connection( const Connection& s );
/** \brief Accessor to the GUID.
*
* Accessor for getting the GUID hold by the Connection object.
* \returns The GUID.
*/
tConnectionId GetID() const
{
return mID;
}
/** \brief Destructor.
*
* When connections are destroyed it is checked that the
* connection is active, if that is the case then the Signal is notified
* about not calling anymore the involved slot object.
*/
~Connection();
private:
mutable bool mMustFreeSignal; /**< Mutable flag for determining if the Connection is active or not. */
tConnectionId mID; /**< The GUID being hold by the object. */
Signal* mConnectedSignal; /**< A reference to the Signal whom the Slot is connected to. */
};
}
#endif // Connection.hxx
|