summaryrefslogtreecommitdiff
path: root/idl
diff options
context:
space:
mode:
authorMike Gorse <mgorse@suse.com>2015-06-18 20:04:31 -0500
committerMike Gorse <mgorse@suse.com>2015-08-14 18:49:46 -0500
commitb2c8c4c7230742b683db3d69a608950fede76b6c (patch)
treeacea76d5c73eef71648309da4ff71d16d5d88ce6 /idl
parent2a9c0f5464ccf0b24c803c6a619f83d797362bde (diff)
downloadat-spi2-core-b2c8c4c7230742b683db3d69a608950fede76b6c.tar.gz
Modified cache API to include index and child count rather than children
The original cache API was problematic for QT AT-SPI because it forces enumeration of all children, preventing lazy instantiation of objects. The API now sends the object's index in parent and child count (or -1 if not known / children should not be cached) rather than an array of children. Also made cache of children a GPtrArray rather than a GList, since it may contain holes. If an object has not yet been instantiated for a particular child, then its value will be set to NULL, and atspi_accessible_get_child_at_index will make a dbus call to fetch the child, at which point it will be cached. https://bugzilla.gnome.org/show_bug.cgi?id=650090
Diffstat (limited to 'idl')
-rw-r--r--idl/cache.didl3
1 files changed, 2 insertions, 1 deletions
diff --git a/idl/cache.didl b/idl/cache.didl
index 8cb96939..3cf9b115 100644
--- a/idl/cache.didl
+++ b/idl/cache.didl
@@ -4,7 +4,8 @@ interface org.freestandards.atspi.Cache {
struct CacheItem {
object path;
Reference parent;
- Reference[] children;
+ int index_in_parent;
+ int child_count;
string[] interfaces;
string name;
Role role;