Пример #1
0
static void gvir_config_domain_get_property(GObject *object,
                                            guint prop_id,
                                            GValue *value,
                                            GParamSpec *pspec)
{
    GVirConfigDomain *domain = GVIR_CONFIG_DOMAIN(object);

    switch (prop_id) {
    case PROP_NAME:
        g_value_set_string(value, gvir_config_domain_get_name(domain));
        break;
    case PROP_TITLE:
        g_value_set_string(value, gvir_config_domain_get_title(domain));
        break;
    case PROP_DESCRIPTION:
        g_value_set_string(value, gvir_config_domain_get_description(domain));
        break;
    case PROP_MEMORY:
        g_value_set_uint64(value, gvir_config_domain_get_memory(domain));
        break;
    case PROP_VCPU:
        g_value_set_uint64(value, gvir_config_domain_get_vcpus(domain));
        break;
    case PROP_FEATURES:
        g_value_take_boxed(value, gvir_config_domain_get_features(domain));
        break;

    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
    }
}
Пример #2
0
int main(int argc, char **argv)
{
    GVirConfigDomain *domain;
    const char *name;
    GStrv features;
    char *xml;
    GError *error = NULL;

    gvir_config_init(&argc, &argv);
    if (argc != 2) {
        g_print("Usage: %s filename\n", argv[0]);
        g_print("Attempt to parse the libvirt XML definition from filename\n");
        return 1;
    }

    g_file_get_contents(argv[1], &xml, NULL, &error);
    if (error != NULL) {
        g_print("Couldn't read %s: %s\n", argv[1], error->message);
        return 2;
    }

    domain = gvir_config_domain_new_from_xml(xml, &error);
    if (error != NULL) {
        g_print("Couldn't parse %s: %s\n", argv[1], error->message);
        return 3;
    }
    g_assert(domain != NULL);
    gvir_config_object_validate(GVIR_CONFIG_OBJECT(domain), &error);
    if (error != NULL) {
        g_print("%s format is invalid: %s\n", argv[1], error->message);
        g_clear_error(&error);
    }

    name = gvir_config_domain_get_name(domain);
    g_assert(name != NULL);
    g_assert(strcmp(name, "foo") == 0);

    g_assert(gvir_config_domain_get_memory(domain) == 987654321);

    features = gvir_config_domain_get_features(domain);
    g_assert(g_strv_length(features) == 2);
    g_assert(strcmp(features[0], "f1") == 0);
    g_assert(strcmp(features[1], "f2") == 0);
    g_strfreev(features);

    g_free(xml);

    xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(domain));
    g_print("%s\n", xml);
    g_free(xml);
    g_object_unref(G_OBJECT(domain));

    return 0;
}