blob: 172231e303dfe6dba8b5c37a4fd603f6425099e3 (
plain)
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
|
/* -*- C++ -*- */
// $Id$
// MEM_SAP.i
#include "ace/RW_Thread_Mutex.h"
ASYS_INLINE
ACE_MEM_SAP_Node::ACE_MEM_SAP_Node (size_t cap)
: capacity_ (cap),
size_ (0),
next_ (0)
{
}
ASYS_INLINE size_t
ACE_MEM_SAP_Node::size (void) const
{
return this->size_;
}
ASYS_INLINE size_t
ACE_MEM_SAP_Node::capacity (void) const
{
return this->capacity_;
}
ASYS_INLINE void *
ACE_MEM_SAP_Node::data (void)
{
return this + 1;
}
ASYS_INLINE
ACE_MEM_SAP::~ACE_MEM_SAP (void)
{
// ACE_TRACE ("ACE_MEM_SAP::~ACE_MEM_SAP");
delete this->shm_malloc_;
}
ASYS_INLINE ACE_MEM_SAP_Node *
ACE_MEM_SAP::acquire_buffer (const ssize_t size)
{
ACE_TRACE ("ACE_MEM_SAP::acquire_buffer");
if (this->shm_malloc_ == 0)
return 0; // not initialized.
ACE_MEM_SAP_Node *buf = 0;
ACE_NEW_MALLOC_RETURN (buf,
static_cast<ACE_MEM_SAP_Node *>
(this->shm_malloc_->malloc (sizeof (ACE_MEM_SAP_Node) + size)),
ACE_MEM_SAP_Node (size),
0);
return buf;
}
ASYS_INLINE int
ACE_MEM_SAP::release_buffer (ACE_MEM_SAP_Node *buf)
{
ACE_TRACE ("ACE_MEM_SAP::release_buffer");
if (this->shm_malloc_ == 0)
return -1; // not initialized.
this->shm_malloc_->free (buf);
return 0;
}
|