summaryrefslogtreecommitdiff
path: root/src/vtestream-file.h
diff options
context:
space:
mode:
authorEgmont Koblinger <egmont@gmail.com>2013-10-23 00:22:42 +0200
committerChristian Persch <chpe@gnome.org>2013-11-18 20:32:03 +0100
commit7a201c651251b483a026eae60c1f48cc27da7abe (patch)
treea2051a4a09440f88789028deca94c2a440d91389 /src/vtestream-file.h
parent5fc57fc8e2feb0cd8e99f97ca4b25fee5eba2f06 (diff)
downloadvte-7a201c651251b483a026eae60c1f48cc27da7abe.tar.gz
ring,stream: Refactor the interface between the ring and the stream
Refactor and simplify the interface between ring and vte-stream; this is required for the forthcoming rewrapping feature. Paging is now a concept private to vte-stream. Instead of telling when to turn page, the ring now advances the tail of the streams, and vte-stream does paging on its own based on this information. https://bugzilla.gnome.org/show_bug.cgi?id=336238#c74
Diffstat (limited to 'src/vtestream-file.h')
-rw-r--r--src/vtestream-file.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/vtestream-file.h b/src/vtestream-file.h
index e9d8d77c..06de79d9 100644
--- a/src/vtestream-file.h
+++ b/src/vtestream-file.h
@@ -460,22 +460,24 @@ _vte_file_stream_truncate (VteStream *astream, gsize offset)
}
static void
-_vte_file_stream_new_page (VteStream *astream)
+_vte_file_stream_advance_tail (VteStream *astream, gsize offset)
{
VteFileStream *stream = (VteFileStream *) astream;
- stream->offset[1] = stream->offset[0];
- stream->offset[0] = stream->head;
- _vte_file_stream_swap_fds (stream);
- _file_reset (&stream->file[0]);
+ if (offset >= stream->offset[0]) {
+ stream->offset[1] = stream->offset[0];
+ stream->offset[0] = stream->head;
+ _vte_file_stream_swap_fds (stream);
+ _file_reset (&stream->file[0]);
+ }
}
static gsize
-_vte_file_stream_head (VteStream *astream, guint _index)
+_vte_file_stream_head (VteStream *astream)
{
VteFileStream *stream = (VteFileStream *) astream;
- return _index == 0 ? stream->head : stream->offset[_index - 1];
+ return stream->head;
}
static void
@@ -489,6 +491,6 @@ _vte_file_stream_class_init (VteFileStreamClass *klass)
klass->append = _vte_file_stream_append;
klass->read = _vte_file_stream_read;
klass->truncate = _vte_file_stream_truncate;
- klass->new_page = _vte_file_stream_new_page;
+ klass->advance_tail = _vte_file_stream_advance_tail;
klass->head = _vte_file_stream_head;
}