Exemple #1
0
 void VMapManager2::releaseModelInstance(std::string const& filename)
 {
     ModelFileMap::iterator model = getModelInstance(filename);
     if (model == iLoadedModelFiles.end())
     {
         DEBUG_FILTER_LOG(LOG_FILTER_MAP_LOADING,"VMapManager2::releaseModelInstance concurrent unloading file %s", filename.c_str());
         return;
     }
     if (model->second.count() == 0)
     {
         DEBUG_FILTER_LOG(LOG_FILTER_MAP_LOADING, "VMapManager2::releaseModelInstance unloading file '%s'", filename.c_str());
         WriteGuard Guard(GetLock());
         iLoadedModelFiles.erase(model);
         // model be auto-erased after method finish
     }
 }
Exemple #2
0
 WorldModelPtr VMapManager2::acquireModelInstance(std::string const& basepath, std::string const& filename)
 {
     ModelFileMap::iterator model = getModelInstance(filename);
     if (model == iLoadedModelFiles.end())
     {
         WorldModelPtr worldmodel = WorldModelPtr(new WorldModel());
         if (!worldmodel->readFile(basepath + filename + ".vmo"))
         {
             ERROR_LOG("VMapManager2::acquireModelInstance could not load '%s%s.vmo'!", basepath.c_str(), filename.c_str());
             return WorldModelPtr();
         }
         DEBUG_FILTER_LOG(LOG_FILTER_MAP_LOADING, "VMapManager2::acquireModelInstance loading file '%s%s'.", basepath.c_str(), filename.c_str());
         WriteGuard Guard(GetLock());
         model = (iLoadedModelFiles.insert(ModelFileMap::value_type(filename, worldmodel))).first;
     }
     return model->second;
 }
Exemple #3
0
QObject* GenericDAO::readModel(QSqlQuery& query)
{
    QObject* obj = getModelInstance();
    Q_ASSERT(obj);

    const QMetaObject* metaobject = obj->metaObject();
    int count = metaobject->propertyCount();
    for (int i = 1; i < count; i++)
    {
        QMetaProperty metaproperty = metaobject->property(i);
        const char* name = metaproperty.name();
        int fieldNo = query.record().indexOf(name);
        if (fieldNo > -1)
        {
            QVariant value = query.value(fieldNo);
//            if (strcmp(name, "id") == 0)
//                metaproperty.write(obj, Database::variantToUuid(value));
  //          else
                metaproperty.write(obj, value);
        }
    }

    return obj;
}