hce-node application
1.4.3
HCE Hierarchical Cluster Engine node application
Main Page
Namespaces
Classes
Files
File List
File Members
hce-node application
HCE project node model
Namespaces
Classes
Files
File List
sources
src
utils
algorithms
applicationFramework
asmXMLParser
base64
coreDumpChecker
DRCE
exec
HCECSM
jsonObjExtractor
kvdb
src
citrusleaf
cf_alloc.h
cf_atomic.h
cf_average.h
cf_base_types.h
cf_byte_order.h
cf_clock.h
cf_digest.h
cf_errno.h
cf_hist.h
cf_hooks.h
cf_ll.h
cf_log.h
cf_log_internal.h
cf_packet_compression.h
cf_queue.h
cf_service.h
cf_shash.h
cf_socket.h
cf_vector.h
citrusleaf-internal.h
citrusleaf.h
cl_cluster.h
cl_request.h
cl_shm.h
proto.h
Exceptions
Aerospike.cpp
Aerospike.hpp
BaseDB.hpp
DataBaseDriverConfig.cpp
DataBaseDriverConfig.hpp
Errors.hpp
FakeDB.hpp
HCETimer.hpp
LevelDB.cpp
LevelDB.hpp
ORMFunctionalObject.cpp
ORMFunctionalObject.hpp
Response.hpp
Voldemort.cpp
Voldemort.hpp
tests
messageStream
reduceAdditionCore
reduceCore
reduceDRCE
reduceHandler
reduceSphinx
refine
serializable
sphinx
types
xmlCleaner
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
cf_alloc.h
Go to the documentation of this file.
1
/*
2
* Citrusleaf Foundation
3
* include/alloc.h - memory allocation framework
4
*
5
* Copyright 2008 by Citrusleaf. All rights reserved.
6
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE. THE COPYRIGHT NOTICE
7
* ABOVE DOES NOT EVIDENCE ANY ACTUAL OR INTENDED PUBLICATION.
8
*/
9
10
#pragma once
11
12
#include <stddef.h>
13
14
#include "
cf_atomic.h
"
15
#include "
citrusleaf/cf_base_types.h
"
16
17
18
/* SYNOPSIS
19
* Reference counting allocation
20
* This extends the traditional C memory allocation system to support
21
* reference-counted garbage collection. When a memory region is allocated
22
* via cf_rc_alloc(), slightly more memory than was requested is actually
23
* allocated. A reference counter is inserted in the excess space at the
24
* at the front of the region, and a pointer to the first byte of the data
25
* allocation is returned.
26
*
27
* Two additional functions are supplied to support using a reference
28
* counted region: cf_client_rc_reserve() reserves a memory region, and
29
* cf_client_rc_release() releases an already-held reservation. It is possible to
30
* call cf_client_rc_release() on a region without first acquiring a reservation.
31
* This will result in undefined behavior.
32
*/
33
34
35
36
/* cf_client_rc_counter
37
* A reference counter */
38
typedef
cf_atomic32
cf_client_rc_counter
;
39
40
/* Function declarations */
41
extern
cf_atomic_int_t
cf_client_rc_count
(
void
*addr);
42
extern
void
*
cf_client_rc_alloc
(
size_t
sz
);
43
extern
int
cf_client_rc_reserve
(
void
*addr);
44
extern
cf_atomic_int_t
cf_client_rc_release_x
(
void
*addr,
bool
autofree);
45
extern
void
cf_client_rc_free
(
void
*addr);
46
#define cf_client_rc_release(a) (cf_client_rc_release_x((a), false))
47
#define cf_client_rc_releaseandfree(a) (cf_client_rc_release_x((a), true))
48
sources
utils
kvdb
src
citrusleaf
cf_alloc.h
Generated on Tue Jun 30 2015 19:42:13 for hce-node application by
1.8.1.2