Commit 410c05b9 authored by Ricardo Calheiros de Miranda Cosme's avatar Ricardo Calheiros de Miranda Cosme
Browse files

CPPOIL - Serviço de Dados

BigFix - O método getDataFacet() passa a retornar 0 quando o dado representado pela chave passada não é encontrado. Seguindo a definição do método.




git-svn-id: https://subversion.tecgraf.puc-rio.br/engdist/openbus/trunk@84486 ae0415b3-e90b-0410-900d-d0be9363c56b
parent e4145614
......@@ -1356,8 +1356,7 @@ namespace dataService {
return returnValue;
}
void IDataService::_getDataFacet(void* ptr, DataKey* key, char* facet_interface) {
IDataEntry* returnValue = NULL;
bool IDataService::_getDataFacet(void* ptr, DataKey* key, char* facet_interface) {
#if VERBOSE
printf("[(%p)IDataService::getDataFacet() COMECO]\n", this);
printf("\t[Tamanho da pilha de Lua: %d]\n" , lua_gettop(LuaVM));
......@@ -1418,6 +1417,14 @@ namespace dataService {
#endif
throw returnValue;
} /* if */
if (lua_type(LuaVM, -1) == LUA_TNIL) {
#if VERBOSE
printf("\t[Dado nao encontrado]\n");
printf("\t[Tamanho da pilha de Lua: %d]\n" , lua_gettop(LuaVM));
printf("[IDataService::getDataFacet() FIM]\n\n");
#endif
return false;
}
lua_getglobal(LuaVM, "orb");
lua_getfield(LuaVM, -1, "narrow");
lua_getglobal(LuaVM, "orb");
......@@ -1441,6 +1448,7 @@ namespace dataService {
printf("\t[Tamanho da pilha de Lua: %d]\n" , lua_gettop(LuaVM));
printf("[IDataService::getDataFacet() FIM]\n\n");
#endif
return true;
}
scs::core::NameList* IDataService::getFacetInterfaces(DataKey* key) {
......
......@@ -71,12 +71,15 @@ namespace dataService {
DataKey* createDataFrom(DataKey* parent_key, DataKey* source_key);
bool deleteData(DataKey* key);
Data* getData(DataKey* key);
void _getDataFacet(void* ptr, DataKey* key, char* facet_interface);
bool _getDataFacet(void* ptr, DataKey* key, char* facet_interface);
template <class T>
T* getDataFacet(DataKey* key, char* facet_interface) {
T* ptr = new T;
_getDataFacet(ptr, key, facet_interface);
return ptr;
if (!_getDataFacet(ptr, key, facet_interface)) {
return 0;
} else {
return ptr;
}
}
scs::core::NameList* getFacetInterfaces(DataKey* key);
};
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment