Ejemplo n.º 1
0
size_t BlockHashIndex::Load(std::FILE * mphf)
{
  size_t byteSize = LoadIndex(mphf);
  size_t end = std::ftell(mphf);
  
  for(size_t i = 0; i < m_seekIndex.size(); i++)
      LoadRange(i);
  std::fseek(m_fileHandle, end, SEEK_SET);
  return byteSize;
}
Ejemplo n.º 2
0
static void
OnRadialModified(fixed new_value)
{
  if (target_point < initial_active_task_point)
    return;

  Angle new_radial = Angle::Degrees(new_value);
  if (new_radial == range_and_radial.radial)
    return;

  bool must_reload_radial = false;
  if (new_radial >= Angle::HalfCircle()) {
    new_radial -= Angle::FullCircle();
    must_reload_radial = true;
  } else if (new_radial <= -Angle::HalfCircle()) {
    new_radial += Angle::FullCircle();
    must_reload_radial = true;
  }

  if ((new_radial.Absolute() > Angle::QuarterCircle()) !=
      (range_and_radial.radial.Absolute() > Angle::QuarterCircle())) {
    /* when the radial crosses the +/-90 degrees threshold, flip the
       range */
    range_and_radial.range = -range_and_radial.range;
    LoadRange();
  }

  range_and_radial.radial = new_radial;

  {
    ProtectedTaskManager::ExclusiveLease lease(*protected_task_manager);
    const OrderedTask &task = lease->GetOrderedTask();
    AATPoint *ap = task.GetAATTaskPoint(target_point);
    if (ap == nullptr)
      return;

    ap->SetTarget(range_and_radial,
                  lease->GetOrderedTask().GetTaskProjection());
  }

  if (must_reload_radial)
    LoadRadial();

  map->Invalidate();
}
Ejemplo n.º 3
0
size_t BlockHashIndex::GetHash(size_t i, const char* key)
{
  if(m_hashes[i] == 0)
    LoadRange(i);

#ifdef HAVE_CMPH    
  size_t idx = cmph_search((cmph_t*)m_hashes[i], key, (cmph_uint32) strlen(key));
#else
  size_t idx = 0;
#endif

  std::pair<size_t, size_t> orderPrint = m_arrays[i]->Get(idx, m_orderBits, m_fingerPrintBits);
  m_clocks[i] = clock();
  
  if(GetFprint(key) == orderPrint.second)
      return orderPrint.first;
  else
      return GetSize();
}
Ejemplo n.º 4
0
void test2()
 {
  Variable v{1,2,3};
  
  Printf(Con,"len = #;\n",SaveLen(v).value);
  
  uint8 buf[100];
  
  BufPutDev putdev(buf);
  
  putdev(v,v,v);
  
  Variable v1;
  
  BufGetDev getdev(buf);
  
  getdev(v1);
  
  Printf(Con,"#;\n",v1);
 
  getdev(v1);
  
  Printf(Con,"#;\n",v1);
  
  getdev(v1);
  
  Printf(Con,"#;\n",v1);
  
  RangeGetDev rget(Range_const(buf));
  
  Variable v2[3];
  
  LoadRange(v2,3,rget);
  
  Printf(Con,"#; #; #;\n",v2[0],v2[1],v2[2]);
 } 
Ejemplo n.º 5
0
/**
 * Loads the #range_and_radial variable into the range/radial form
 * controls.
 */
static void
LoadRangeAndRadial()
{
  LoadRange();
  LoadRadial();
}