ehelin@5386: /* ehelin@5386: * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ehelin@5386: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ehelin@5386: * ehelin@5386: * This code is free software; you can redistribute it and/or modify it ehelin@5386: * under the terms of the GNU General Public License version 2 only, as ehelin@5386: * published by the Free Software Foundation. ehelin@5386: * ehelin@5386: * This code is distributed in the hope that it will be useful, but WITHOUT ehelin@5386: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ehelin@5386: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ehelin@5386: * version 2 for more details (a copy is included in the LICENSE file that ehelin@5386: * accompanied this code). ehelin@5386: * ehelin@5386: * You should have received a copy of the GNU General Public License version ehelin@5386: * 2 along with this work; if not, write to the Free Software Foundation, ehelin@5386: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ehelin@5386: * ehelin@5386: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ehelin@5386: * or visit www.oracle.com if you need additional information or have any ehelin@5386: * questions. ehelin@5386: * ehelin@5386: */ ehelin@5386: ehelin@5386: ehelin@5386: #include "precompiled.hpp" ehelin@5386: #include "gc_implementation/shared/objectCountEventSender.hpp" ehelin@5386: #include "memory/heapInspection.hpp" ehelin@5386: #include "trace/tracing.hpp" ehelin@5386: #include "utilities/globalDefinitions.hpp" ehelin@5386: ehelin@5386: #if INCLUDE_SERVICES ehelin@5386: ehelin@5388: void ObjectCountEventSender::send(const KlassInfoEntry* entry, GCId gc_id, jlong timestamp) { ehelin@5386: assert(Tracing::is_event_enabled(EventObjectCountAfterGC::eventId), ehelin@5386: "Only call this method if the event is enabled"); ehelin@5386: ehelin@5388: EventObjectCountAfterGC event(UNTIMED); ehelin@5386: event.set_gcId(gc_id); ehelin@5386: event.set_class(entry->klass()); ehelin@5386: event.set_count(entry->count()); ehelin@5386: event.set_totalSize(entry->words() * BytesPerWord); ehelin@5388: event.set_endtime(timestamp); ehelin@5386: event.commit(); ehelin@5386: } ehelin@5386: ehelin@5386: bool ObjectCountEventSender::should_send_event() { ehelin@5386: #if INCLUDE_TRACE ehelin@5386: return Tracing::is_event_enabled(EventObjectCountAfterGC::eventId); ehelin@5386: #else ehelin@5386: return false; ehelin@5386: #endif // INCLUDE_TRACE ehelin@5386: } ehelin@5386: ehelin@5386: #endif // INCLUDE_SERVICES