⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cqlfactory.cpp

📁 Pegasus is an open-source implementationof the DMTF CIM and WBEM standards. It is designed to be por
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                return _makeObjectSimplePredicates[_makeObjectSimplePredicates.size()-1]._ptr;                break;          case Expression:                return NULL;                break;          default:                return makeObject((CQLSimplePredicate*)(_CQLObjectPtr._ptr), target);                break;        }PEG_METHOD_EXIT();}void* CQLFactory::makeObject(CQLSimplePredicate* obj, FactoryType target){//printf("CQLFactory::makeObject(simplepredicate)\n");PEG_METHOD_ENTER(TRC_CQL, "CQLFactory::makeObject,CQLSimplePredicate");	_CQLObjectPtr._ptr = new CQLPredicate(*obj);	_makeObjectPredicates.append(_CQLObjectPtr);	switch(target){          case Predicate:                return _makeObjectPredicates[_makeObjectPredicates.size()-1]._ptr;                break;          default:                return NULL;                break;        }PEG_METHOD_EXIT();}void* CQLFactory::getObject(void* inObject, FactoryType inObjectType, FactoryType targetType){PEG_METHOD_ENTER(TRC_CQL, "CQLFactory::getObject");void * obj = NULL;	switch(inObjectType){		case Predicate:                        obj = getObject(((CQLPredicate*)inObject),targetType);                        break;		case SimplePredicate:                        obj = getObject(((CQLSimplePredicate*)inObject),targetType);                        break;		case Expression:                        obj = getObject(((CQLExpression*)inObject),targetType);                        break;		case Term:                        obj = getObject(((CQLTerm*)inObject),targetType);                        break;		case Factor:                        obj = getObject(((CQLFactor*)inObject),targetType);                        break;		case Function:                        obj = NULL;                        break;		case Value:                        obj = getObject(((CQLValue*)inObject),targetType);                        break;		case ChainedIdentifier:                        obj = getObject(((CQLChainedIdentifier*)inObject),targetType);                        break;		default:                        obj = NULL;                        break;	}PEG_METHOD_EXIT();return obj;}void* CQLFactory::getObject(CQLChainedIdentifier* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLChainedIdentifier* obj)\n");   Array<CQLIdentifier> cqlIds;	switch(target){          case Identifier:            //if(obj->_rep->_subIdentifiers.size() > 0){         cqlIds = obj->getSubIdentifiers();         if(cqlIds.size() > 0){           //	_CQLObjectPtr._ptr = new CQLIdentifier(obj->_rep->_subIdentifiers[0]);			_CQLObjectPtr._ptr = new CQLIdentifier(cqlIds[0]);			_getObjectIdentifiers.append(_CQLObjectPtr);                	return _getObjectIdentifiers[_getObjectIdentifiers.size()-1]._ptr;         }		return NULL;          default:                return NULL;        }}void* CQLFactory::getObject(CQLValue* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLValue* obj)\n");	switch(target){          case ChainedIdentifier:		_CQLObjectPtr._ptr = new CQLChainedIdentifier(obj->_rep->_CQLChainId);		_getObjectChainedIdentifiers.append(_CQLObjectPtr);		return _getObjectChainedIdentifiers[_getObjectChainedIdentifiers.size()-1]._ptr;	  case Identifier:		return getObject(&(obj->_rep->_CQLChainId),target);          default:                return NULL;                break;        }}void* CQLFactory::getObject(CQLFactor* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLFactor* obj)\n");        switch(target){          case Function:		_CQLObjectPtr._ptr = new CQLFunction(obj->_rep->_CQLFunct);                _getObjectFunctions.append(_CQLObjectPtr);		return _getObjectFunctions[_getObjectFunctions.size()-1]._ptr;	  case Value:		_CQLObjectPtr._ptr = new CQLValue(obj->_rep->_CQLVal);                _getObjectValues.append(_CQLObjectPtr);		return _getObjectValues[_getObjectValues.size()-1]._ptr;          case ChainedIdentifier:          case Identifier:		return getObject(&(obj->_rep->_CQLVal),target);          default:                return NULL;                break;        }                                                                                                                                                    }void* CQLFactory::getObject(CQLTerm* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLTerm* obj)\n");        switch(target){	  case Factor:		_CQLObjectPtr._ptr = new CQLFactor(obj->getFactors()[0]);                _getObjectFactors.append(_CQLObjectPtr);		return _getObjectFactors[_getObjectFactors.size()-1]._ptr;          case Function:	  case Value:          case ChainedIdentifier:          case Identifier:		return getObject(&(obj->getFactors()[0]),target);          default:                return NULL;                break;        }}void* CQLFactory::getObject(CQLExpression* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLExpression* obj)\n");        switch(target){	  case Term:		_CQLObjectPtr._ptr = new CQLTerm(obj->getTerms()[0]);                _getObjectTerms.append(_CQLObjectPtr);                return _getObjectTerms[_getObjectTerms.size()-1]._ptr;          case Factor:          case Function:	  case Value:          case ChainedIdentifier:          case Identifier:		return getObject(&(obj->getTerms()[0]), target);          default:		return NULL;                break;        }                                                                                                                                                    }void* CQLFactory::getObject(CQLSimplePredicate* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLSimplePredicate* obj)\n");        switch(target){	  case Expression:		_CQLObjectPtr._ptr = new CQLExpression(obj->_rep->_leftSide);                _getObjectExpressions.append(_CQLObjectPtr);                return _getObjectExpressions[_getObjectExpressions.size()-1]._ptr;          case Term:          case Factor:          case Function:	  case Value:          case ChainedIdentifier:          case Identifier:		return getObject(&(obj->_rep->_leftSide), target);          default:                return NULL;                break;        }}void* CQLFactory::getObject(CQLPredicate* obj, FactoryType target){//	printf("CQLFactory::getObject(CQLPredicate* obj)\n");        switch(target){          case SimplePredicate:		_CQLObjectPtr._ptr = new CQLSimplePredicate(obj->_rep->_simplePredicate);                _getObjectSimplePredicates.append(_CQLObjectPtr);                return _getObjectSimplePredicates[_getObjectSimplePredicates.size()-1]._ptr;	  case Expression:	  case Term:	  case Factor:	  case Function:	  case Value:	  case ChainedIdentifier:	  case Identifier:		return getObject(&(obj->_rep->_simplePredicate), target);          default:                return NULL;                break;        }}void CQLFactory::setObject(CQLPredicate* predicate, void* obj, FactoryType objType){PEG_METHOD_ENTER(TRC_CQL, "CQLFactory::setObject");	switch(objType){	  case SimplePredicate:		predicate->_rep->_simplePredicate = *((CQLSimplePredicate*)obj);		break;	  case Expression:		predicate->_rep->_simplePredicate._rep->_leftSide = *((CQLExpression*)obj);		break;          case Term:          	predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0] =  			*((CQLTerm*)obj);		break;          case Factor:		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0] = 			*((CQLFactor*)obj);		break;          case Function:		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLFunct =                        *((CQLFunction*)obj);		break;	  case Value:		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLVal =                        *((CQLValue*)obj);		break;	  case ChainedIdentifier:		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLVal._rep->_CQLChainId = *((CQLChainedIdentifier*)obj);		break;	  case Identifier:		break;	  default:		break;	}PEG_METHOD_EXIT();} PEGASUS_NAMESPACE_END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -