view topology/manager/TopologyFinish.cs @ 60:14222beab95b

fix
author KaitoMaeshiro <aosskaito@cr.ie.u-ryukyu.ac.jp>
date Thu, 27 Jan 2022 18:05:42 +0900
parents
children 1a42115e51bb
line wrap: on
line source

using System;
using System.Collections.Generic;
using Christie_net.daemon;
using Christie_net.annotation;
using Christie_net.codegear;
using Christie_net.topology;


namespace Christie_net.topology.manager {

    public class TopologyFinish : CodeGear {
        [Take] public Message FINISHMESSAGE;
        [Take] public TopologyManagerConfig topologyManagerConfig;
        [Take] public long startTime;
        
        public TopologyFinish() {
        }

        public override void Run(CodeGearManager cgm) {
            if (topologyManagerConfig.showTime) {
                Console.WriteLine("TopologymanagerTime = " + (CurrentTimeMillis() - startTime));
            }


            foreach(String dgm in cgm.GetDgmList().Keys){
                GetDgm(dgm).Put("_CLOSEMESSEAGE", new Message());
                GetDgm(dgm).Shutdown();
            }

            GetLocalDgm().Finish();
        }
        
        
        private static readonly DateTime Jan1st1970 = new DateTime
            (1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        public static long CurrentTimeMillis()
        {
            return (long) (DateTime.UtcNow - Jan1st1970).TotalMilliseconds;
        }
        
    }
}