MessageQueue


Object Hierarchy:

Object hierarchy for MessageQueue

Description:

public class MessageQueue : Object, ListModel

Mid-run queue of Message rows as a GLib.ListModel.

Same shape as History.SessionList: Gee.ArrayList backing store, ListStore- compatible append / remove / remove_at that emit items_changed. Replacing items (e.g. session load) also emits items_changed.

Temporary store only: pending vs urgent is the message role string while queued ("user" = pending / follow-up; "urgent" = urgent). UI / callers set role; this class only owns the list model. Always append insert is unsupported.

Usage Examples

  var items = new Gee.ArrayList<Message>();  // session-owned
var q = new MessageQueue(items);
q.append(user_msg);
user_msg.role = "urgent"; // UI escalates

// Session load: swap backing list (ColumnView keeps the same model)
q.items = loaded_session.queued_messages;

// Drain most recent urgent via FilterListModel, then remove from q
var urgent = new Gtk.FilterListModel(q, new Gtk.CustomFilter((item) => {
return ((Message) item).role == "urgent";
}));
if (urgent.get_n_items() > 0) {
var msg = (Message) urgent.get_item(urgent.get_n_items() - 1);
q.remove(msg);
msg.role = "user";
}


Namespace: OLLMchat
Package: ollmchat

Content:

Properties:

Creation methods:

Methods:

Signals:

Inherited Members:

All known members inherited from class GLib.Object
All known members inherited from interface GLib.ListModel