/usr/include/wvstreams/wvlink.h is in libwvstreams-dev 4.6.1-2build1.
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 | /* -*- Mode: C++ -*-
* Worldvisions Weaver Software:
* Copyright (C) 1997-2002 Net Integration Technologies, Inc.
*
* WvLink is one element of a linked list.
* Used by wvlinklist.h.
*/
#ifndef __WVLINK_H
#define __WVLINK_H
#include <stdlib.h> // for 'NULL'
/**
* WvLink is one element of a WvList<T>.
*
* Note that WvLink itself is untyped to minimize the amount of
* generated code. This means that WvLink cannot handle the
* autofree behaviour itself which would require static type
* information. Instead, it defers this behaviour to the
* template instantiation of WvList<T> that uses it.
*
*/
class WvLink
{
public:
void *data;
WvLink *next;
const char *id;
private:
bool autofree : 1;
public:
WvLink(void *_data, bool _autofree, const char *_id = NULL):
data(_data), next(NULL), id(_id), autofree(_autofree)
{}
WvLink(void *_data, WvLink *prev, WvLink *&tail, bool _autofree,
const char *_id = NULL);
bool get_autofree()
{
return autofree;
}
void set_autofree(bool _autofree)
{
autofree = _autofree;
}
void unlink(WvLink *prev)
{
prev->next = next;
delete this;
}
};
#define WvIterStuff(_type_) \
/*! @brief Returns a reference to the current element. */ \
_type_ &operator () () const \
{ return *ptr(); } \
/*! @brief Returns a pointer to the current element. */ \
_type_ *operator -> () const \
{ return ptr(); } \
/*! @brief Returns a reference to the current element. */ \
_type_ &operator* () const \
{ return *ptr(); }
#endif // __WVLINK_H
|