/usr/include/falcon/genericvector.h is in falconpl-dev 0.9.6.9-git20120606-2.1+b1.
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 | /*
FALCON - The Falcon Programming Language.
FILE: genericvector.h
Generic vector - a generic vector of elements
-------------------------------------------------------------------
Author: Giancarlo Niccolai
Begin: ven oct 27 11:02:00 CEST 2006
-------------------------------------------------------------------
(C) Copyright 2004: the FALCON developers (see list in AUTHORS file)
See LICENSE file for licensing details.
*/
#ifndef flc_genericvector_h
#define flc_genericvector_h
#include <falcon/setup.h>
#include <falcon/traits.h>
#include <falcon/basealloc.h>
namespace Falcon
{
/** Generic typeless vector.
The allocated size of a generic vector is always the needed size + 1.
This is because if you need to push a pointer from the same vector, you can push it
and THEN reallocate it.
*/
class FALCON_DYN_CLASS GenericVector: public BaseAlloc
{
byte *m_data;
uint32 m_size;
uint32 m_allocated;
uint32 m_threshold_size;
typedef enum {
alloc_block = 32
} consts;
protected:
uint32 m_itemSize;
const ElementTraits *m_traits;
GenericVector():
m_data(0),
m_size(0),
m_allocated(0),
m_threshold_size(0)
{}
void init( const ElementTraits *traits, uint32 prealloc );
public:
GenericVector( const ElementTraits *traits, uint32 prealloc=0 );
~GenericVector();
void insert( void *data, uint32 pos );
bool remove( uint32 pos );
void *at( uint32 pos ) const { return m_data + ( pos * m_itemSize ); }
void set( void *data, uint32 pos );
void push( void *data );
void pop() { m_size --; }
void *top() const { return m_data + ( (m_itemSize) * (m_size-1) ); }
void reserve( uint32 s );
void resize( uint32 s );
void threshHold( uint32 size ) { m_threshold_size = size; }
uint32 threshHold() const { return m_threshold_size; }
uint32 size() const { return m_size; }
bool empty() const { return m_size == 0; }
};
}
#endif
/* end of genericvector.h */
|