Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
GNOME
tracker
Commits
78a70f4e
Commit
78a70f4e
authored
May 21, 2014
by
Martyn Russell
Browse files
libtracker-miner: Rename TrackerEnumerator members 'start' to 'get-children'
API was a bit weird calling _start_finish().
parent
4bfc6674
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/libtracker-miner/tracker-crawler.c
View file @
78a70f4e
...
...
@@ -725,7 +725,7 @@ file_enumerate_children_cb (GObject *object,
parent
=
ed
->
dir_info
->
node
->
data
;
enumerator
=
TRACKER_ENUMERATOR
(
object
);
files
=
tracker_enumerator_
start
_finish
(
enumerator
,
result
,
&
error
);
files
=
tracker_enumerator_
get_children
_finish
(
enumerator
,
result
,
&
error
);
if
(
!
files
)
{
if
(
error
&&
!
cancelled
)
{
...
...
@@ -798,14 +798,14 @@ file_enumerate_children (TrackerCrawler *crawler,
attrs
=
g_strdup
(
FILE_ATTRIBUTES
);
}
tracker_enumerator_
start
_async
(
crawler
->
priv
->
enumerator
,
ed
->
dir_file
,
attrs
,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
,
G_PRIORITY_LOW
,
ed
->
cancellable
,
file_enumerate_children_cb
,
ed
);
tracker_enumerator_
get_children
_async
(
crawler
->
priv
->
enumerator
,
ed
->
dir_file
,
attrs
,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
,
G_PRIORITY_LOW
,
ed
->
cancellable
,
file_enumerate_children_cb
,
ed
);
g_free
(
attrs
);
}
...
...
src/libtracker-miner/tracker-enumerator.c
View file @
78a70f4e
...
...
@@ -34,12 +34,12 @@ tracker_enumerator_default_init (TrackerEnumeratorInterface *iface)
}
GSList
*
tracker_enumerator_
start
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
)
tracker_enumerator_
get_children
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
)
{
TrackerEnumeratorIface
*
iface
;
...
...
@@ -51,7 +51,7 @@ tracker_enumerator_start (TrackerEnumerator *enumerator,
iface
=
TRACKER_ENUMERATOR_GET_IFACE
(
enumerator
);
if
(
iface
->
start
==
NULL
)
{
if
(
iface
->
get_children
==
NULL
)
{
g_set_error_literal
(
error
,
G_IO_ERROR
,
G_IO_ERROR_NOT_SUPPORTED
,
...
...
@@ -59,18 +59,18 @@ tracker_enumerator_start (TrackerEnumerator *enumerator,
return
NULL
;
}
return
(
*
iface
->
start
)
(
enumerator
,
dir
,
attributes
,
flags
,
cancellable
,
error
);
return
(
*
iface
->
get_children
)
(
enumerator
,
dir
,
attributes
,
flags
,
cancellable
,
error
);
}
void
tracker_enumerator_
start
_async
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
)
tracker_enumerator_
get_children
_async
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
)
{
TrackerEnumeratorIface
*
iface
;
...
...
@@ -78,18 +78,18 @@ tracker_enumerator_start_async (TrackerEnumerator *enumerator,
iface
=
TRACKER_ENUMERATOR_GET_IFACE
(
enumerator
);
if
(
iface
->
start
_async
==
NULL
)
{
if
(
iface
->
get_children
_async
==
NULL
)
{
g_critical
(
_
(
"Operation not supported"
));
return
;
}
(
*
iface
->
start
_async
)
(
enumerator
,
dir
,
attributes
,
flags
,
io_priority
,
cancellable
,
callback
,
user_data
);
(
*
iface
->
get_children
_async
)
(
enumerator
,
dir
,
attributes
,
flags
,
io_priority
,
cancellable
,
callback
,
user_data
);
}
GSList
*
tracker_enumerator_
start
_finish
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
)
tracker_enumerator_
get_children
_finish
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
)
{
TrackerEnumeratorIface
*
iface
;
...
...
@@ -102,5 +102,5 @@ tracker_enumerator_start_finish (TrackerEnumerator *enumerator,
return
NULL
;
}
return
(
*
iface
->
start
_finish
)
(
enumerator
,
result
,
error
);
return
(
*
iface
->
get_children
_finish
)
(
enumerator
,
result
,
error
);
}
src/libtracker-miner/tracker-enumerator.h
View file @
78a70f4e
...
...
@@ -42,44 +42,44 @@ struct _TrackerEnumeratorIface {
GTypeInterface
g_iface
;
/* Virtual Table */
GSList
*
(
*
start
)
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
);
void
(
*
start
_async
)
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
);
GSList
*
(
*
start
_finish
)
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
);
GSList
*
(
*
get_children
)
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
);
void
(
*
get_children
_async
)
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
);
GSList
*
(
*
get_children
_finish
)
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
);
};
GType
tracker_enumerator_get_type
(
void
)
G_GNUC_CONST
;
GSList
*
tracker_enumerator_
start
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
);
void
tracker_enumerator_
start
_async
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
);
GSList
*
tracker_enumerator_
start
_finish
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
);
GType
tracker_enumerator_get_type
(
void
)
G_GNUC_CONST
;
GSList
*
tracker_enumerator_
get_children
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
);
void
tracker_enumerator_
get_children
_async
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
);
GSList
*
tracker_enumerator_
get_children
_finish
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
);
G_END_DECLS
...
...
src/libtracker-miner/tracker-file-enumerator.c
View file @
78a70f4e
...
...
@@ -33,7 +33,7 @@ typedef struct {
GFile
*
dir
;
gchar
*
attributes
;
GFileQueryInfoFlags
flags
;
}
Start
Data
;
}
GetChildren
Data
;
G_DEFINE_TYPE_WITH_CODE
(
TrackerFileEnumerator
,
tracker_file_enumerator
,
G_TYPE_OBJECT
,
G_IMPLEMENT_INTERFACE
(
TRACKER_TYPE_ENUMERATOR
,
...
...
@@ -58,14 +58,14 @@ tracker_file_enumerator_init (TrackerFileEnumerator *fe)
{
}
static
Start
Data
*
start
_data_new
(
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
)
static
GetChildren
Data
*
get_children
_data_new
(
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
)
{
Start
Data
*
data
;
GetChildren
Data
*
data
;
data
=
g_slice_new0
(
Start
Data
);
data
=
g_slice_new0
(
GetChildren
Data
);
data
->
dir
=
g_object_ref
(
dir
);
/* FIXME: inefficient */
data
->
attributes
=
g_strdup
(
attributes
);
...
...
@@ -75,7 +75,7 @@ start_data_new (GFile *dir,
}
static
void
start
_data_free
(
Start
Data
*
data
)
get_children
_data_free
(
GetChildren
Data
*
data
)
{
if
(
!
data
)
{
return
;
...
...
@@ -83,16 +83,16 @@ start_data_free (StartData *data)
g_object_unref
(
data
->
dir
);
g_free
(
data
->
attributes
);
g_slice_free
(
Start
Data
,
data
);
g_slice_free
(
GetChildren
Data
,
data
);
}
static
GSList
*
file_enumerator_
start
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
)
file_enumerator_
get_children
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
GCancellable
*
cancellable
,
GError
**
error
)
{
GFileEnumerator
*
fe
;
GSList
*
files
;
...
...
@@ -170,64 +170,64 @@ file_enumerator_start (TrackerEnumerator *enumerator,
}
static
void
start
_async_thread_op_free
(
GSList
*
files
)
get_children
_async_thread_op_free
(
GSList
*
files
)
{
g_slist_free_full
(
files
,
g_object_unref
);
}
static
void
start
_async_thread
(
GTask
*
task
,
gpointer
source_object
,
gpointer
task_data
,
GCancellable
*
cancellable
)
get_children
_async_thread
(
GTask
*
task
,
gpointer
source_object
,
gpointer
task_data
,
GCancellable
*
cancellable
)
{
TrackerEnumerator
*
enumerator
=
source_object
;
Start
Data
*
data
=
task_data
;
GetChildren
Data
*
data
=
task_data
;
GSList
*
files
=
NULL
;
GError
*
error
=
NULL
;
if
(
g_cancellable_set_error_if_cancelled
(
cancellable
,
&
error
))
{
files
=
NULL
;
}
else
{
files
=
file_enumerator_
start
(
enumerator
,
data
->
dir
,
data
->
attributes
,
data
->
flags
,
cancellable
,
&
error
);
files
=
file_enumerator_
get_children
(
enumerator
,
data
->
dir
,
data
->
attributes
,
data
->
flags
,
cancellable
,
&
error
);
}
if
(
error
)
{
g_task_return_error
(
task
,
error
);
}
else
{
g_task_return_pointer
(
task
,
files
,
(
GDestroyNotify
)
start
_async_thread_op_free
);
g_task_return_pointer
(
task
,
files
,
(
GDestroyNotify
)
get_children
_async_thread_op_free
);
}
}
static
void
file_enumerator_
start
_async
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
)
file_enumerator_
get_children
_async
(
TrackerEnumerator
*
enumerator
,
GFile
*
dir
,
const
gchar
*
attributes
,
GFileQueryInfoFlags
flags
,
int
io_priority
,
GCancellable
*
cancellable
,
GAsyncReadyCallback
callback
,
gpointer
user_data
)
{
GTask
*
task
;
task
=
g_task_new
(
enumerator
,
cancellable
,
callback
,
user_data
);
g_task_set_task_data
(
task
,
start
_data_new
(
dir
,
attributes
,
flags
),
(
GDestroyNotify
)
start
_data_free
);
g_task_set_task_data
(
task
,
get_children
_data_new
(
dir
,
attributes
,
flags
),
(
GDestroyNotify
)
get_children
_data_free
);
g_task_set_priority
(
task
,
io_priority
);
g_task_run_in_thread
(
task
,
start
_async_thread
);
g_task_run_in_thread
(
task
,
get_children
_async_thread
);
g_object_unref
(
task
);
}
static
GSList
*
file_enumerator_
start
_finish
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
)
file_enumerator_
get_children
_finish
(
TrackerEnumerator
*
enumerator
,
GAsyncResult
*
result
,
GError
**
error
)
{
g_return_val_if_fail
(
g_task_is_valid
(
result
,
enumerator
),
NULL
);
...
...
@@ -238,9 +238,9 @@ file_enumerator_start_finish (TrackerEnumerator *enumerator,
static
void
tracker_file_enumerator_file_iface_init
(
TrackerEnumeratorIface
*
iface
)
{
iface
->
start
=
file_enumerator_
start
;
iface
->
start
_async
=
file_enumerator_
start
_async
;
iface
->
start
_finish
=
file_enumerator_
start
_finish
;
iface
->
get_children
=
file_enumerator_
get_children
;
iface
->
get_children
_async
=
file_enumerator_
get_children
_async
;
iface
->
get_children
_finish
=
file_enumerator_
get_children
_finish
;
}
TrackerEnumerator
*
...
...
tests/libtracker-miner/tracker-file-enumerator-test.c
View file @
78a70f4e
...
...
@@ -42,13 +42,13 @@ test_enumerator_crawl (void)
dir
=
g_file_new_for_path
(
path
);
g_print
(
"'%s'
\n
"
,
path
);
files
=
tracker_enumerator_
start
(
enumerator
,
dir
,
G_FILE_ATTRIBUTE_STANDARD_NAME
","
\
G_FILE_ATTRIBUTE_STANDARD_TYPE
,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
,
NULL
,
&
error
);
files
=
tracker_enumerator_
get_children
(
enumerator
,
dir
,
G_FILE_ATTRIBUTE_STANDARD_NAME
","
\
G_FILE_ATTRIBUTE_STANDARD_TYPE
,
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
,
NULL
,
&
error
);
g_assert_no_error
(
error
);
g_assert
(
files
!=
NULL
);
g_assert
(
g_slist_length
(
files
)
>
0
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment