警報システムでも作ろうかなぁ。

健康観察管理システムも、一応完成して、後は実際に運用してみて、テストするしかなくなった。

実際開発をすると、本当はここからが、苦しい戦いだけど、別に商品にする必要もないので、そこまで品質にはこだわっていない。だから、セッション管理もなんにもしていない。動けばいいし。というノリである。フールセーフもフェールセーフも実装しない。

というわけで、次に何をしようか考えた。
この前K察の講習で、「不審者がきたときには、教職員に出来るだけ多く、知らせることが必要。」といわれて、どうやって子どもを守りながらしらせるんか。という質問に、「ガラスを割りまくれ」と言っていた。

でもよぉーく考えたらガラスを割ってもさすがに隣のクラスと、上の階と下の階までしか届かない。職員室は50m以上は運動場を隔てて離れているしなぁ。まぁ割りまくったらさすがに分かるけど。

もっとエレガンスな方法はないかと考えた。校内LANでネットワークごしに、教室のマシンにエマージェンシーキーをつけたらいいのでは?と考えた。

で、結構これは大規模なシステムになると思って、[普段も使えるように文字チャットも、音声チャットも付け加えたい]ログを吐き出すクラスが必要と考えた。

ログを吐き出すたえには、wsprintfで、文字の書式を整えてからファイルに吐き出すのが面倒。

会社に言ってたときには、独自のクラスがあって、それに pLog->message()とかできたはず。

で、可変個の引数を受け取る方法を調べたら、あった。で、printfのラッパークラスでログ出力を実現することにする。

プリミティブには、はてなの過去質問を発見した。
C言語で、関数の可変引数について教えてください。(環境:SH4… - 人力検索はてな

これでかなり、勝利に近づいた。
今日中に完成させたいなぁ。

#include 
#include 
#include 

int ConsolePrint;

void dprintf( const char *arg, ...)
{
    char* p;
    va_list ap;

    va_start( ap, arg );

    if (ConsolePrint){
        vprintf( arg, ap );
    }
    else{
        vfprintf( stderr, arg, ap );
    }
    va_end( ap );
}

main( const int argc, char** argv )
{
    ConsolePrint = 1;
    dprintf(” data = [%d]¥n”, 10 );
    ConsolePrint = 0;
    dprintf(” data = [%d]¥n”, 10 );
}