Go to the documentation of this file.00001
00002
00003
00004
00005 #include "ace/RW_Thread_Mutex.h"
00006
00007 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00008
00009 ACE_INLINE
00010 ACE_MEM_SAP_Node::ACE_MEM_SAP_Node (size_t cap)
00011 : capacity_ (cap),
00012 size_ (0),
00013 next_ (0)
00014 {
00015 }
00016
00017 ACE_INLINE size_t
00018 ACE_MEM_SAP_Node::size (void) const
00019 {
00020 return this->size_;
00021 }
00022
00023 ACE_INLINE size_t
00024 ACE_MEM_SAP_Node::capacity (void) const
00025 {
00026 return this->capacity_;
00027 }
00028
00029 ACE_INLINE void *
00030 ACE_MEM_SAP_Node::data (void)
00031 {
00032 return this + 1;
00033 }
00034
00035
00036 ACE_INLINE ACE_MEM_SAP_Node *
00037 ACE_MEM_SAP::acquire_buffer (const ssize_t size)
00038 {
00039 ACE_TRACE ("ACE_MEM_SAP::acquire_buffer");
00040 if (this->shm_malloc_ == 0)
00041 return 0;
00042
00043 ACE_MEM_SAP_Node *buf = 0;
00044
00045 ACE_NEW_MALLOC_RETURN (buf,
00046 static_cast<ACE_MEM_SAP_Node *>
00047 (this->shm_malloc_->malloc (sizeof (ACE_MEM_SAP_Node) + size)),
00048 ACE_MEM_SAP_Node (size),
00049 0);
00050 return buf;
00051 }
00052
00053 ACE_INLINE int
00054 ACE_MEM_SAP::release_buffer (ACE_MEM_SAP_Node *buf)
00055 {
00056 ACE_TRACE ("ACE_MEM_SAP::release_buffer");
00057 if (this->shm_malloc_ == 0)
00058 return -1;
00059
00060 this->shm_malloc_->free (buf);
00061 return 0;
00062 }
00063
00064 ACE_END_VERSIONED_NAMESPACE_DECL