summaryrefslogtreecommitdiff
path: root/logview/logview-log.h
diff options
context:
space:
mode:
Diffstat (limited to 'logview/logview-log.h')
-rw-r--r--logview/logview-log.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/logview/logview-log.h b/logview/logview-log.h
new file mode 100644
index 00000000..6e69ad84
--- /dev/null
+++ b/logview/logview-log.h
@@ -0,0 +1,109 @@
+/* logview-log.h - object representation of a logfile
+ *
+ * Copyright (C) 1998 Cesar Miquel <[email protected]>
+ * Copyright (C) 2008 Cosimo Cecchi <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 551 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ * USA.
+ */
+
+/* logview-log.h */
+
+#ifndef __LOGVIEW_LOG_H__
+#define __LOGVIEW_LOG_H__
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+#define LOGVIEW_TYPE_LOG logview_log_get_type()
+#define LOGVIEW_LOG(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOGVIEW_TYPE_LOG, LogviewLog))
+#define LOGVIEW_LOG_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), LOGVIEW_TYPE_LOG, LogviewLogClass))
+#define LOGVIEW_IS_LOG(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOGVIEW_TYPE_LOG))
+#define LOGVIEW_IS_LOG_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), LOGVIEW_TYPE_LOG))
+#define LOGVIEW_LOG_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), LOGVIEW_TYPE_LOG, LogviewLogClass))
+
+typedef struct _LogviewLog LogviewLog;
+typedef struct _LogviewLogClass LogviewLogClass;
+typedef struct _LogviewLogPrivate LogviewLogPrivate;
+
+/* callback signatures for async I/O operations */
+
+typedef void (* LogviewCreateCallback) (LogviewLog *log,
+ GError *error,
+ gpointer user_data);
+typedef void (* LogviewNewLinesCallback) (LogviewLog *log,
+ const char **lines,
+ GSList *new_days,
+ GError *error,
+ gpointer user_data);
+
+#define LOGVIEW_ERROR_QUARK g_quark_from_static_string ("logview-error")
+
+typedef enum {
+ LOGVIEW_ERROR_FAILED,
+ LOGVIEW_ERROR_PERMISSION_DENIED,
+ LOGVIEW_ERROR_ZLIB,
+ LOGVIEW_ERROR_NOT_SUPPORTED,
+ LOGVIEW_ERROR_NOT_A_LOG
+} LogviewErrorEnum;
+
+struct _LogviewLog {
+ GObject parent;
+ LogviewLogPrivate *priv;
+};
+
+struct _LogviewLogClass {
+ GObjectClass parent_class;
+
+ /* signals */
+ void (* log_changed) (LogviewLog *log);
+};
+
+GType logview_log_get_type (void);
+
+/* public methods */
+
+/* these two do I/O, so they are wrapped async */
+void logview_log_create (const char *filename,
+ LogviewCreateCallback callback,
+ gpointer user_data);
+void logview_log_create_from_gfile (GFile *file,
+ LogviewCreateCallback callback,
+ gpointer user_data);
+void logview_log_read_new_lines (LogviewLog *log,
+ LogviewNewLinesCallback callback,
+ gpointer user_data);
+
+const char * logview_log_get_display_name (LogviewLog *log);
+time_t logview_log_get_timestamp (LogviewLog *log);
+goffset logview_log_get_file_size (LogviewLog *log);
+const char ** logview_log_get_cached_lines (LogviewLog *log);
+guint logview_log_get_cached_lines_number (LogviewLog *log);
+GSList * logview_log_get_days_for_cached_lines (LogviewLog *log);
+gboolean logview_log_has_new_lines (LogviewLog *log);
+char * logview_log_get_uri (LogviewLog *log);
+GFile * logview_log_get_gfile (LogviewLog *log);
+gboolean logview_log_get_has_days (LogviewLog *log);
+
+G_END_DECLS
+
+#endif /* __LOGVIEW_LOG_H__ */