VirtualBox

Changeset 27062 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Mar 5, 2010 9:30:34 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
58379
Message:

#2939: VBoxManage metrics enable and disable subcommands.

Location:
trunk/src/VBox/Frontends/VBoxManage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r26936 r27062  
    589589                 "                            [*|host|<vmname> [<metric_list>]]\n\n"
    590590                 "VBoxManage metrics          query [*|host|<vmname> [<metric_list>]]\n\n"
     591                 "VBoxManage metrics          enable\n"
     592                 "                            [--list]\n"
     593                 "                            [*|host|<vmname> [<metric_list>]]\n\n"
     594                 "VBoxManage metrics          disable\n"
     595                 "                            [--list]\n"
     596                 "                            [*|host|<vmname> [<metric_list>]]\n\n"
    591597                 "VBoxManage metrics          collect\n"
    592598                 "                            [--period <seconds>]\n"
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageMetrics.cpp

    r26163 r27062  
    532532}
    533533
     534/**
     535 * Enable metrics
     536 */
     537static int handleMetricsEnable(int argc, char *argv[],
     538                               ComPtr<IVirtualBox> aVirtualBox,
     539                               ComPtr<IPerformanceCollector> performanceCollector)
     540{
     541    HRESULT rc;
     542    com::SafeArray<BSTR>          metrics;
     543    com::SafeArray<BSTR>          baseMetrics;
     544    com::SafeIfaceArray<IUnknown> objects;
     545    bool listMatches = false;
     546    int i;
     547
     548    for (i = 1; i < argc; i++)
     549    {
     550        if (   !strcmp(argv[i], "--list")
     551            || !strcmp(argv[i], "-list"))
     552            listMatches = true;
     553        else
     554            break; /* The rest of params should define the filter */
     555    }
     556
     557    rc = parseFilterParameters(argc - i, &argv[i], aVirtualBox,
     558                               ComSafeArrayAsOutParam(metrics),
     559                               ComSafeArrayAsOutParam(baseMetrics),
     560                               ComSafeArrayAsOutParam(objects));
     561    if (FAILED(rc))
     562        return 1;
     563
     564    com::SafeIfaceArray<IPerformanceMetric> affectedMetrics;
     565    CHECK_ERROR(performanceCollector,
     566        EnableMetrics(ComSafeArrayAsInParam(metrics),
     567                      ComSafeArrayAsInParam(objects),
     568                      ComSafeArrayAsOutParam(affectedMetrics)));
     569    if (listMatches)
     570        listAffectedMetrics(aVirtualBox,
     571                            ComSafeArrayAsInParam(affectedMetrics));
     572
     573    return 0;
     574}
     575
     576/**
     577 * Disable metrics
     578 */
     579static int handleMetricsDisable(int argc, char *argv[],
     580                                ComPtr<IVirtualBox> aVirtualBox,
     581                                ComPtr<IPerformanceCollector> performanceCollector)
     582{
     583    HRESULT rc;
     584    com::SafeArray<BSTR>          metrics;
     585    com::SafeArray<BSTR>          baseMetrics;
     586    com::SafeIfaceArray<IUnknown> objects;
     587    bool listMatches = false;
     588    int i;
     589
     590    for (i = 1; i < argc; i++)
     591    {
     592        if (   !strcmp(argv[i], "--list")
     593            || !strcmp(argv[i], "-list"))
     594            listMatches = true;
     595        else
     596            break; /* The rest of params should define the filter */
     597    }
     598
     599    rc = parseFilterParameters(argc - i, &argv[i], aVirtualBox,
     600                               ComSafeArrayAsOutParam(metrics),
     601                               ComSafeArrayAsOutParam(baseMetrics),
     602                               ComSafeArrayAsOutParam(objects));
     603    if (FAILED(rc))
     604        return 1;
     605
     606    com::SafeIfaceArray<IPerformanceMetric> affectedMetrics;
     607    CHECK_ERROR(performanceCollector,
     608        DisableMetrics(ComSafeArrayAsInParam(metrics),
     609                       ComSafeArrayAsInParam(objects),
     610                       ComSafeArrayAsOutParam(affectedMetrics)));
     611    if (listMatches)
     612        listAffectedMetrics(aVirtualBox,
     613                            ComSafeArrayAsInParam(affectedMetrics));
     614
     615    return 0;
     616}
     617
     618
    534619int handleMetrics(HandlerArg *a)
    535620{
     
    551636    else if (!strcmp(a->argv[0], "collect"))
    552637        rc = handleMetricsCollect(a->argc, a->argv, a->virtualBox, performanceCollector);
     638    else if (!strcmp(a->argv[0], "enable"))
     639        rc = handleMetricsEnable(a->argc, a->argv, a->virtualBox, performanceCollector);
     640    else if (!strcmp(a->argv[0], "disable"))
     641        rc = handleMetricsDisable(a->argc, a->argv, a->virtualBox, performanceCollector);
    553642    else
    554643        return errorSyntax(USAGE_METRICS, "Invalid subcommand '%s'", a->argv[0]);
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette