VirtualBox

Ignore:
Timestamp:
Nov 5, 2008 10:10:24 AM (16 years ago)
Author:
vboxsync
Message:

Main: Added a describeProperty method for querying config properties of a
specific backend. Added it to the testcase, FE/Qt4 & FE/VBoxManage. Updated the
manual.

File:
1 edited

Legend:

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

    r13842 r13844  
    285285    {
    286286        RTPrintf("VBoxManage list             vms|runningvms|ostypes|hostdvds|hostfloppies|\n"
    287                  "                            hostifs|hostinfo|hdds|dvds|floppies|\n"
     287                 "                            hostifs|hostinfo|hddbackends|hdds|dvds|floppies|\n"
    288288                 "                            usbhost|usbfilters|systemproperties\n"
    289289                 "\n");
     
    27822782    }
    27832783    else
     2784    if (strcmp(argv[0], "hddbackends") == 0)
     2785    {
     2786        ComPtr<ISystemProperties> systemProperties;
     2787        CHECK_ERROR(virtualBox,
     2788                    COMGETTER(SystemProperties) (systemProperties.asOutParam()));
     2789        com::SafeIfaceArray <IHardDiskFormat> hardDiskFormats;
     2790        CHECK_ERROR(systemProperties,
     2791                    COMGETTER(HardDiskFormats) (ComSafeArrayAsOutParam (hardDiskFormats)));
     2792
     2793        RTPrintf("Supported hard disk backends:\n\n");
     2794        for (size_t i = 0; i < hardDiskFormats.size(); ++ i)
     2795        {
     2796            /* General information */
     2797            Bstr id;
     2798            CHECK_ERROR(hardDiskFormats [i],
     2799                        COMGETTER(Id) (id.asOutParam()));
     2800
     2801            Bstr description;
     2802            CHECK_ERROR(hardDiskFormats [i],
     2803                        COMGETTER(Id) (description.asOutParam()));
     2804
     2805            unsigned int caps;
     2806            CHECK_ERROR(hardDiskFormats [i],
     2807                        COMGETTER(Capabilities) (&caps));
     2808
     2809            RTPrintf("Backend %u: id='%ls' description='%ls' capabilities=%#06x extensions='",
     2810                     i, id.raw(), description.raw(), caps);
     2811
     2812            /* File extensions */
     2813            com::SafeArray <BSTR> fileExtensions;
     2814            CHECK_ERROR(hardDiskFormats [i],
     2815                        COMGETTER(FileExtensions) (ComSafeArrayAsOutParam (fileExtensions)));
     2816            for (size_t a = 0; a < fileExtensions.size(); ++ a)
     2817            {
     2818                RTPrintf ("%ls", Bstr (fileExtensions [a]).raw());
     2819                if (a != fileExtensions.size()-1)
     2820                    RTPrintf (",");
     2821            }
     2822            RTPrintf ("'");
     2823
     2824            /* Configuration keys */
     2825            com::SafeArray <BSTR> propertyNames;
     2826            com::SafeArray <BSTR> propertyDescriptions;
     2827            com::SafeArray <DataType_T> propertyTypes;
     2828            com::SafeArray <ULONG> propertyFlags;
     2829            com::SafeArray <BSTR> propertyDefaults;
     2830            CHECK_ERROR(hardDiskFormats [i],
     2831                        DescribeProperties (ComSafeArrayAsOutParam (propertyNames),
     2832                                            ComSafeArrayAsOutParam (propertyDescriptions),
     2833                                            ComSafeArrayAsOutParam (propertyTypes),
     2834                                            ComSafeArrayAsOutParam (propertyFlags),
     2835                                            ComSafeArrayAsOutParam (propertyDefaults)));
     2836
     2837            RTPrintf (" config=(");
     2838            if (propertyNames.size() > 0)
     2839            {
     2840                for (size_t a = 0; a < propertyNames.size(); ++ a)
     2841                {
     2842                    RTPrintf ("key='%ls' desc='%ls' type=", Bstr (propertyNames [a]).raw(), Bstr (propertyDescriptions [a]).raw());
     2843                    switch (propertyTypes [a])
     2844                    {
     2845                        case DataType::Int32Type: RTPrintf ("int"); break;
     2846                        case DataType::Int8Type: RTPrintf ("byte"); break;
     2847                        case DataType::StringType: RTPrintf ("string"); break;
     2848                    }
     2849                    RTPrintf (" flags=%#04x", propertyFlags [a]);
     2850                    RTPrintf (" default='%ls'", Bstr (propertyDefaults [a]).raw());
     2851                    if (a != propertyNames.size()-1)
     2852                        RTPrintf (",");
     2853                }
     2854            }
     2855            RTPrintf (")\n");
     2856        }
     2857    }
     2858    else
    27842859    if (strcmp(argv[0], "hdds") == 0)
    27852860    {
Note: See TracChangeset for help on using the changeset viewer.

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