diff options
author | Manish Sinha <manishsinha.tech@gmail.com> | 2010-09-10 19:50:25 +0530 |
---|---|---|
committer | Manish Sinha <manishsinha.tech@gmail.com> | 2010-09-10 19:50:25 +0530 |
commit | e6961676eb4e6b35a3ba4d31265d6c6d6aecb190 (patch) | |
tree | b58f111655d631ef0dae6673a00b76e6b9726715 /Zeitgeist | |
parent | 76fabd3179cd827c4d923c80ea4cac2137a632cf (diff) |
Added documentation to DataSourceClient.cs and LogClient.cs
Diffstat (limited to 'Zeitgeist')
-rw-r--r-- | Zeitgeist/DataSourceClient.cs | 41 | ||||
-rw-r--r-- | Zeitgeist/LogClient.cs | 155 |
2 files changed, 196 insertions, 0 deletions
diff --git a/Zeitgeist/DataSourceClient.cs b/Zeitgeist/DataSourceClient.cs index f430d17..f1756e0 100644 --- a/Zeitgeist/DataSourceClient.cs +++ b/Zeitgeist/DataSourceClient.cs @@ -6,10 +6,21 @@ using Zeitgeist.Datamodel; namespace Zeitgeist { + /// <summary> + /// The Zeitgeist engine maintains a publicly available list of recognized data-sources + /// (components inserting information into Zeitgeist). An option to disable such data-providers is also provided. + /// </summary> public class DataSourceClient { + /// <summary> + /// Get the list of known data-sources. + /// </summary> + /// <returns> + /// A list of DataSource <see cref="List<DataSource>"/> + /// </returns> public static List<DataSource> GetDataSources() { + // Get the DBus interface for DataSource IDataSource srcInterface = ZsUtils.GetDBusObject<IDataSource>(objectPath); RawDataSource[] srcs = srcInterface.GetDataSources(); @@ -25,8 +36,28 @@ namespace Zeitgeist return srcList; } + /// <summary> + /// Register a data-source as currently running. + /// If the data-source was already in the database, its metadata (name, description and event_templates) are updated. + /// </summary> + /// <param name="uniqueId"> + /// The uniqueId DataSource <see cref="System.String"/> + /// </param> + /// <param name="name"> + /// The name of the DataSource <see cref="System.String"/> + /// </param> + /// <param name="description"> + /// Description of DataSource <see cref="System.String"/> + /// </param> + /// <param name="events"> + /// A list of Event templates <see cref="List<Event>"/> + /// </param> + /// <returns> + /// true is successful, false otherwise <see cref="System.Boolean"/> + /// </returns> public static bool RegisterDataSources(string uniqueId, string name, string description, List<Event> events) { + // Get the DBus interface for DataSource IDataSource srcInterface = ZsUtils.GetDBusObject<IDataSource>(objectPath); @@ -40,8 +71,18 @@ namespace Zeitgeist return srcInterface.RegisterDataSources(uniqueId, name, description, rawEventList.ToArray()); } + /// <summary> + /// Enables/Disables the DataSource identified by a uniqueId + /// </summary> + /// <param name="uniqueId"> + /// The uniqueId of the DataSource <see cref="System.String"/> + /// </param> + /// <param name="enabled"> + /// Is the DataSource to be enabled(true) or disabled(false) <see cref="System.Boolean"/> + /// </param> void SetDataSourceEnabled(string uniqueId, bool enabled) { + // Get the DBus interface for DataSource IDataSource srcInterface = ZsUtils.GetDBusObject<IDataSource>(objectPath); srcInterface.SetDataSourceEnabled(uniqueId, enabled); diff --git a/Zeitgeist/LogClient.cs b/Zeitgeist/LogClient.cs index 4812c6b..bd74a17 100644 --- a/Zeitgeist/LogClient.cs +++ b/Zeitgeist/LogClient.cs @@ -11,8 +11,19 @@ namespace Zeitgeist { #region Fetch, Insert and Delete Events + /// <summary> + /// Get full event data for a set of event IDs + /// Each event which is not found in the event log is represented by the null in the resulting List. + /// </summary> + /// <param name="eventIds"> + /// An array of event IDs. <see cref="List<System.UInt32>"/> + /// </param> + /// <returns> + /// Full event data for all the requested IDs <see cref="List<Event>"/> + /// </returns> public static List<Event> GetEvents(List<uint> eventIds) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); RawEvent[] rawEvents = srcInterface.GetEvents(eventIds.ToArray()); @@ -20,8 +31,22 @@ namespace Zeitgeist return ZsUtils.FromRawEventList(rawEvents); } + /// <summary> + /// Inserts events into the log. Returns an array containing the IDs of the inserted events + /// Each event which failed to be inserted into the log (either by being blocked or because of an error) will be represented by 0 in the resulting array. + /// One way events may end up being blocked is if they match any of the blacklist templates. + /// Any monitors with matching templates will get notified about the insertion. + /// Note that the monitors are notified after the events have been inserted. + /// </summary> + /// <param name="events"> + /// List of events to be inserted in the log <see cref="List<Event>"/> + /// </param> + /// <returns> + /// An array containing the event IDs of the inserted events. 0 as ID means failed to insert <see cref="List<System.UInt32>"/> + /// </returns> public static List<uint> InsertEvents(List<Event> events) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); List<RawEvent> rawEvents = ZsUtils.ToRawEventList(events); @@ -31,8 +56,18 @@ namespace Zeitgeist return new List<uint>(eventIds); } + /// <summary> + /// Delete a set of events from the log given their IDs + /// </summary> + /// <param name="eventIds"> + /// The eventId of the Events to be deleted <see cref="List<System.UInt32>"/> + /// </param> + /// <returns> + /// The TimeRange <see cref="TimeRange"/> + /// </returns> public static TimeRange DeleteEvents(List<uint> eventIds) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); return srcInterface.DeleteEvents(eventIds.ToArray()); @@ -42,8 +77,42 @@ namespace Zeitgeist #region Search + /// <summary> + /// Search for events matching a given set of templates and return the IDs of matching events. + /// Use GetEvents() passing in the returned IDs to look up the full event data. + /// The matching is done where unset fields in the templates are treated as wildcards. + /// If a template has more than one subject then events will match the template if any one of their subjects match any one of the subject templates. + /// The fields uri, interpretation, manifestation, origin, and mimetype can be prepended with an exclamation mark ‘!’ in order to negate the matching. + /// The fields uri, origin, and mimetype can be prepended with an asterisk ‘*’ in order to do truncated matching. + /// NOTE: + /// This method is intended for queries potentially returning a large result set. + /// It is especially useful in cases where only a portion of the results are to be displayed at the same time + /// (eg., by using paging or dynamic scrollbars), as by holding a list of IDs you keep a stable ordering + /// and you can ask for the details associated to them in batches, when you need them. + /// For queries yielding a small amount of results, or where you need the information about all results at once no matter how many of them there are, see FindEvents(). + /// </summary> + /// <param name="range"> + /// The TimeRange for the query <see cref="TimeRange"/> + /// </param> + /// <param name="eventTemplates"> + /// An array of event templates which the returned events should match at least one of. <see cref="List<Event>"/> + /// </param> + /// <param name="state"> + /// Whether the item is currently known to be available <see cref="StorageState"/> + /// </param> + /// <param name="maxEvents"> + /// Maximal amount of returned events <see cref="System.UInt32"/> + /// </param> + /// <param name="resType"> + /// The Order in which the result should be made available <see cref="ResultType"/> + /// </param> + /// <returns> + /// An array containing the IDs of all matching events, up to a maximum of num_events events. + /// Sorted and grouped as defined by the result_type parameter. <see cref="List<System.UInt32>"/> + /// </returns> public static List<uint> FindEventIds(TimeRange range, List<Event> eventTemplates, StorageState state, uint maxEvents, ResultType resType) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); RawEvent[] rawEventTemplates = ZsUtils.ToRawEventList(eventTemplates).ToArray(); @@ -53,8 +122,35 @@ namespace Zeitgeist return new List<uint>(eventIds); } + /// <summary> + /// Get events matching a given set of templates. + /// The matching is done where unset fields in the templates are treated as wildcards. + /// If a template has more than one subject then events will match the template if any one of their subjects match any one of the subject templates. + /// The fields uri, interpretation, manifestation, origin, and mimetype can be prepended with an exclamation mark ‘!’ in order to negate the matching. + /// The fields uri, origin, and mimetype can be prepended with an asterisk ‘*’ in order to do truncated matching. + /// In case you need to do a query yielding a large (or unpredictable) result set and you only want to show some of the results at the same time (eg., by paging them), use FindEventIds(). + /// </summary> + /// <param name="range"> + /// The TimeRange for the query <see cref="TimeRange"/> + /// </param> + /// <param name="eventTemplates"> + /// An array of event templates which the returned events should match at least one of <see cref="List<Event>"/> + /// </param> + /// <param name="state"> + /// Whether the item is currently known to be available <see cref="StorageState"/> + /// </param> + /// <param name="maxEvents"> + /// Maximal amount of returned events <see cref="System.UInt32"/> + /// </param> + /// <param name="resType"> + /// The Order in which the result should be made available <see cref="ResultType"/> + /// </param> + /// <returns> + /// Full event data for all the requested IDs, up to a maximum of num_events events, sorted and grouped as defined by the result_type parameter. <see cref="List<Event>"/> + /// </returns> public static List<Event> FindEvents(TimeRange range, List<Event> eventTemplates, StorageState state, uint maxEvents, ResultType resType) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); RawEvent[] rawEventTemplates = ZsUtils.ToRawEventList(eventTemplates).ToArray(); @@ -64,8 +160,35 @@ namespace Zeitgeist return ZsUtils.FromRawEventList(events); } + /// <summary> + /// Warning: This API is EXPERIMENTAL and is not fully supported yet. + /// Get a list of URIs of subjects which frequently occur together with events matching event_templates within time_range. + /// The resulting URIs must occur as subjects of events matching result_event_templates and have storage state storage_state. + /// </summary> + /// <param name="range"> + /// The TimeRange for the query <see cref="TimeRange"/> + /// </param> + /// <param name="eventTemplates"> + /// An array of event templates which you want URIs that relate to. <see cref="List<Event>"/> + /// </param> + /// <param name="resultEventTemplates"> + /// An array of event templates which the returned URIs must occur as subjects of. <see cref="List<Event>"/> + /// </param> + /// <param name="state"> + /// Whether the item is currently known to be available <see cref="StorageState"/> + /// </param> + /// <param name="maxEvents"> + /// Maximal amount of returned events <see cref="System.UInt32"/> + /// </param> + /// <param name="resType"> + /// The Order in which the result should be made available <see cref="ResultType"/> + /// </param> + /// <returns> + /// A list of URIs matching the described criteria <see cref="List<System.String>"/> + /// </returns> public static List<string> FindRelatedUris(TimeRange range, List<Event> eventTemplates, List<Event> resultEventTemplates, StorageState state, uint maxEvents, ResultType resType) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); RawEvent[] rawEvents = ZsUtils.ToRawEventList(eventTemplates).ToArray(); @@ -80,8 +203,21 @@ namespace Zeitgeist #region Monitors + /// <summary> + /// Register a client side monitor object to receive callbacks when events matching time_range and event_templates are inserted or deleted. + /// </summary> + /// <param name="monitorPath"> + /// The path to be monitored <see cref="System.String"/> + /// </param> + /// <param name="range"> + /// The time range under which Monitored events must fall within <see cref="TimeRange"/> + /// </param> + /// <param name="eventTemplates"> + /// Event templates that events must match in order to trigger the monitor <see cref="List<Event>"/> + /// </param> public static void InstallMonitor(string monitorPath, TimeRange range, List<Event> eventTemplates) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); ObjectPath path = new ObjectPath(monitorPath); @@ -89,8 +225,15 @@ namespace Zeitgeist srcInterface.InstallMonitor(path, range, rawEvents.ToArray()); } + /// <summary> + /// Remove a monitor installed with InstallMonitor() + /// </summary> + /// <param name="monitorPath"> + /// The path of the monitor to be removed <see cref="System.String"/> + /// </param> public static void RemoveMonitor(string monitorPath) { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); ObjectPath path = new ObjectPath(monitorPath); @@ -99,15 +242,27 @@ namespace Zeitgeist #endregion + /// <summary> + /// Delete the log file and all its content + /// This method is used to delete the entire log file and all its content in one go. + /// To delete specific subsets use FindEventIds() combined with DeleteEvents(). + /// </summary> public static void DeleteLog() { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); srcInterface.DeleteLog(); } + /// <summary> + /// Terminate the running Zeitgeist engine process; + /// use with caution, this action must only be triggered with the user’s explicit consent, + /// as it will affect all applications using Zeitgeist + /// </summary> public static void Quit() { + // Get the DBus interface for Log ILog srcInterface = ZsUtils.GetDBusObject<ILog>(objectPath); srcInterface.Quit(); |