root / qom / qom-qobject.c @ 0056c093
History | View | Annotate | Download (1.2 kB)
1 | 9f5f1350 | Paolo Bonzini | /*
|
---|---|---|---|
2 | 9f5f1350 | Paolo Bonzini | * QEMU Object Model - QObject wrappers
|
3 | 9f5f1350 | Paolo Bonzini | *
|
4 | 9f5f1350 | Paolo Bonzini | * Copyright (C) 2012 Red Hat, Inc.
|
5 | 9f5f1350 | Paolo Bonzini | *
|
6 | 9f5f1350 | Paolo Bonzini | * Author: Paolo Bonzini <pbonzini@redhat.com>
|
7 | 9f5f1350 | Paolo Bonzini | *
|
8 | 9f5f1350 | Paolo Bonzini | * This work is licensed under the terms of the GNU GPL, version 2 or later.
|
9 | 9f5f1350 | Paolo Bonzini | * See the COPYING file in the top-level directory.
|
10 | 9f5f1350 | Paolo Bonzini | */
|
11 | 9f5f1350 | Paolo Bonzini | |
12 | 9f5f1350 | Paolo Bonzini | #include "qemu-common.h" |
13 | 9f5f1350 | Paolo Bonzini | #include "qemu/object.h" |
14 | 9f5f1350 | Paolo Bonzini | #include "qemu/qom-qobject.h" |
15 | 9f5f1350 | Paolo Bonzini | #include "qapi/qapi-visit-core.h" |
16 | 9f5f1350 | Paolo Bonzini | #include "qapi/qmp-input-visitor.h" |
17 | 9f5f1350 | Paolo Bonzini | #include "qapi/qmp-output-visitor.h" |
18 | 9f5f1350 | Paolo Bonzini | |
19 | 9f5f1350 | Paolo Bonzini | void object_property_set_qobject(Object *obj, QObject *value,
|
20 | 9f5f1350 | Paolo Bonzini | const char *name, Error **errp) |
21 | 9f5f1350 | Paolo Bonzini | { |
22 | 9f5f1350 | Paolo Bonzini | QmpInputVisitor *mi; |
23 | 9f5f1350 | Paolo Bonzini | mi = qmp_input_visitor_new(value); |
24 | 9f5f1350 | Paolo Bonzini | object_property_set(obj, qmp_input_get_visitor(mi), name, errp); |
25 | 9f5f1350 | Paolo Bonzini | |
26 | 9f5f1350 | Paolo Bonzini | qmp_input_visitor_cleanup(mi); |
27 | 9f5f1350 | Paolo Bonzini | } |
28 | 9f5f1350 | Paolo Bonzini | |
29 | 9f5f1350 | Paolo Bonzini | QObject *object_property_get_qobject(Object *obj, const char *name, |
30 | 9f5f1350 | Paolo Bonzini | Error **errp) |
31 | 9f5f1350 | Paolo Bonzini | { |
32 | 9f5f1350 | Paolo Bonzini | QObject *ret = NULL;
|
33 | 9f5f1350 | Paolo Bonzini | Error *local_err = NULL;
|
34 | 9f5f1350 | Paolo Bonzini | QmpOutputVisitor *mo; |
35 | 9f5f1350 | Paolo Bonzini | |
36 | 9f5f1350 | Paolo Bonzini | mo = qmp_output_visitor_new(); |
37 | 9f5f1350 | Paolo Bonzini | object_property_get(obj, qmp_output_get_visitor(mo), name, &local_err); |
38 | 9f5f1350 | Paolo Bonzini | if (!local_err) {
|
39 | 9f5f1350 | Paolo Bonzini | ret = qmp_output_get_qobject(mo); |
40 | 9f5f1350 | Paolo Bonzini | } |
41 | 9f5f1350 | Paolo Bonzini | error_propagate(errp, local_err); |
42 | 9f5f1350 | Paolo Bonzini | qmp_output_visitor_cleanup(mo); |
43 | 9f5f1350 | Paolo Bonzini | return ret;
|
44 | 9f5f1350 | Paolo Bonzini | } |