11d54e73444e017d3a65234e0f193846f3e27472bIan Rogers/* 21d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * Copyright (C) 2011 The Android Open Source Project 31d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * 41d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * Licensed under the Apache License, Version 2.0 (the "License"); 51d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * you may not use this file except in compliance with the License. 61d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * You may obtain a copy of the License at 71d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * 81d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * http://www.apache.org/licenses/LICENSE-2.0 91d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * 101d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * Unless required by applicable law or agreed to in writing, software 111d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * distributed under the License is distributed on an "AS IS" BASIS, 121d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * See the License for the specific language governing permissions and 141d54e73444e017d3a65234e0f193846f3e27472bIan Rogers * limitations under the License. 151d54e73444e017d3a65234e0f193846f3e27472bIan Rogers */ 161d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 171d54e73444e017d3a65234e0f193846f3e27472bIan Rogers#include "space.h" 181d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 191d54e73444e017d3a65234e0f193846f3e27472bIan Rogers#include "base/logging.h" 201d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 211d54e73444e017d3a65234e0f193846f3e27472bIan Rogersnamespace art { 221d54e73444e017d3a65234e0f193846f3e27472bIan Rogersnamespace gc { 231d54e73444e017d3a65234e0f193846f3e27472bIan Rogersnamespace space { 241d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 2502c8cc6d1312a2b55533f02f6369dc7c94672f90Brian CarlstromSpace::Space(const std::string& name, GcRetentionPolicy gc_retention_policy) 2602c8cc6d1312a2b55533f02f6369dc7c94672f90Brian Carlstrom : name_(name), gc_retention_policy_(gc_retention_policy) { } 271d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 281d54e73444e017d3a65234e0f193846f3e27472bIan Rogersvoid Space::Dump(std::ostream& os) const { 291d54e73444e017d3a65234e0f193846f3e27472bIan Rogers os << GetName() << ":" << GetGcRetentionPolicy(); 301d54e73444e017d3a65234e0f193846f3e27472bIan Rogers} 311d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 321d54e73444e017d3a65234e0f193846f3e27472bIan Rogersstd::ostream& operator<<(std::ostream& os, const Space& space) { 331d54e73444e017d3a65234e0f193846f3e27472bIan Rogers space.Dump(os); 341d54e73444e017d3a65234e0f193846f3e27472bIan Rogers return os; 351d54e73444e017d3a65234e0f193846f3e27472bIan Rogers} 361d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 371d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 381d54e73444e017d3a65234e0f193846f3e27472bIan RogersDiscontinuousSpace::DiscontinuousSpace(const std::string& name, 391d54e73444e017d3a65234e0f193846f3e27472bIan Rogers GcRetentionPolicy gc_retention_policy) : 401d54e73444e017d3a65234e0f193846f3e27472bIan Rogers Space(name, gc_retention_policy), 411d54e73444e017d3a65234e0f193846f3e27472bIan Rogers live_objects_(new accounting::SpaceSetMap("large live objects")), 421d54e73444e017d3a65234e0f193846f3e27472bIan Rogers mark_objects_(new accounting::SpaceSetMap("large marked objects")) { 431d54e73444e017d3a65234e0f193846f3e27472bIan Rogers} 441d54e73444e017d3a65234e0f193846f3e27472bIan Rogers 451d54e73444e017d3a65234e0f193846f3e27472bIan Rogers} // namespace space 461d54e73444e017d3a65234e0f193846f3e27472bIan Rogers} // namespace gc 471d54e73444e017d3a65234e0f193846f3e27472bIan Rogers} // namespace art 48