mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-11 07:30:54 +00:00
libsysprof-analyze: expose metadata as a property of Document
This commit is contained in:
@ -84,6 +84,7 @@ struct _SysprofDocument
|
|||||||
EggBitset *ctrdefs;
|
EggBitset *ctrdefs;
|
||||||
EggBitset *ctrsets;
|
EggBitset *ctrsets;
|
||||||
EggBitset *marks;
|
EggBitset *marks;
|
||||||
|
EggBitset *metadata;
|
||||||
|
|
||||||
GHashTable *files_first_position;
|
GHashTable *files_first_position;
|
||||||
GHashTable *pid_to_process_info;
|
GHashTable *pid_to_process_info;
|
||||||
@ -110,6 +111,7 @@ enum {
|
|||||||
PROP_COUNTERS,
|
PROP_COUNTERS,
|
||||||
PROP_FILES,
|
PROP_FILES,
|
||||||
PROP_LOGS,
|
PROP_LOGS,
|
||||||
|
PROP_METADATA,
|
||||||
PROP_PROCESSES,
|
PROP_PROCESSES,
|
||||||
PROP_SAMPLES,
|
PROP_SAMPLES,
|
||||||
PROP_TIME_SPAN,
|
PROP_TIME_SPAN,
|
||||||
@ -276,6 +278,7 @@ sysprof_document_finalize (GObject *object)
|
|||||||
g_clear_pointer (&self->ctrdefs, egg_bitset_unref);
|
g_clear_pointer (&self->ctrdefs, egg_bitset_unref);
|
||||||
g_clear_pointer (&self->ctrsets, egg_bitset_unref);
|
g_clear_pointer (&self->ctrsets, egg_bitset_unref);
|
||||||
g_clear_pointer (&self->marks, egg_bitset_unref);
|
g_clear_pointer (&self->marks, egg_bitset_unref);
|
||||||
|
g_clear_pointer (&self->metadata, egg_bitset_unref);
|
||||||
g_clear_pointer (&self->file_chunks, egg_bitset_unref);
|
g_clear_pointer (&self->file_chunks, egg_bitset_unref);
|
||||||
g_clear_pointer (&self->jitmaps, egg_bitset_unref);
|
g_clear_pointer (&self->jitmaps, egg_bitset_unref);
|
||||||
g_clear_pointer (&self->logs, egg_bitset_unref);
|
g_clear_pointer (&self->logs, egg_bitset_unref);
|
||||||
@ -326,6 +329,10 @@ sysprof_document_get_property (GObject *object,
|
|||||||
g_value_take_object (value, sysprof_document_list_logs (self));
|
g_value_take_object (value, sysprof_document_list_logs (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_METADATA:
|
||||||
|
g_value_take_object (value, sysprof_document_list_metadata (self));
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_PROCESSES:
|
case PROP_PROCESSES:
|
||||||
g_value_take_object (value, sysprof_document_list_processes (self));
|
g_value_take_object (value, sysprof_document_list_processes (self));
|
||||||
break;
|
break;
|
||||||
@ -375,6 +382,11 @@ sysprof_document_class_init (SysprofDocumentClass *klass)
|
|||||||
G_TYPE_LIST_MODEL,
|
G_TYPE_LIST_MODEL,
|
||||||
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
|
properties [PROP_METADATA] =
|
||||||
|
g_param_spec_object ("metadata", NULL, NULL,
|
||||||
|
G_TYPE_LIST_MODEL,
|
||||||
|
(G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
properties [PROP_PROCESSES] =
|
properties [PROP_PROCESSES] =
|
||||||
g_param_spec_object ("processes", NULL, NULL,
|
g_param_spec_object ("processes", NULL, NULL,
|
||||||
G_TYPE_LIST_MODEL,
|
G_TYPE_LIST_MODEL,
|
||||||
@ -413,6 +425,7 @@ sysprof_document_init (SysprofDocument *self)
|
|||||||
self->ctrdefs = egg_bitset_new_empty ();
|
self->ctrdefs = egg_bitset_new_empty ();
|
||||||
self->ctrsets = egg_bitset_new_empty ();
|
self->ctrsets = egg_bitset_new_empty ();
|
||||||
self->marks = egg_bitset_new_empty ();
|
self->marks = egg_bitset_new_empty ();
|
||||||
|
self->metadata = egg_bitset_new_empty ();
|
||||||
self->file_chunks = egg_bitset_new_empty ();
|
self->file_chunks = egg_bitset_new_empty ();
|
||||||
self->jitmaps = egg_bitset_new_empty ();
|
self->jitmaps = egg_bitset_new_empty ();
|
||||||
self->logs = egg_bitset_new_empty ();
|
self->logs = egg_bitset_new_empty ();
|
||||||
@ -1068,6 +1081,10 @@ sysprof_document_load_worker (GTask *task,
|
|||||||
egg_bitset_add (self->marks, f);
|
egg_bitset_add (self->marks, f);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SYSPROF_CAPTURE_FRAME_METADATA:
|
||||||
|
egg_bitset_add (self->metadata, f);
|
||||||
|
break;
|
||||||
|
|
||||||
case SYSPROF_CAPTURE_FRAME_JITMAP:
|
case SYSPROF_CAPTURE_FRAME_JITMAP:
|
||||||
egg_bitset_add (self->jitmaps, f);
|
egg_bitset_add (self->jitmaps, f);
|
||||||
break;
|
break;
|
||||||
@ -1751,6 +1768,20 @@ sysprof_document_list_logs (SysprofDocument *self)
|
|||||||
return _sysprof_document_bitset_index_new (G_LIST_MODEL (self), self->logs);
|
return _sysprof_document_bitset_index_new (G_LIST_MODEL (self), self->logs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sysprof_document_list_metadata:
|
||||||
|
* @self: a #SysprofDocument
|
||||||
|
*
|
||||||
|
* Returns: (transfer full): a #GListModel of #SysprofDocumentMetadata
|
||||||
|
*/
|
||||||
|
GListModel *
|
||||||
|
sysprof_document_list_metadata (SysprofDocument *self)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (SYSPROF_IS_DOCUMENT (self), NULL);
|
||||||
|
|
||||||
|
return _sysprof_document_bitset_index_new (G_LIST_MODEL (self), self->metadata);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sysprof_document_list_counters:
|
* sysprof_document_list_counters:
|
||||||
* @self: a #SysprofDocument
|
* @self: a #SysprofDocument
|
||||||
|
|||||||
@ -55,6 +55,8 @@ GListModel *sysprof_document_list_allocations (SysprofDocume
|
|||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
GListModel *sysprof_document_list_logs (SysprofDocument *self);
|
GListModel *sysprof_document_list_logs (SysprofDocument *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
|
GListModel *sysprof_document_list_metadata (SysprofDocument *self);
|
||||||
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
GListModel *sysprof_document_list_samples (SysprofDocument *self);
|
GListModel *sysprof_document_list_samples (SysprofDocument *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
GListModel *sysprof_document_list_samples_with_context_switch
|
GListModel *sysprof_document_list_samples_with_context_switch
|
||||||
|
|||||||
Reference in New Issue
Block a user