Path: blob/master/src/hotspot/share/jfr/writers/jfrStorageHost.hpp
41152 views
/*1* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#ifndef SHARE_JFR_WRITERS_JFRSTORAGEHOST_HPP25#define SHARE_JFR_WRITERS_JFRSTORAGEHOST_HPP2627#include "jfr/writers/jfrPosition.inline.hpp"2829template <typename Adapter, typename AP> // Adapter and AllocationPolicy30class StorageHost : public Position<AP> {31public:32typedef typename Adapter::StorageType StorageType;33private:34Adapter _adapter;3536protected:37void bind();38void soft_reset();39void hard_reset();40void cancel();41bool is_backed();42bool accommodate(size_t used, size_t requested);43void commit();44void release();45StorageHost(StorageType* storage, Thread* thread);46StorageHost(StorageType* storage, size_t size);47StorageHost(Thread* thread);4849public:50StorageType* storage();51bool is_valid() const;52void set_storage(StorageType* storage);53void flush();54void seek(intptr_t offset);55};5657#endif // SHARE_JFR_WRITERS_JFRSTORAGEHOST_HPP585960