Annotation of nono/vm/uimessage.cpp, revision 1.1.1.2

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
1.1.1.2 ! root        7: //
        !             8: // UI スレッドへのメッセージ機構
        !             9: //
        !            10: 
1.1       root       11: #include "uimessage.h"
                     12: 
                     13: /*static*/ UIMessage::Queue UIMessage::queue {};
                     14: /*static*/ std::function<void(UIMessage::Queue&)> UIMessage::process {};
                     15: 
                     16: // コンストラクタ
                     17: UIMessage::UIMessage()
                     18:        : UIMessage(ID::NONE, 0)
                     19: {
                     20: }
                     21: 
                     22: // コンストラクタ (ID, argあり)
                     23: UIMessage::UIMessage(ID id_, int arg_)
                     24: {
                     25:        id = id_;
                     26:        arg = arg_;
                     27: }
                     28: 
                     29: /*static*/ void
                     30: UIMessage::Attach(const std::function<void(Queue&)>& process_)
                     31: {
                     32:        process = process_;
                     33:        // 溜まっているものを処理する
                     34:        process(queue);
                     35: }
                     36: 
                     37: void
                     38: UIMessage::Post()
                     39: {
                     40:        queue.EnqueueForce(*this);
                     41:        if (process) {
                     42:                process(queue);
                     43:        }
                     44: }
                     45: 
                     46: /*static*/ void
                     47: UIMessage::Post(ID id)
                     48: {
                     49:        UIMessage(id, 0).Post();
                     50: }
                     51: 
                     52: /*static*/ void
                     53: UIMessage::Post(ID id, int arg)
                     54: {
                     55:        UIMessage(id, arg).Post();
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.