Exemple #1
0
bool ZoneData::readZDbyName(int simNum,
                            int zoneNum,
                            string name,
                            int elementNum,
                            vector<string> &dataStore)
{
    Tools::ClassManager *cm = Tools::ClassManager::getInstance();
    DataElement *zdInfo = (DataElement *)cm->getObject("DTF::DataElement");

    int handle = this->fileHandle;
    int simNumber = simNum;
    int zoneNumber = zoneNum;
    int elementNumber = elementNum;
    dtf_datatype dataType = DTF_STRING_DATA;
    dtf_string *data = NULL;
    bool retVal = false;

    dataStore.clear();

    if (queryZDbyName(simNumber, zoneNumber, name, *zdInfo))
        if (zdInfo->getDataType() == dataType)
        {
            data = new dtf_string[zdInfo->getNumElements()];

            if (dtf_read_zd_by_name(&handle,
                                    &simNumber,
                                    &zoneNumber,
                                    name.c_str(),
                                    &elementNumber,
                                    data,
                                    &dataType) != DTF_ERROR)
            {
                for (int i = 0; i < zdInfo->getNumElements(); i++)
                    dataStore.push_back(data[i]);

                retVal = true;
            }
        }

    if (data != NULL)
    {
        delete[] data;
        data = NULL;
    }

    return retVal;
}