< prev index next >

src/hotspot/share/gc/shared/oopStorage.hpp

Print this page
rev 57095 : [mq]: use
rev 57096 : [mq]: trailing_semi


 176   // Debugging and logging support.
 177   const char* name() const;
 178   void print_on(outputStream* st) const PRODUCT_RETURN;
 179 
 180   // Provides access to storage internals, for unit testing.
 181   // Declare, but not define, the public class OopStorage::TestAccess.
 182   // That class is defined as part of the unit-test. It "exports" the needed
 183   // private types by providing public typedefs for them.
 184   class TestAccess;
 185 
 186 private:
 187   class Block;                  // Fixed-size array of oops, plus bookkeeping.
 188   class ActiveArray;            // Array of Blocks, plus bookkeeping.
 189   class AllocationListEntry;    // Provides AllocationList links in a Block.
 190 
 191   // Doubly-linked list of Blocks.
 192   class AllocationList {
 193     const Block* _head;
 194     const Block* _tail;
 195 
 196     // Noncopyable.
 197     AllocationList(const AllocationList&);
 198     AllocationList& operator=(const AllocationList&);
 199 
 200   public:
 201     AllocationList();
 202     ~AllocationList();
 203 
 204     Block* head();
 205     Block* tail();
 206     const Block* chead() const;
 207     const Block* ctail() const;
 208 
 209     Block* prev(Block& block);
 210     Block* next(Block& block);
 211 
 212     const Block* prev(const Block& block) const;
 213     const Block* next(const Block& block) const;
 214 
 215     void push_front(const Block& block);
 216     void push_back(const Block& block);
 217     void unlink(const Block& block);
 218   };




 176   // Debugging and logging support.
 177   const char* name() const;
 178   void print_on(outputStream* st) const PRODUCT_RETURN;
 179 
 180   // Provides access to storage internals, for unit testing.
 181   // Declare, but not define, the public class OopStorage::TestAccess.
 182   // That class is defined as part of the unit-test. It "exports" the needed
 183   // private types by providing public typedefs for them.
 184   class TestAccess;
 185 
 186 private:
 187   class Block;                  // Fixed-size array of oops, plus bookkeeping.
 188   class ActiveArray;            // Array of Blocks, plus bookkeeping.
 189   class AllocationListEntry;    // Provides AllocationList links in a Block.
 190 
 191   // Doubly-linked list of Blocks.
 192   class AllocationList {
 193     const Block* _head;
 194     const Block* _tail;
 195 
 196     NONCOPYABLE(AllocationList);


 197 
 198   public:
 199     AllocationList();
 200     ~AllocationList();
 201 
 202     Block* head();
 203     Block* tail();
 204     const Block* chead() const;
 205     const Block* ctail() const;
 206 
 207     Block* prev(Block& block);
 208     Block* next(Block& block);
 209 
 210     const Block* prev(const Block& block) const;
 211     const Block* next(const Block& block) const;
 212 
 213     void push_front(const Block& block);
 214     void push_back(const Block& block);
 215     void unlink(const Block& block);
 216   };


< prev index next >