/usr/include/assa-3.5/assa/IdSet.h is in libassa-3.5-5-dev 3.5.1-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 | // -*- c++ -*-
//------------------------------------------------------------------------------
// IdSet.h
//------------------------------------------------------------------------------
// Copyright (c) 1997 by Vladislav Grinchenko
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//------------------------------------------------------------------------------
#ifndef ID_SET_H
#define ID_SET_H
#include <string.h>
#include <sys/time.h> /* select(3) */
#if defined(Linux) /* select(3) */
# include <sys/types.h>
# include <unistd.h>
#endif
#if defined(WIN32)
# include <winsock2.h>
#endif
namespace ASSA {
/** @file IdSet.h
Class IdSet implements a set of reusable unique IDs, up to 1024.
IdSet class is my shot at reusable ids, similar to file descriptors
provided by OS. ID numbers are recycable, up to 1024.
*/
class IdSet
{
public:
/// Default constructor creates IdSet object with ID equals to 0.
IdSet ();
/** Return current id. Mark it as being in use and set
new current id value to the next lowest available.
*/
int newid ();
/** Recycle id_. Mark it as available and adjust current
id if necessary.
*/
int recycle (int id_);
/** Get current id. This function just returns current id without
changing anything.
*/
int currid () const;
private:
/** Current id
*/
int m_next_available_id;
/** Map of all ids.
*/
fd_set m_id_set_map;
};
inline
IdSet::
IdSet()
: m_next_available_id (0)
{
::memset (&m_id_set_map, 0, sizeof (m_id_set_map));
}
inline int
IdSet::
currid() const
{
return m_next_available_id;
}
} // end namespace ASSA
#endif /* ID_SET_H */
|