| // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef QUICHE_COMMON_QUICHE_SIMPLE_BUFFER_ALLOCATOR_H_ | 
 | #define QUICHE_COMMON_QUICHE_SIMPLE_BUFFER_ALLOCATOR_H_ | 
 |  | 
 | #include "common/platform/api/quiche_export.h" | 
 | #include "common/quiche_buffer_allocator.h" | 
 |  | 
 | namespace quiche { | 
 |  | 
 | // Provides buffer allocation using operators new[] and delete[] on char arrays. | 
 | // Note that some of the QUICHE code relies on this being the case for deleting | 
 | // new[]-allocated arrays from elsewhere. | 
 | class QUICHE_EXPORT_PRIVATE SimpleBufferAllocator | 
 |     : public QuicheBufferAllocator { | 
 |  public: | 
 |   static SimpleBufferAllocator* Get() { | 
 |     static SimpleBufferAllocator* singleton = new SimpleBufferAllocator(); | 
 |     return singleton; | 
 |   } | 
 |  | 
 |   char* New(size_t size) override; | 
 |   char* New(size_t size, bool flag_enable) override; | 
 |   void Delete(char* buffer) override; | 
 | }; | 
 |  | 
 | }  // namespace quiche | 
 |  | 
 | #endif  // QUICHE_COMMON_QUICHE_SIMPLE_BUFFER_ALLOCATOR_H_ |