Пример #1
0
void packet_tick(void)
{
    uint8_t src;
    interfaces_tick();
    cache_tick();
    if((src = interfaces_gotPacket(&p)) != IFACE_NONE){
        //uart1_puts("acDGab");
        uint8_t iface = cache_getDestIface(&p);
        if(interfaces_isReady(iface)){
            //uart1_puts("acDgab");
            interfaces_getPacket(src,&p);
            packet_packetIn(&p,src);
        }
    }
                                                                            
    //for interfaces do getpacket(&struct packt *)
    //sollte vom iface dierekt ueber getpacket geloest weren //for interfaces do isdone('');

}
Пример #2
0
void dispatch_CacheTick(void *pUnused, int iUnused)
{
    UNUSED_PARAMETER(pUnused);
    UNUSED_PARAMETER(iUnused);

    const char *cmdsave = mudstate.debug_cmd;
    mudstate.debug_cmd = (char *)"< cachetick >";

    CLinearTimeDelta ltd = 0;
    if (mudconf.cache_tick_period <= ltd)
    {
        mudconf.cache_tick_period.SetSeconds(1);
    }

    cache_tick();

    // Schedule ourselves again.
    //
    CLinearTimeAbsolute ltaNextTime;
    ltaNextTime.GetUTC();
    ltaNextTime += mudconf.cache_tick_period;
    scheduler.DeferTask(ltaNextTime, PRIORITY_SYSTEM, dispatch_CacheTick, 0, 0);
    mudstate.debug_cmd = cmdsave;
}