bool CNNM2ECC::addNewGroup(string svname, svutil::word & putid, string parentid) { WORDLIST subglist; //获取所有子孙 id if(parentid.find(".")==std::string::npos) { OBJECT objse= Cache_GetSVSE(parentid); if( objse==INVALID_VALUE ) return false; SVSE *se= reinterpret_cast<SVSE *>(objse); if(se==NULL) return false; subglist= se->GetSubGroups(); } else { OBJECT objgroup= Cache_GetGroup( parentid ); if(objgroup==INVALID_VALUE) return false; Group* pNnmGroup = reinterpret_cast<Group *>(objgroup); if(pNnmGroup==NULL) return false; subglist= pNnmGroup->GetSubGroups(); } //遍历子孙 for(WORDLIST::iterator it1=subglist.begin();it1!=subglist.end();it1++) { OBJECT objgroup2= Cache_GetGroup( (*it1).getword() ); if(objgroup2==INVALID_VALUE) continue; Group *pGroup = reinterpret_cast<Group *>(objgroup2); if(pGroup!=NULL) { std::string groupname = svname.c_str(); if(groupname.compare((pGroup->GetProperty())["sv_name"])==0) { putid = pGroup->GetID(); return true; } } } //如果没有发现需要的子孙,则新建 OBJECT newobj= CreateGroup(); if(newobj==INVALID_VALUE) return false; Group* pg= reinterpret_cast<Group *>(newobj); if(pg==NULL) return false; (pg->GetProperty())["sv_name"]= svname.c_str(); putid = AddNewGroup(newobj,parentid); bool ret= SubmitGroup(newobj); CloseGroup( newobj ); return ret; }
void CSVSortList::saveGroup(map<int, string, less<int> > &lsDis) { map<int, string, less<int> >::iterator lsDisItem; for(lsDisItem = lsDis.begin(); lsDisItem != lsDis.end(); lsDisItem ++) { string szGroupID = lsDisItem->second; OBJECT objGroup = GetGroup(szGroupID, m_szIDCUser, m_szIDCPwd); if(objGroup != INVALID_VALUE) { char szIndex[8] = {0}; sprintf(szIndex, "%d", lsDisItem->first); MAPNODE mainnode = GetGroupMainAttribNode(objGroup); if(mainnode != INVALID_VALUE) AddNodeAttrib(mainnode, "sv_index", szIndex); SubmitGroup(objGroup); CloseGroup(objGroup); } } }