squid-
cache.org
Optimising Web Delivery
Docs
Download
Donate
Support
About
Contact
Shop
Blog
src
ipc
mem
FlexibleArray.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3
*
4
* Squid software is distributed under GPLv2+ license and includes
5
* contributions from numerous individuals and organizations.
6
* Please see the COPYING and CONTRIBUTORS files for details.
7
*/
8
9
#ifndef SQUID_IPC_MEM_FLEXIBLE_ARRAY_H
10
#define SQUID_IPC_MEM_FLEXIBLE_ARRAY_H
11
12
// sometimes required for placement-new operator to be declared
13
#include <new>
14
15
namespace
Ipc
16
{
17
18
namespace
Mem
19
{
20
25
template
<
class
Item>
26
class
FlexibleArray
27
{
28
public
:
29
explicit
FlexibleArray
(
const
int
capacity) {
30
if
(capacity > 1)
// the first item is initialized automatically
31
new
(
raw
()+1) Item[capacity-1];
32
}
33
34
Item &
operator []
(
const
int
idx) {
return
items
[idx]; }
35
const
Item &
operator []
(
const
int
idx)
const
{
return
items
[idx]; }
36
37
//const Item *operator ()() const { return items; }
38
//Item *operator ()() { return items; }
39
40
Item *
raw
() {
return
items
; }
41
42
private
:
43
Item
items
[1];
// ensures proper alignment of array elements
44
};
45
46
}
// namespace Mem
47
48
}
// namespace Ipc
49
50
#endif
/* SQUID_IPC_MEM_FLEXIBLE_ARRAY_H */
51
Ipc::Mem::FlexibleArray
Definition:
FlexibleArray.h:27
Ipc::Mem::FlexibleArray::raw
Item * raw()
Definition:
FlexibleArray.h:40
Ipc::Mem::FlexibleArray::operator[]
Item & operator[](const int idx)
Definition:
FlexibleArray.h:34
Ipc::Mem::FlexibleArray::FlexibleArray
FlexibleArray(const int capacity)
Definition:
FlexibleArray.h:29
Ipc::Mem::FlexibleArray::items
Item items[1]
Definition:
FlexibleArray.h:43
Ipc
Definition:
IpcIoFile.h:24
Mem
Memory Management.
Definition:
Allocator.h:17
Introduction
About Squid
Why Squid?
Squid Developers
How to Donate
How to Help Out
Getting Squid
Squid Source Packages
Squid Deployment Case-Studies
Squid Software Foundation
Documentation
Configuration:
Reference
Examples
FAQ
and
Wiki
Guide Books:
Beginners
Definitive
Non-English
More...
Support
Security Advisories
Bugzilla Database
Mailing lists
Contacting us
Commercial services
Project Sponsors
Squid-based products
Miscellaneous
Developer Resources
Related Writings
Related Software:
Authenticators
Ecap
Icap
Ident
Log Analysis
Monitor
Proxies
Redirectors
General
Squid Artwork
Web Site Translations
Japanese
Mirrors
Website:
gr
il
pl
...
full list
FTP Package Archive