Examples of TickTracker


Examples of appeng.me.cache.helpers.TickTracker

    return currentTick;
  }

  public long getAvgNanoTime(IGridNode node)
  {
    TickTracker tt = awake.get( node );

    if ( tt == null )
      tt = sleeping.get( node );

    if ( tt == null )
      return -1;

    return tt.getAvgNanos();
  }
View Full Code Here

Examples of appeng.me.cache.helpers.TickTracker

  }

  @Override
  public void onUpdateTick()
  {
    TickTracker tt = null;
    try
    {
      currentTick++;
      while (!upcomingTicks.isEmpty())
      {
        tt = upcomingTicks.peek();
        int diff = (int) (currentTick - tt.lastTick);
        if ( diff >= tt.current_rate )
        {
          // remove tt..
          upcomingTicks.poll();
          TickRateModulation mod = tt.gt.tickingRequest( tt.node, diff );
 
          switch (mod)
          {
          case FASTER:
            tt.setRate( tt.current_rate - 2 );
            break;
          case IDLE:
            tt.setRate( tt.request.maxTickRate );
            break;
          case SAME:
            break;
          case SLEEP:
            sleepDevice( tt.node );
            break;
          case SLOWER:
            tt.setRate( tt.current_rate + 1 );
            break;
          case URGENT:
            tt.setRate( 0 );
            break;
          default:
            break;
          }
 
          if ( awake.containsKey( tt.node ) )
            addToQueue( tt );
        }
        else
          return; // done!
      }
    }
    catch( Throwable t )
    {
          CrashReport crashreport = CrashReport.makeCrashReport(t, "Ticking GridNode");
          CrashReportCategory crashreportcategory = crashreport.makeCategory( tt.gt.getClass().getSimpleName() + " being ticked." );
            tt.addEntityCrashInfo(crashreportcategory);
            throw new ReportedException(crashreport);
    }
  }
View Full Code Here

Examples of appeng.me.cache.helpers.TickTracker

  }

  @Override
  public boolean alertDevice(IGridNode node)
  {
    TickTracker tt = alertable.get( node );
    if ( tt == null )
      return false;
    // throw new RuntimeException(
    // "Invalid alerted device, this node is not marked as alertable, or part of this grid." );
View Full Code Here

Examples of appeng.me.cache.helpers.TickTracker

  @Override
  public boolean sleepDevice(IGridNode node)
  {
    if ( awake.containsKey( node ) )
    {
      TickTracker gt = awake.get( node );
      awake.remove( node );
      sleeping.put( node, gt );

      return true;
    }
View Full Code Here

Examples of appeng.me.cache.helpers.TickTracker

  @Override
  public boolean wakeDevice(IGridNode node)
  {
    if ( sleeping.containsKey( node ) )
    {
      TickTracker gt = sleeping.get( node );
      sleeping.remove( node );
      awake.put( node, gt );
      addToQueue( gt );

      return true;
View Full Code Here

Examples of appeng.me.cache.helpers.TickTracker

    if ( machine instanceof IGridTickable )
    {
      TickingRequest tr = ((IGridTickable) machine).getTickingRequest( gridNode );
      if ( tr != null )
      {
        TickTracker tt = new TickTracker( tr, gridNode, (IGridTickable) machine, currentTick, this );

        if ( tr.canBeAlerted )
          alertable.put( gridNode, tt );

        if ( tr.isSleeping )
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.