MCPcopy Create free account
hub / github.com/baumgarr/nixnote2 / heartbeatTimerTriggered

Method heartbeatTimerTriggered

nixnote.cpp:2544–2749  ·  view source on GitHub ↗

This queries she shared memory segment at occasional intervals. This is useful for cross-program communication.

Source from the content-addressed store, hash-verified

2542//* intervals. This is useful for cross-program communication.
2543//**************************************************************
2544void NixNote::heartbeatTimerTriggered() {
2545 QByteArray data = global.sharedMemory->read();
2546 if (data.startsWith("SYNCHRONIZE")) {
2547 QLOG_DEBUG() << "Sync requested by shared memory segment.";
2548 this->synchronize();
2549 return;
2550 }
2551 if (data.startsWith("IMMEDIATE_SHUTDOWN")) {
2552 QLOG_ERROR() << "Immediate shutdown requested by shared memory segment.";
2553 this->closeNixNote();
2554 return;
2555 }
2556 if (data.startsWith("SHOW_WINDOW")) {
2557 this->raise();
2558 this->showMaximized();
2559 return;
2560 }
2561 if (data.startsWith("QUERY:")) {
2562 QList<qint32> results;
2563 QString query = data.mid(6);
2564 QLOG_DEBUG() << query;
2565 FilterCriteria filter;
2566 filter.setSearchString(query);
2567 FilterEngine engine;
2568 engine.filter(&filter, &results);
2569 QString xmlString;
2570 QXmlStreamWriter dom(&xmlString);
2571 dom.setAutoFormatting(true);
2572 dom.writeStartDocument();
2573 dom.writeStartElement("response");
2574 NoteTable ntable(global.db);
2575 for (int i=0; i<results.size(); i++) {
2576 dom.writeStartElement("note");
2577 dom.writeStartElement("lid");
2578 dom.writeCharacters(QString::number(results[i]));
2579 dom.writeEndElement();
2580 Note n;
2581 ntable.get(n, results[i], false, false);
2582 if (n.title.isSet()) {
2583 dom.writeStartElement("title");
2584 dom.writeCharacters(n.title);
2585 dom.writeEndElement();
2586 }
2587 QString filename = global.fileManager.getThumbnailDirPath("")+QString::number(results[i])+".png";
2588 QFile file(filename);
2589 if (file.exists()) {
2590 dom.writeStartElement("preview");
2591 dom.writeCharacters(filename);
2592 dom.writeEndElement();
2593 }
2594 dom.writeEndElement();
2595 }
2596 dom.writeEndElement();
2597 dom.writeEndDocument();
2598
2599 global.sharedMemory->write(xmlString);
2600 }
2601 if (data.startsWith("OPEN_NOTE:")) {

Callers

nothing calls this directly

Calls 15

synchronizeMethod · 0.95
closeNixNoteMethod · 0.95
openExternalNoteMethod · 0.95
newExternalNoteMethod · 0.95
screenCaptureMethod · 0.95
toggleVisibleMethod · 0.95
newNoteMethod · 0.95
openNoteMethod · 0.95
setSearchStringMethod · 0.80
filterMethod · 0.80
getThumbnailDirPathMethod · 0.80
getTmpDirPathMethod · 0.80

Tested by

no test coverage detected