15 #include <Fw/Types/BasicTypes.hpp> 
   16 #include <Fw/Types/Assert.hpp> 
   28         const char *
const compName
 
   29     ) : BufferManagerComponentBase(compName)
 
   50     BufferManagerComponentBase::init(instance);
 
   67       if (not this->m_cleaned) {
 
   70               this->m_buffers[entry].buff.~Buffer();
 
   72           this->m_cleaned = 
true;
 
   74           this->m_allocator->
deallocate(this->m_memId,this->m_buffers);
 
   75           this->m_setup = 
false;
 
   84   void BufferManagerComponentImpl ::
 
   96           this->log_WARNING_HI_ZeroSizeBuffer();
 
  102       U32 
id = context & 0xFFFF;
 
  103       U32 mgrId = context >> 16;
 
  105       FW_ASSERT(id < this->m_numStructs,
id,this->m_numStructs);
 
  106       FW_ASSERT(mgrId == this->m_mgrId,mgrId,
id,this->m_mgrId);
 
  107       FW_ASSERT(
true == this->m_buffers[
id].allocated,
id,this->m_mgrId);
 
  108       FW_ASSERT(
reinterpret_cast<U8*
>(fwBuffer.
getData()) >= this->m_buffers[
id].memory,
id,this->m_mgrId);
 
  109       FW_ASSERT(
reinterpret_cast<U8*
>(fwBuffer.
getData()) < (this->m_buffers[
id].memory + this->m_buffers[
id].size),
id,this->m_mgrId);
 
  113       this->m_buffers[id].allocated = 
false;
 
  118     bufferGetCallee_handler(
 
  128           if ((not this->m_buffers[buff].allocated) and (size <= this->m_buffers[buff].size)) {
 
  129               this->m_buffers[buff].allocated = 
true;
 
  131               if (this->m_currBuffs > this->m_highWater) {
 
  132                   this->m_highWater = this->m_currBuffs;
 
  142       this->log_WARNING_HI_NoBuffsAvailable(size);
 
  155     this->m_mgrId = mgrId;
 
  156     this->m_memId = memId;
 
  157     this->m_allocator = &allocator;
 
  159     memset(&this->m_bufferBins,0,
sizeof(this->m_bufferBins));
 
  161     this->m_bufferBins = bins;
 
  165     this->m_numStructs = 0; 
 
  177     bool recoverable = 
false; 
 
  180     void *memory = allocator.
allocate(memId,allocatedSize,recoverable);
 
  183     FW_ASSERT(memorySize == allocatedSize,memorySize,allocatedSize);
 
  185     this->m_buffers = 
static_cast<AllocatedBuffer*
>(memory);
 
  188     U8* bufferMem = 
reinterpret_cast<U8*
>(&this->m_buffers[this->m_numStructs]);
 
  197                 U32 context = (this->m_mgrId << 16) | currStruct;
 
  198                 (void) 
new(&this->m_buffers[currStruct].buff) 
Fw::Buffer(bufferMem,this->m_bufferBins.
bins[bin].
bufferSize,context);
 
  199                 this->m_buffers[currStruct].allocated = 
false;
 
  200                 this->m_buffers[currStruct].memory = bufferMem;
 
  201                 this->m_buffers[currStruct].size = this->m_bufferBins.
bins[bin].
bufferSize;
 
  209     U8* 
const CURR_PTR = bufferMem;
 
  210     U8* 
const END_PTR = 
static_cast<U8*
>(memory) + memorySize;
 
  212         reinterpret_cast<POINTER_CAST
>(CURR_PTR), 
reinterpret_cast<POINTER_CAST
>(END_PTR));
 
  214     FW_ASSERT(currStruct == this->m_numStructs,currStruct,this->m_numStructs);
 
  216     this->m_setup = 
true;
 
  219   void BufferManagerComponentImpl ::
 
  226     this->tlmWrite_HiBuffs(this->m_highWater);
 
  227     this->tlmWrite_CurrBuffs(this->m_currBuffs);
 
  228     this->tlmWrite_TotalBuffs(this->m_numStructs);
 
  229     this->tlmWrite_NoBuffs(this->m_noBuffs);
 
  230     this->tlmWrite_EmptyBuffs(this->m_emptyBuffs);