PerformanceImpl.h revision df4af4b66b5f26c3c06ae1592ec2e67afd82dd0c
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * VBox Performance COM Classes declaration.
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * Copyright (C) 2008 Sun Microsystems, Inc.
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * available from http://www.virtualbox.org. This file is free software;
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * you can redistribute it and/or modify it under the terms of the GNU
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * General Public License (GPL) as published by the Free Software
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync * additional information or have any questions.
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync//#ifdef VBOX_WITH_RESOURCE_USAGE_API
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync//#endif /* VBOX_WITH_RESOURCE_USAGE_API */
1f277e5b999f572b1ef1fe4ef593c603ea463be3vboxsync//#include <set>
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync/* Each second we obtain new CPU load stats. */
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync public VirtualBoxSupportTranslation <PerformanceMetric>,
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // public initializer/uninitializer for internal purposes only
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // IPerformanceMetric properties
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync STDMETHOD(COMGETTER(MetricName)) (BSTR *aMetricName);
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync STDMETHOD(COMGETTER(Object)) (IUnknown **anObject);
83c86878d483df62ca8db465c671995984838338vboxsync STDMETHOD(COMGETTER(Description)) (BSTR *aDescription);
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync STDMETHOD(COMGETTER(MinimumValue)) (LONG *aMinValue);
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync STDMETHOD(COMGETTER(MaximumValue)) (LONG *aMaxValue);
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // IPerformanceMetric methods
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // public methods only for internal purposes
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // public methods for internal purposes only
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // (ensure there is a caller and a read lock before calling them!)
5a6bbb9c0d896e804f267c6919f52158a420b998vboxsync /* Constructor. */
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync public VirtualBoxSupportErrorInfoImpl <PerformanceCollector, IPerformanceCollector>,
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync public VirtualBoxSupportTranslation <PerformanceCollector>,
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT (PerformanceCollector)
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // public initializers/uninitializers only for internal purposes
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // IPerformanceCollector properties
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync STDMETHOD(COMGETTER(MetricNames)) (ComSafeArrayOut (BSTR, metricNames));
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // IPerformanceCollector methods
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync STDMETHOD(GetMetrics) (ComSafeArrayIn (INPTR BSTR, metricNames),
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync ComSafeArrayOut (IPerformanceMetric *, outMetrics));
6c5e2fff0e3fdfc7c3f3fb2e7b7ec8ebb2223cecvboxsync STDMETHOD(SetupMetrics) (ComSafeArrayIn (INPTR BSTR, metricNames),
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync STDMETHOD(EnableMetrics) (ComSafeArrayIn (INPTR BSTR, metricNames),
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync STDMETHOD(DisableMetrics) (ComSafeArrayIn (INPTR BSTR, metricNames),
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync STDMETHOD(SetupMetricsEx) (ComSafeArrayIn (INPTR BSTR, metricNames),
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync STDMETHOD(EnableMetricsEx) (ComSafeArrayIn (INPTR BSTR, metricNames),
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync STDMETHOD(DisableMetricsEx) (ComSafeArrayIn (INPTR BSTR, metricNames),
30f7bd6bf198ae0489df375e5a17cb086acb30fbvboxsync STDMETHOD(QueryMetricsData) (ComSafeArrayIn (INPTR BSTR, metricNames),
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // public methods only for internal purposes
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync void registerBaseMetric (pm::BaseMetric *baseMetric);
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync void unregisterBaseMetricsFor (const ComPtr <IUnknown> &object);
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync void unregisterMetricsFor (const ComPtr <IUnknown> &object);
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // public methods for internal purposes only
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // (ensure there is a caller and a read lock before calling them!)
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync // for VirtualBoxSupportErrorInfoImpl
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync static const wchar_t *getComponentName() { return L"PerformanceCollector"; }
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync HRESULT toIPerformanceMetric(pm::Metric *src, IPerformanceMetric **dst);
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync HRESULT toIPerformanceMetric(pm::BaseMetric *src, IPerformanceMetric **dst);
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync HRESULT SetupMetricsInt(ComSafeArrayIn (INPTR BSTR, metricNames),
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync ComSafeArrayOut (IPerformanceMetric *, outMetrics));
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync HRESULT EnableMetricsInt (ComSafeArrayIn (INPTR BSTR, metricNames),
df4af4b66b5f26c3c06ae1592ec2e67afd82dd0cvboxsync HRESULT DisableMetricsInt (ComSafeArrayIn (INPTR BSTR, metricNames),
e6a899848410114df5f1db88a025d0843a98112cvboxsync static void staticSamplerCallback (RTTIMERLR hTimerLR, void *pvUser, uint64_t iTick);
6c5e2fff0e3fdfc7c3f3fb2e7b7ec8ebb2223cecvboxsync unsigned int mMagic;
05c28d9d4557bed6e320dfee1acca69408bc3c15vboxsync#endif //!____H_PERFORMANCEIMPL