コード例 #1
0
ファイル: timeutils.cpp プロジェクト: khvysofq/vscp
bool TimeIsLater(uint32 earlier, uint32 later) {
#if EFFICIENT_IMPLEMENTATION
  int32 diff = later - earlier;
  return (diff > 0 && static_cast<uint32>(diff) < HALF);
#else
  const bool earlier_or_equal = TimeIsBetween(later, earlier, later + HALF);
  return !earlier_or_equal;
#endif
}
コード例 #2
0
ファイル: pseudo_tcp_porting.c プロジェクト: alb423/pseudoTCP
bool TimeIsLater(U32 earlier, U32 later)
{
#if EFFICIENT_IMPLEMENTATION
    S32 diff = later - earlier;
    return (diff > 0 && (U32)(diff) < HALF);
#else
    const bool earlier_or_equal = TimeIsBetween(later, earlier, later + HALF);
    return !earlier_or_equal;
#endif
}
コード例 #3
0
ファイル: timeutils.cpp プロジェクト: khvysofq/vscp
int32 TimeDiff(uint32 later, uint32 earlier) {
#if EFFICIENT_IMPLEMENTATION
  return later - earlier;
#else
  const bool later_or_equal = TimeIsBetween(earlier, later, earlier + HALF);
  if (later_or_equal) {
    if (earlier <= later) {
      return static_cast<long>(later - earlier);
    } else {
      return static_cast<long>(later + (LAST - earlier) + 1);
    }
  } else {
    if (later <= earlier) {
      return -static_cast<long>(earlier - later);
    } else {
      return -static_cast<long>(earlier + (LAST - later) + 1);
    }
  }
#endif
}
コード例 #4
0
ファイル: pseudo_tcp_porting.c プロジェクト: alb423/pseudoTCP
S32 TimeDiff(U32 later, U32 earlier)
{
#if EFFICIENT_IMPLEMENTATION
    return later - earlier;
#else
    const bool later_or_equal = TimeIsBetween(earlier, later, earlier + HALF);
    if (later_or_equal) {
        if (earlier <= later) {
            return (long)(later - earlier);
        } else {
            return (long)(later + (U32_MAX - earlier) + 1);
        }
    } else {
        if (later <= earlier) {
            return -(long)(earlier - later);
        } else {
            return -(long)(earlier + (U32_MAX - later) + 1);
        }
    }
#endif
}