DataType * new_UnknowType(){ if (unknowObj == NULL){ DataType *dataBase = new_DataType("unknow", -1); if (dataBase == NULL) return NULL; UnknowType* newunknowObj = (UnknowType*)malloc(sizeof(UnknowType)); if (newunknowObj == NULL){ dataBase->f_delete_DataType(dataBase); return NULL; } dataBase->_pDerivedObj = newunknowObj; newunknowObj->baseDataType = dataBase; dataBase->f_delete_DataType = delete_UnknowType; unknowObj = newunknowObj->baseDataType; } return unknowObj; }
DataType * new_StringType(){ if (stringObj == NULL){ DataType *dataBase = new_DataType("string", 0); if (dataBase == NULL){ return NULL; } StringType *newstringObj = (StringType*)malloc(sizeof(StringType)); if (newstringObj == NULL){ dataBase->f_delete_DataType(dataBase); return NULL; } dataBase->_pDerivedObj = newstringObj; newstringObj->baseDataType = dataBase; dataBase->f_delete_DataType = delete_StringType; dataBase->f_getValue = getStringValue; stringObj = dataBase; } return stringObj; }
DataType * new_DoubleType(){ if (doubleObj == NULL){ DataType *dataBase = new_DataType("double", sizeof(double)); if (dataBase == NULL){ return NULL; } DoubleType * newdoubleObj = (DoubleType*)malloc(sizeof(DoubleType)); if (newdoubleObj == NULL){ dataBase->f_delete_DataType(dataBase); return NULL; } dataBase->_pDerivedObj = newdoubleObj; newdoubleObj->baseDataType = dataBase; dataBase->f_delete_DataType = delete_DoubleType; dataBase->f_getValue = getDoubleValue; doubleObj = newdoubleObj->baseDataType; } return doubleObj; }
DataType* new_IntType(){ if (intObj == NULL){ DataType *dataBase = new_DataType("int", sizeof(int)); if (dataBase == NULL){ return NULL; } IntType *intObjs = (IntType*)malloc(sizeof(IntType)); if (intObjs == NULL){ dataBase->f_delete_DataType(dataBase); return NULL; } dataBase->_pDerivedObj = intObjs; intObjs->baseDataType = dataBase; dataBase->f_delete_DataType = delete_IntType; dataBase->f_getValue = getIntValue; intObj = intObjs->baseDataType; } return intObj; }
DataType * new_FloatType(){ if (floatObj == NULL){ DataType *dataBase = new_DataType("float", sizeof(float)); if (dataBase == NULL){ return NULL; } FloatType * newfloatObj = (FloatType*)malloc(sizeof(FloatType)); if (newfloatObj == NULL){ dataBase->f_delete_DataType(dataBase); return NULL; } dataBase->_pDerivedObj = newfloatObj; newfloatObj->baseDataType = dataBase; dataBase->f_delete_DataType = delete_FloatType; dataBase->f_getValue = getFloatValue; floatObj = newfloatObj->baseDataType; } return floatObj; }
DataType * new_LongType(){ if (longObj == NULL){ DataType *dataBase = new_DataType("long", sizeof(long)); if (dataBase == NULL){ return NULL; } LongType *newlongObj = (LongType*)malloc(sizeof(LongType)); if (newlongObj == NULL){ dataBase->f_delete_DataType(dataBase); return NULL; } dataBase->_pDerivedObj = newlongObj; newlongObj->baseDataType = dataBase; dataBase->f_delete_DataType = delete_LongType; dataBase->f_getValue = getLongValue; longObj = newlongObj->baseDataType; } return longObj; }