コード例 #1
0
CfgDrivers::CfgDrivers(ConfigParser *parent)
{
   XMLElement *xel;
   config = new ConfigParser(parent, Cfg_Drivers);

   xel = config->getElement();

   drivers.FreeOnDelete(true);

   for (int i=0; (xel!=0) && (i<xel->GetChildrenCount()); i++)
   {
      XMLElement *el = xel->GetChild(i);
      ASSERT (el != 0);
      if (el != 0)
      {
         String *h = el->GetAttributeValue(Cfg_DriverHarmful);
         String *n = el->GetAttributeValue(Cfg_DriverName);

         if ((h != 0) && (n != 0))
         {
            Driver *d = new Driver;
            d->driver   = *n;
            d->harmful  = (h->ToLong() != 0) ? true : false;

            drivers << d;  
         }
      }
   }
}
コード例 #2
0
void CfgDrivers::onWrite()
{
   XMLElement *xel = config->getElement();

   while (xel->GetChildrenCount() > 0)
   {
      xel->RemChild(xel->GetChild(0));
   }

   for (int32 i=0; i<drivers.Count(); i++)
   {
      XMLElement *el = new XMLElement(Cfg_Driver, 0);
      el->AddAttribute(Cfg_DriverHarmful, drivers[i]->harmful ? 1 : 0);
      el->AddAttribute(Cfg_DriverName,    drivers[i]->driver);
      xel->AddChild(el);
   }
}