Scope::Scope(Clone *clone, Subst *subst, Scope *original) : Symbol(clone, subst, original) , _members(0) , _startOffset(original->_startOffset) , _endOffset(original->_endOffset) { for (iterator it = original->memberBegin(), end = original->memberEnd(); it != end; ++it) addMember(clone->symbol(*it, subst)); }
/** Constructor */ CreateCircleDialog::CreateCircleDialog() : QDialog(NULL, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint) { /* Invoke the Qt Designer generated object setup routine */ ui.setupUi(this); /* Setup Queue */ mCircleQueue = new TokenQueue(rsGxsCircles->getTokenService(), this); mIdQueue = new TokenQueue(rsIdentity->getTokenService(), this); ui.headerFrame->setHeaderImage(QPixmap(":/images/circles/circles_64.png")); // connect up the buttons. connect(ui.addButton, SIGNAL(clicked()), this, SLOT(addMember())); connect(ui.removeButton, SIGNAL(clicked()), this, SLOT(removeMember())); connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(createCircle())); connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(close())); connect(ui.treeWidget_membership, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(selectedMember(QTreeWidgetItem*, QTreeWidgetItem*))); connect(ui.treeWidget_IdList, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(selectedId(QTreeWidgetItem*, QTreeWidgetItem*))); connect(ui.treeWidget_IdList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(IdListCustomPopupMenu(QPoint))); connect(ui.treeWidget_membership, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(MembershipListCustomPopupMenu(QPoint))); connect(ui.IdFilter, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString))); //connect(ui.toolButton_NewId, SIGNAL(clicked()), this, SLOT(createNewGxsId())); /* Add filter actions */ QTreeWidgetItem *headerItem = ui.treeWidget_IdList->headerItem(); QString headerText = headerItem->text(RSCIRCLEID_COL_NICKNAME); ui.IdFilter->addFilter(QIcon(), headerText, RSCIRCLEID_COL_NICKNAME, QString("%1 %2").arg(tr("Search"), headerText)); headerText = headerItem->text(RSCIRCLEID_COL_KEYID); ui.IdFilter->addFilter(QIcon(), headerText, RSCIRCLEID_COL_KEYID, QString("%1 %2").arg(tr("Search"), headerText)); ui.removeButton->setEnabled(false); ui.addButton->setEnabled(false); ui.radioButton_ListAll->setChecked(true); QObject::connect(ui.radioButton_ListAll, SIGNAL(toggled(bool)), this, SLOT(idTypeChanged())) ; QObject::connect(ui.radioButton_ListAllPGP, SIGNAL(toggled(bool)), this, SLOT(idTypeChanged())) ; QObject::connect(ui.radioButton_ListKnownPGP, SIGNAL(toggled(bool)), this, SLOT(idTypeChanged())) ; QObject::connect(ui.radioButton_Public, SIGNAL(toggled(bool)), this, SLOT(updateCircleType(bool))) ; QObject::connect(ui.radioButton_Self, SIGNAL(toggled(bool)), this, SLOT(updateCircleType(bool))) ; QObject::connect(ui.radioButton_Restricted, SIGNAL(toggled(bool)), this, SLOT(updateCircleType(bool))) ; ui.radioButton_Public->setChecked(true) ; mIsExistingCircle = false; mIsExternalCircle = true; mClearList = true; //ui.idChooser->loadIds(0,RsGxsId()); ui.circleComboBox->loadCircles(GXS_CIRCLE_CHOOSER_EXTERNAL, RsGxsCircleId()); }
ResourceLoadNode::ResourceLoadNode( std::string const &name, RC::Handle<Context> const &context ) : Node( name, context ) , m_fabricResourceStreamData( context->getRTManager() ) , m_firstEvalAfterLoad( false ) , m_keepMemoryCache( false ) , m_asFile( false ) , m_inProgress( false ) , m_streamGeneration( 0 ) , m_resourceManagerWeak( context->getIOManager()->getResourceManager() ) { RC::ConstHandle<RT::StringDesc> stringDesc = context->getRTManager()->getStringDesc(); RC::ConstHandle<RT::BooleanDesc> booleanDesc = context->getRTManager()->getBooleanDesc(); addMember( "url", stringDesc, stringDesc->getDefaultData() ); addMember( "resource", m_fabricResourceStreamData.getDesc(), m_fabricResourceStreamData.getDesc()->getDefaultData() ); addMember( "keepMemoryCache", booleanDesc, booleanDesc->getDefaultData() ); addMember( "storeDataAsFile", booleanDesc, booleanDesc->getDefaultData() ); }
void MembershipTableMgr::handleLeadingJoinEvent(const MemberWrapper& joined_member) { function_footprint(); auto leading = addMember(joined_member); // set local member index localIndex = leading->getId(); // joined leading->setStatus(JOINED); setMemberStatus(leading, JOINED); }
void HippoChatRoomWrapper::onUserStateChanged(HippoPerson *person) { HippoChatState state = hippo_chat_room_get_user_state(delegate_, person); if (state == HIPPO_CHAT_STATE_PARTICIPANT) { addMember(person); } else { removeMember(person, true); } }
QSPixmapClass::QSPixmapClass( QSClass *b, QuickInterpreter *i ) : QSSharedClass( b ), QuickEnvClass( i ) { addMember( QString::fromLatin1("width"), QSMember( QSMember::Custom, Width, AttributeNonWritable ) ); addMember( QString::fromLatin1("height"), QSMember( QSMember::Custom, Height, AttributeNonWritable ) ); addMember( QString::fromLatin1("rect"), QSMember( QSMember::Custom, Rect, AttributeNonWritable ) ); addMember( QString::fromLatin1("size"), QSMember( QSMember::Custom, Size, AttributeNonWritable ) ); addMember( QString::fromLatin1("depth"), QSMember( QSMember::Custom, Depth, AttributeNonWritable ) ); addMember( QString::fromLatin1("isNull"), QSMember( &isNull ) ); addMember( QString::fromLatin1("fill"), QSMember( &fill ) ); addMember( QString::fromLatin1("resize"), QSMember( &resize ) ); addMember( QString::fromLatin1("load"), QSMember( &load ) ); addMember( QString::fromLatin1("save"), QSMember( &save ) ); }
void CreateCircleDialog::addMember() { QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem(); if (!item) return; /* check that its not there already */ QString keyId = item->text(RSCIRCLEID_COL_KEYID); QString idtype = item->text(RSCIRCLEID_COL_IDTYPE); QString nickname = item->text(RSCIRCLEID_COL_NICKNAME); addMember(keyId, idtype, nickname); }
void CreateCircleDialog::addMember(const RsGxsIdGroup &idGroup) { QString keyId = QString::fromStdString(idGroup.mMeta.mGroupId.toStdString()); QString nickname = QString::fromUtf8(idGroup.mMeta.mGroupName.c_str()); QString idtype = tr("Anon Id"); if (idGroup.mPgpKnown){ RsPeerDetails details; rsPeers->getGPGDetails(idGroup.mPgpId, details); idtype = QString::fromUtf8(details.name.c_str()); }//if (idGroup.mPgpKnown) addMember(keyId, idtype, nickname); }
void LLPanelGroupGeneral::updateMembers() { mPendingMemberUpdate = FALSE; LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); if (!mListVisibleMembers || !gdatap || !gdatap->isMemberDataComplete() || gdatap->mMembers.empty()) { return; } LLTimer update_time; update_time.setTimerExpirySec(UPDATE_MEMBERS_SECONDS_PER_FRAME); LLAvatarName av_name; for( ; mMemberProgress != gdatap->mMembers.end() && !update_time.hasExpired(); ++mMemberProgress) { LLGroupMemberData* member = mMemberProgress->second; if (!member) { continue; } if (LLAvatarNameCache::get(mMemberProgress->first, &av_name)) { addMember(mMemberProgress->second); } else { // If name is not cached, onNameCache() should be called when it is cached and add this member to list. LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2)); } } if (mMemberProgress == gdatap->mMembers.end()) { lldebugs << " member list completed." << llendl; mListVisibleMembers->setEnabled(TRUE); } else { mPendingMemberUpdate = TRUE; mListVisibleMembers->setEnabled(FALSE); } }
void mainPage(Member *list) { char input; while (1) { system("cls"); printf("\n\n\n\n\n\n\n\n"); printf(" ================================================\n"); printf(" 1.회원보기\n"); printf(" 2.회원등록\n"); printf(" 3.회원수정\n"); printf(" 4.회원삭제\n"); printf(" 5.회원검색\n"); printf(" 6.변경사항 저장\n"); printf(" 7.종료\n"); printf(" ================================================\n"); input = _getch(); if (48 < input && 56 > input) // 문자'1'의 아스키코드는 49 { switch (input) { case 49: printPersonalInformation(list); break; case 50: addMember(list); break; case 51: editMember(list); break; case 52: deleteMember(list); break; case 53: searchMember(list); break; case 54:; saveMember(list); break; case 55:; return; } } else printf("\a"); // 1~7 이외의 값 입력시 beep음 출력 } return; }
void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name) { LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); if (!gdatap || !gdatap->isMemberDataComplete() || gdatap->getMemberVersion() != update_id) { // Stale data return; } addMember(member); }
void MembershipTableMgr::handleDeltaMemberEvent(const std::shared_ptr<ActorMessage>& msg) { function_footprint(); if(members.empty()){ return; } auto payload = dynamic_cast<DeltaMemberEvent*>(msg->getPayload().get()); MemberWrapper member; member.setMember(payload->member()); const uint32_t pos = payload->position(); auto joined_member = addMember(member, pos); if(isLocalMember(*joined_member)) { localIndex = pos; } setMemberStatus(joined_member, JOINED); }
void RangeType::dumpXml(TiXmlElement *parent) const { TiXmlElement *elem = addClass(parent, "RangeType"); addMember(elem, "isConst", isConst); addMember(elem, "isVolatile", isVolatile); //addMember(elem, "baseType", baseType); addMember(elem, "lowBound", lowBound); addMember(elem, "highBound", highBound); addMember(elem, "locFirst", locFirst); addMember(elem, "locLast", locLast); }
void CGroup::reqGroupMembers(stGroupItem* pGroup ) { // refresh cnt ; // Json::Value cValue ; // cValue["email"] = "*****@*****.**" ; // cValue["devpwd"] = "bill007" ; //#ifndef ONLINE_APP_KEY // cValue["appkey"] = "e87f31bb-e86c-4d87-a3f3-57b3da76b3d6"; //#else // cValue["appkey"] = "abffee4b-deea-4e96-ac8d-b9d58f246c3f" ; //#endif // DEBUG // //cValue["index"] = pGroup->getMemberCnt() / REQ_PAGE_MEMBER_CNT_OF_CLUB ; // //cValue["count"] = REQ_PAGE_MEMBER_CNT_OF_CLUB ; // cValue["group_id"] = pGroup->nGroupID ; // Json::StyledWriter sWrite ; // std::string str = sWrite.write(cValue); // m_pGoTyeAPI.performRequest("GetGroupUserList",str.c_str(),str.size(),pGroup,eReq_GroupMembers ); auto pQinjia = CGameServerApp::SharedGameServerApp()->getQinjiaModule(); Json::Value cValue ; cValue["group_id"] = pGroup->nGroupID ; pQinjia->sendQinJiaRequest("GetGroupUserList",cValue,[this](Json::Value& jsResult , Json::Value& jsUserData){ auto nClubID = jsUserData["group_id"].asUInt(); auto pClub = getGroupByID(nClubID); if ( jsResult.isNull() || jsResult["errcode"].asUInt() != 200 ) { LOGFMTE("req club = %u, member list error ",nClubID) ; return ; } Json::Value jsMembers = jsResult["user_list"] ; for ( uint16_t nIdx = 0 ; nIdx < jsMembers.size() ; ++nIdx ) { auto jsM = jsMembers[nIdx] ; uint32_t nUID = atoi(jsM.asCString()) ; LOGFMTD("req member to add group id = %u , uid = %u",pClub->nGroupID,nUID); pClub->addMember(nUID) ; } },cValue) ; }
void CDoodMemberManager::onMemberListChanged(QString operType, QString GroupId, MemberList memberlist) { qDebug() << Q_FUNC_INFO<<"sss"; if(operType=="32"||operType=="33"){ for(size_t i=0;i<memberlist.size();++i){ qDebug() << Q_FUNC_INFO<<"sss1"<<memberlist[i].id<<memberlist[i].name; CDoodMemberItem *item = memberListMap.value(memberlist[i].id,NULL); if(item!=NULL){ qDebug() << Q_FUNC_INFO<<"sss2"; if(item->groupid()==GroupId){ qDebug() << Q_FUNC_INFO<<"sss3"; removeMemberItem(memberlist[i].id); int size; size=memberSize().toInt()-1; setMemberSize(QString::number(size)); } } item=groupAdminListMap.value(memberlist[i].id,NULL); if(item!=NULL){ if(memberlist[i].groupid==GroupId){ removeMemberItem(memberlist[i].id); int size; size=memberSize().toInt()-1; setMemberSize(QString::number(size)); } } } } if(operType=="1"){ if(GroupId==mGroupid){ for(size_t i=0;i<memberlist.size();++i){ addMember(memberlist[i]); emit itemCountChanged(); } int size; size=memberSize().toInt()+memberlist.size(); setMemberSize(QString::number(size)); } } }
BOOL CGroupMembersPage::OnInitDialog() { CPropertyPage::OnInitDialog(); m_memberList.SetImageList(&getApp()->smallImageList, LVSIL_SMALL); CString str; str.LoadString(IDS_UIN); m_memberList.InsertColumn(0, str, LVCFMT_LEFT, 90); str.LoadString(IDS_NICK); m_memberList.InsertColumn(1, str, LVCFMT_CENTER, 120); IcqGroup *g = ((CGroupInfoDlg *) GetParent())->group; for (int i = 0; i < MAX_GROUP_MEMBERS; i++) { GroupMember *m = g->members[i]; if (m) addMember(m); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CDoodMemberManager::onGetMemberListResult(QString result, MemberList memberList) { if(result=="获取成员列表成功"){ if(memberList.size()>0){ if(memberList[0].groupid==m_ThePresentGroupid){ setMemberSize(QString::number(memberList.size())); mMy_Id=getMyId(); setMy_Type("1"); for(size_t i=0;i<memberList.size();i++) { mGroupid=memberList[0].groupid; addMember(memberList[i]); emit itemCountChanged(); } emit getMemberListResult("获取成员列表成功"); } } } else{ emit getMemberListResult("获取成员列表失败"); } }
void options() { int option; printf("\nPress 1 to add a new member to the list.\n"); printf("Press 2 to search for a member by name.\n"); printf("Press 3 to remove a member from the list.\n"); printf("Press 4 to destroy the current list\n"); printf("Press 5 to exit the program.\n"); scanf("%d", &option); switch (option) { case 1: addMember(); break; case 2: searchMemberCall(); break; case 3: deleteMember(); break; case 4: destroyList(); break; case 5: printf("You have exited the program."); break; default: printf("You have entered a faulty option, please try again.\n"); options(); break; } }
void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id) { avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id); if (it != mAvatarNameCacheConnections.end()) { if (it->second.connected()) { it->second.disconnect(); } mAvatarNameCacheConnections.erase(it); } LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID); if (!gdatap || !gdatap->isMemberDataComplete() || gdatap->getMemberVersion() != update_id) { // Stale data return; } addMember(member); }
ArrayVariant& ArrayVariant::operator+=(const Variant& member) { addMember(member); return *this; }
QSRegExpClass::QSRegExpClass( QSClass *b ) : QSWritableClass( b ) { int a = AttributeNonWritable; addMember( QString::fromLatin1("valid"), QSMember( QSMember::Custom, Valid, a ) ); addMember( QString::fromLatin1("empty"), QSMember( QSMember::Custom, Empty, a ) ); addMember( QString::fromLatin1("matchedLength"), QSMember( QSMember::Custom, MLength, a ) ); addMember( QString::fromLatin1("capturedTexts"), QSMember( QSMember::Custom, CTexts, a ) ); addMember( QString::fromLatin1("source"), QSMember( QSMember::Custom, Source, a ) ); addMember( QString::fromLatin1("global"), QSMember( QSMember::Custom, Global, AttributePublic ) ); addMember( QString::fromLatin1("ignoreCase"), QSMember( QSMember::Custom, IgnoreCase, AttributePublic ) ); addMember( QString::fromLatin1("toString"), QSMember( &QSRegExpClass::toStringScript ) ); addMember( QString::fromLatin1("search"), QSMember( &search ) ); addMember( QString::fromLatin1("searchRev"), QSMember( &searchRev ) ); addMember( QString::fromLatin1("exactMatch"), QSMember( &exactMatch ) ); addMember( QString::fromLatin1("pos"), QSMember( &pos ) ); addMember( QString::fromLatin1("cap"), QSMember( &cap ) ); }
bool Membership::firstJoin() { logFile<<"calling firstJoin"<< std::endl; //set my own addr, ip, timeStamp, roundID myTimeStamp = time(NULL); my_ip_str = getOwnIPAddr(); //now I have my self as member addMember( my_ip_str, myTimeStamp ); bool joined = false; Message msg; msg.type = MSG_JOIN; msg.roundId = -1; ipString2Char4(my_ip_str, msg.carrierAdd); msg.timeStamp = myTimeStamp; msg.TTL = isIntroducer; //used to distinguish joining node is Introducer or not for(int i=0; (i < nodes.size()) /*&& !joined*/ ; i++){ int connectionToServer; //TCP connect to introducer/other nodes logFile <<"Join: Connecting to "<< nodes[i].ip_str << "..." << std::endl; int ret = connect_to_server(nodes[i].ip_str.c_str(), port + 1, &connectionToServer); if(ret!=0) { logFile <<"ERROR Join: Cannot connect to "<<nodes[i].ip_str<< std::endl; if(!isIntroducer){ i--; usleep(200*1000); } continue; } else{ ret = write(connectionToServer, &msg, sizeof(Message) ); Message newMsg; read(connectionToServer, &newMsg, sizeof(Message)); int size = newMsg.timeStamp; Message * msgs = new Message[size]; int j=0; for(j=0; j < size; j++){ read(connectionToServer, msgs + j, sizeof(Message)); logFile<<"FirstJoin: received "<<char42String(msgs[j].carrierAdd)<<" "<<msgs[j].timeStamp<< std::endl; } if(j == size){ joined = true; for(j=0; j < size; j++) addMember(char42String(msgs[j].carrierAdd), msgs[j].timeStamp); } else{ std::cout << "Join: Failed downloading nodes list"<< std::endl; logFile <<"ERROR Join: Failed downloading nodes list"<< std::endl; } delete [] msgs; close(connectionToServer); } } //printMember(); return joined; }
void RateClass::addMember(const SnacBuffer& snac) { addMember( snac.family(), snac.subtype() ); }
void CreateCircleDialog::IdListCustomPopupMenu( QPoint ) { QMenu contextMnu( this ); QTreeWidgetItem *item = ui.treeWidget_IdList->currentItem(); if (item) { contextMnu.addAction(QIcon(":/images/edit_add24.png"), tr("Add Member"), this, SLOT(addMember())); } contextMnu.exec(QCursor::pos()); }
bool CGroup::onMsg(Json::Value& prealMsg ,uint16_t nMsgType, eMsgPort eSenderPort , uint32_t nSessionID) { if ( IGlobalModule::onMsg(prealMsg,nMsgType,eSenderPort,nSessionID) ) { return true ; } switch ( nMsgType ) { case MSG_CREATE_CLUB: { auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; if ( pPlayer == nullptr ) { LOGFMTE("session id = %u , player is null , can not create club",nSessionID) ; return true ; } uint16_t nOwnClubCnt = getClubCntByUserUID(pPlayer->GetUserUID()); uint16_t nMaxCanCreate = pPlayer->GetBaseData()->getMaxCanCreateClubCount() ; Json::Value jsMsgBack ; jsMsgBack["newClubID"] = prealMsg["newClubID"].asUInt() ; if ( nOwnClubCnt >= nMaxCanCreate ) { jsMsgBack["ret"] = 1 ; CGameServerApp::SharedGameServerApp()->sendMsg(nSessionID,jsMsgBack,nMsgType) ; return true ; } jsMsgBack["ret"] = 0 ; stGroupItem* pItem = new stGroupItem() ; pItem->nCityCode = prealMsg["cityCode"].asUInt() ; pItem->nCreaterUID = pPlayer->GetUserUID() ; pItem->nGroupID = prealMsg["newClubID"].asUInt() ; pItem->addMember(pPlayer->GetUserUID()); addGroup(pItem) ; LOGFMTD("player uid = %u create new club id = %u city code = %u",pPlayer->GetUserUID(),pItem->nGroupID,pItem->nCityCode) ; CGameServerApp::SharedGameServerApp()->sendMsg(nSessionID,jsMsgBack,nMsgType) ; } break ; case MSG_DISMISS_CLUB: { uint32_t nClubID = prealMsg["clubID"].asUInt() ; auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; auto pClub = getGroupByID(nClubID) ; Json::Value jsMsgBack ; jsMsgBack["ret"] = 0 ; if ( pClub == nullptr || pClub->nCreaterUID != pPlayer->GetUserUID() ) { jsMsgBack["ret"] = 1 ; CGameServerApp::SharedGameServerApp()->sendMsg( nSessionID,jsMsgBack,nMsgType) ; return true ; } if ( pClub->isRoomKeepRunning() ) { jsMsgBack["ret"] = 2 ; CGameServerApp::SharedGameServerApp()->sendMsg(nSessionID,jsMsgBack,nMsgType) ; return true ; } dismissGroup(nClubID) ; CGameServerApp::SharedGameServerApp()->sendMsg( nSessionID,jsMsgBack,nMsgType) ; LOGFMTD("player uid = %u dismiss club id = %u",pPlayer->GetUserUID(),nClubID) ; } break ; case MSG_REQ_PLAYER_JOINED_CLUBS: { uint32_t nReqUID = prealMsg["uid"].asUInt() ; Json::Value jsJoinedClubs ; for ( auto vclub : m_vGroups ) { if ( vclub.second->isHaveMember(nReqUID) ) { jsJoinedClubs[jsJoinedClubs.size()] = vclub.second->nGroupID ; } } prealMsg["clubIDs"] = jsJoinedClubs ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; } break; case MSG_REQ_CLUB_ROOM: { Json::Value jsMsgBack; jsMsgBack["ret"] = 0 ; auto pg = getGroupByID(prealMsg["clubID"].asUInt()) ; if ( pg == nullptr ) { jsMsgBack["ret"] = 1 ; getSvrApp()->sendMsg(nSessionID,jsMsgBack,MSG_REQ_CLUB_ROOM) ; break ; } Json::Value jsRoomIDs ; auto pgameCenter = CGameServerApp::SharedGameServerApp()->getGameRoomCenter() ; std::vector<uint32_t> vAllRoomIDs ; pgameCenter->getClubOwnRooms(vAllRoomIDs,pg->nGroupID) ; for ( auto rid : vAllRoomIDs ) { jsRoomIDs[jsRoomIDs.size()] = rid ; } jsMsgBack["rooms"] = jsRoomIDs ; getSvrApp()->sendMsg(nSessionID,jsMsgBack,MSG_REQ_CLUB_ROOM) ; } break; case MSG_REQ_CLUB_INFO: { uint32_t nGroupID = prealMsg["groupID"].asUInt() ; auto pGroup = getGroupByID(nGroupID) ; if ( !pGroup ) { prealMsg["ret"] = 1 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break ; } prealMsg["ret"] = 0 ; prealMsg["curCnt"] = pGroup->getMemberCnt() ; prealMsg["capacity"] = pGroup->getCapacity(); prealMsg["level"] = pGroup->nLevel ; prealMsg["deadTime"] = pGroup->m_tLevelRunOutTime ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; } break; case MSG_CLUB_DELETE_MEMBER: { uint32_t nGroupID = prealMsg["groupID"].asUInt(); uint32_t nAccountUID = prealMsg["userAccount"].asUInt() ; auto pClub = getGroupByID(nGroupID) ; prealMsg["ret"] = 0 ; if ( pClub == nullptr ) { prealMsg["ret"] = 1 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break ; } if ( pClub->isHaveMember(nAccountUID) == false ) { prealMsg["ret"] = 2 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break; } auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; if ( !pPlayer || ( pPlayer->GetUserUID() != nAccountUID && pPlayer->GetUserUID() != pClub->getOwnerUID() )) { prealMsg["ret"] = 3 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break; } // do add member /*Json::Value cValue ;*/ // cValue["email"] = "*****@*****.**" ; // cValue["devpwd"] = "bill007" ; //#ifndef ONLINE_APP_KEY // cValue["appkey"] = "e87f31bb-e86c-4d87-a3f3-57b3da76b3d6"; //#else // cValue["appkey"] = "abffee4b-deea-4e96-ac8d-b9d58f246c3f" ; //#endif // DEBUG //cValue["appkey"] = "abffee4b-deea-4e96-ac8d-b9d58f246c3f" ; //cValue["group_id"] = std::to_string(nGroupID); //cValue["user_account"] = std::to_string(nAccountUID); //Json::StyledWriter sWrite ; //std::string str = sWrite.write(cValue); auto pQinJia = CGameServerApp::SharedGameServerApp()->getQinjiaModule(); Json::Value cValue ; cValue["group_id"] = std::to_string(nGroupID); cValue["user_account"] = std::to_string(nAccountUID); Json::Value jUserData ; jUserData["clubID"] = nGroupID ; jUserData["delUID"] = nAccountUID ; jUserData["actSID"] = nSessionID; pQinJia->sendQinJiaRequest("DelGroupMember",cValue,[this](Json::Value& jsResult, Json::Value& jsUserData){ auto nClubID = jsUserData["clubID"].asUInt(); uint32_t nUID = jsUserData["delUID"].asUInt() ; auto nSessionID = jsUserData["actSID"].asUInt(); Json::Value jsmsgBack ; jsmsgBack["groupID"] = nClubID ; jsmsgBack["userAccount"] = nUID ; jsmsgBack["ret"] = 0 ; auto nActUID = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID)->GetUserUID() ; if ( jsResult.isNull() ) { LOGFMTE("del member club gotype request result is null , uid = %u ,clubID = %u", nUID,nClubID) ; return ; } if ( jsResult["errcode"].asUInt() != 200 ) { LOGFMTE("del member club gotype request failed error code = %u,uid = %u ,clubID = %u", jsResult["errcode"].asUInt(), nUID,nClubID) ; return ; } auto pClub = getGroupByID(nClubID); pClub->removeMember(nUID); if ( nActUID != nUID ) { CPlayerMailComponent::PostDlgNotice(eNotice_BeRemoveFromClub,jsUserData,nUID ) ; } LOGFMTD("del club = %u member ok uid = %u ",nClubID,nUID) ; m_isSortDirty = true ; getSvrApp()->sendMsg(nSessionID,jsmsgBack,MSG_CLUB_DELETE_MEMBER) ; },jUserData) ; //if ( nMsgType == MSG_CLUB_ADD_MEMBER ) //{ // //if ( pClub->isGroupFull() ) // //{ // // prealMsg["ret"] = 3 ; // // getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; // // LOGFMTD("group is full") ; // // break ; // //} // //if ( pClub->isHaveMember(nAccountUID) ) // //{ // // prealMsg["ret"] = 4 ; // // getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; // // LOGFMTD("already in group ") ; // // break ; // //} // //stClubMemberChangeReqArg* pArg = new stClubMemberChangeReqArg ; // //pArg->nMsgType = nMsgType ; // //pArg->nTargetUID = nAccountUID; // //pArg->pOwenClub = pClub ; // //m_pGoTyeAPI.performRequest("AddGroupMember",str.c_str(),str.size(),pArg,eReq_AddMember ); // //LOGFMTD("add member accountUid = %u",nAccountUID) ; //} //else //{ // stClubMemberChangeReqArg* pArg = new stClubMemberChangeReqArg ; // pArg->nMsgType = nMsgType ; // pArg->nTargetUID = nAccountUID; // pArg->pOwenClub = pClub ; // m_pGoTyeAPI.performRequest("DelGroupMember",str.c_str(),str.size(),pArg,eReq_DeleteMember ); // LOGFMTD("delete member accountUid = %u",nAccountUID) ; //} } break ; case MSG_REQ_LEVEL_UP_CLUB: { static uint32_t vLevelPriceDiamon[] = { 15,30,3000,4500,7200 } ; uint32_t nclubID = prealMsg["clubID"].asUInt(); uint32_t nLevel = prealMsg["level"].asUInt() ; auto pClub = getGroupByID(nclubID) ; if ( !pClub ) { prealMsg["ret"] = 1 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break ; } pClub->getCapacity() ; // update the level and time; uint16_t nTargetLevel = prealMsg["level"].asUInt() ; if ( nTargetLevel == 0 || nTargetLevel < pClub->nLevel ) { prealMsg["ret"] = 4 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break ; } if ( nTargetLevel > sizeof(vLevelPriceDiamon) / sizeof(uint32_t) ) { prealMsg["ret"] = 3 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break ; } uint32_t nDiamondPrice = vLevelPriceDiamon[nTargetLevel-1] ; auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; if ( !pPlayer ) { prealMsg["ret"] = 3 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; LOGFMTE("session id = %u not online , so can not do this operate") ; break ; } if ( pPlayer->GetBaseData()->GetAllDiamoned() < nDiamondPrice ) { prealMsg["ret"] = 2 ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; break ; } pPlayer->GetBaseData()->decressMoney(nDiamondPrice,true) ; uint32_t nAddDuiringTime = 15 * 24 * 60 * 60; if ( pClub->nLevel == nTargetLevel ) { pClub->m_tLevelRunOutTime += nAddDuiringTime; } else { pClub->m_tLevelRunOutTime = (uint32_t)time(nullptr) + nAddDuiringTime ; } pClub->nLevel = nTargetLevel ; pClub->isDirty = true ; prealMsg["ret"] = 0 ; prealMsg["deadTime"] = pClub->m_tLevelRunOutTime ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; m_isSortDirty = true ; break ; } break ; case MSG_REQ_RECORMED_CLUB: { sortGroup(); Json::Value jsArray ; auto iter = m_vSortedGroups.begin(); for ( ; iter != m_vSortedGroups.end() ; ++iter ) { jsArray[jsArray.size()] = (*iter)->nGroupID; if ( jsArray.size() >= 10 ) { break; } } prealMsg["clubIDs"] = jsArray ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType) ; } break ; case MSG_REQ_CLUB_MEMBER: { uint32_t nClubID = prealMsg["clubID"].asUInt(); uint32_t nPageIdx = prealMsg["pageIdx"].asUInt() ; auto pGroup = getGroupByID(nClubID) ; Json::Value jsMembers ; prealMsg["ret"] = 0 ; do { if ( pGroup == nullptr ) { prealMsg["ret"] = 1 ; break; } uint32_t nSkipCnt = CNT_PER_PAGE * nPageIdx ; if (nSkipCnt >= pGroup->getMemberCnt() ) { break; } for ( auto& ref : pGroup->vMembers ) { if ( nSkipCnt > 0 ) { --nSkipCnt; continue; } jsMembers[jsMembers.size()] = ref ; if ( jsMembers.size() >= CNT_PER_PAGE ) { break; } } } while (0); prealMsg["members"] = jsMembers ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType); } break ; case MSG_REQ_CITY_CLUB: { sortGroup() ; uint32_t nCityCode = prealMsg["cityCode"].asUInt(); uint32_t nPageIdx = prealMsg["pageIdx"].asUInt() ; uint32_t nSkipCnt = CNT_PER_PAGE * nPageIdx ; Json::Value jsClubs ; if ( nSkipCnt >= m_vSortedGroups.size() ) { prealMsg["clubs"] = jsClubs ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType); break ; } for ( auto& pClub : m_vSortedGroups ) { if ( pClub->nCityCode != nCityCode ) { continue; } if ( nSkipCnt > 0 ) { --nSkipCnt; continue; } jsClubs[jsClubs.size()] = pClub->nGroupID ; if ( jsClubs.size() >= CNT_PER_PAGE ) { break; } } prealMsg["clubs"] = jsClubs ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType); } break; case MSG_CLUB_APPLY_TO_JOIN: { uint32_t nClubID = prealMsg["clubID"].asUInt() ; auto text = prealMsg["text"]; auto pClub = getGroupByID(nClubID); uint8_t nRet = 0 ; do { if ( pClub == nullptr ) { nRet = 1 ; break; } if ( pClub->isGroupFull() ) { nRet = 2 ; break; } auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID); if ( !pPlayer ) { nRet = 3 ; break; } if ( pClub->isHaveMember(pPlayer->GetUserUID()) ) { nRet = 4 ; break; } Json::Value jArg ; jArg["applicantUID"] = pPlayer->GetUserUID() ; jArg["clubID"] = nClubID ; jArg["text"] = text ; CPlayerMailComponent::PostDlgNotice(eNotice_RecivedApplyToJoinClub,jArg,pClub->getOwnerUID() ) ; auto ppOwner = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerByUserUID(pClub->getOwnerUID()) ; if ( !ppOwner ) { // send push notification ; CSendPushNotification::getInstance()->reset(); CSendPushNotification::getInstance()->addTarget(pClub->getOwnerUID()) ; CSendPushNotification::getInstance()->setContent(CServerStringTable::getInstance()->getStringByID(2),1) ; CSendPushNotification::getInstance()->postApns(CGameServerApp::SharedGameServerApp()->getAsynReqQueue(),false,"apply") ; } } while (false); prealMsg["ret"] = nRet ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType); } break; case MSG_CLUB_REPLY_APPLY_TO_JOIN: { uint32_t nClubID = prealMsg["clubID"].asUInt(); uint32_t nApplyerUID = prealMsg["applicantUID"].asUInt() ; uint8_t nIsAgree = prealMsg["isAgree"].asUInt(); auto text = prealMsg["text"]; uint8_t nRet = 0 ; do { // check add if ( !nIsAgree ) // do agree { Json::Value jArg ; jArg["isAgree"] = nIsAgree ; jArg["clubID"] = nClubID ; jArg["text"] = text ; CPlayerMailComponent::PostDlgNotice(eNotice_RecivedReplyForApplyForJoinClub,jArg,nApplyerUID ) ; break; } auto pGroup = getGroupByID(nClubID) ; if ( !pGroup ) { nRet = 2 ; break; } if ( pGroup->isGroupFull() ) { nRet = 1 ; break ; } auto pp = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; if ( pp == nullptr || pGroup->getOwnerUID() != pp->GetUserUID() ) { nRet = 3 ; break; } if ( pGroup->isHaveMember(nApplyerUID) ) { nRet = 4 ; break; } // do add auto pQinJia = CGameServerApp::SharedGameServerApp()->getQinjiaModule(); Json::Value cValue ; cValue["group_id"] = std::to_string(nClubID); cValue["user_account"] = std::to_string(nApplyerUID); Json::Value jUserData ; jUserData["isAgree"] = nIsAgree ; jUserData["clubID"] = nClubID ; jUserData["text"] = text ; jUserData["addUID"] = nApplyerUID ; pQinJia->sendQinJiaRequest("AddGroupMember",cValue,[this](Json::Value& jsResult, Json::Value& jsUserData){ auto nClubID = jsUserData["clubID"].asUInt(); uint32_t nUID = jsUserData["addUID"].asUInt() ; if ( jsResult.isNull() ) { LOGFMTE("add member club gotype request result is null , uid = %u ,clubID = %u", nUID,nClubID) ; return ; } if ( jsResult["errcode"].asUInt() != 200 ) { LOGFMTE("add member club gotype request failed error code = %u,uid = %u ,clubID = %u", jsResult["errcode"].asUInt(), nUID,nClubID) ; return ; } auto pClub = getGroupByID(nClubID); pClub->addMember(nUID); m_isSortDirty = true ; CPlayerMailComponent::PostDlgNotice(eNotice_RecivedReplyForApplyForJoinClub,jsUserData,nUID ) ; LOGFMTD("add club member ok uid = %u ",nUID) ; auto ppApplyer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerByUserUID(nUID) ; if ( !ppApplyer ) { // send push notification ; CSendPushNotification::getInstance()->reset(); CSendPushNotification::getInstance()->addTarget(nUID) ; CSendPushNotification::getInstance()->setContent(CServerStringTable::getInstance()->getStringByID(1),1) ; CSendPushNotification::getInstance()->postApns(CGameServerApp::SharedGameServerApp()->getAsynReqQueue(),false,"reply Apply") ; } },jUserData) ; } while (false); prealMsg["ret"] = nRet ; getSvrApp()->sendMsg(nSessionID,prealMsg,nMsgType); } break ; case MSG_CLUB_UPDATE_NAME: { auto nClubID = prealMsg["clubID"].asUInt() ; auto pName = prealMsg["newName"].asCString() ; auto pClub = getGroupByID(nClubID) ; auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; if ( !pPlayer ) { LOGFMTE("player session = %u , is null can not update club name",nSessionID) ; break ; } if ( pClub == nullptr ) { LOGFMTE("club is null how to update name player uid = %u ",pPlayer->GetUserUID() ) ; break ; } if ( pClub->getOwnerUID() != pPlayer->GetUserUID() ) { LOGFMTE("player uid = %u , is not club id = %u , owner ,so can not update club name",pPlayer->GetUserUID(),nClubID); break ; } pClub->setName(pName); LOGFMTD("club id = %u update name to new = %s", nClubID,pName); } break; case MSG_CLUB_CHAT_MESSAGE: { auto nClubID = prealMsg["clubID"].asUInt() ; auto nType = prealMsg["type"].asUInt() ; auto pPlayer = CGameServerApp::SharedGameServerApp()->GetPlayerMgr()->GetPlayerBySessionID(nSessionID) ; if ( !pPlayer ) { LOGFMTE("player session id = %u not online , why chat msg",nSessionID ) ; break; } auto pClub = getGroupByID( nClubID ); if ( !pClub ) { LOGFMTE("club is not exist how can speak id = %u",nClubID ) ; break; } if ( !pClub->isHaveMember(pPlayer->GetUserUID() ) ) { LOGFMTE("uid id = %u not in club id = %u , can not chat",pPlayer->GetUserUID(),nClubID) ; break; } const char* pContent = CServerStringTable::getInstance()->getStringByID(9) ; //if ( nType == 0 ) //{ // pContent = "Text Message"; //} //else if ( 1 == nType ) //{ // pContent = "Voice Message"; //} auto pAsync = getSvrApp()->getAsynReqQueue(); Json::Value jsTarget ; jsTarget[0u] = nClubID ; Json::Value jsapns ; jsapns["apnsType"] = 0; jsapns["targets"] = jsTarget ; std::string strContent = pClub->getName() ; strContent.append(":["); strContent += pContent ; strContent.append("]"); jsapns["content"] = strContent ; jsapns["msgID"] = "clubChat"; jsapns["msgdesc"] = std::to_string(nClubID) ; pAsync->pushAsyncRequest(ID_MSG_PORT_VERIFY,eAsync_Apns,jsapns); LOGFMTD("apns club id = %u chat msg = %s",nClubID , pContent) ; } break; default: return false ; } return true ; }
void CDoodMemberManager::onGroupLeaderChanged(QString userid, QString username, QString groupid, QString groupname) { qDebug() << Q_FUNC_INFO<<"sss"; if(groupid==mGroupid){ QList<CDoodMemberItem*> itemList = groupLeaderListMap.values(); if(itemList.size()!=0){ Member mem; mem.name=itemList[0]->name(); mem.id=itemList[0]->id(); if(mem.id==mMy_Id){ setMy_Type("1"); } mem.thumbAvatar=itemList[0]->thumbAvatar(); mem.gender=itemList[0]->gender(); mem.groupid=itemList[0]->groupid(); mem.remark=itemList[0]->remark(); mem.member_type="1"; mem.team=itemList[0]->team(); removeItem(itemList.value(0)); groupLeaderListMap.remove(mem.id); // addMember(mem); qDebug() << Q_FUNC_INFO<<"sss"; } CDoodMemberItem *item=groupAdminListMap.value(userid,NULL); if(item!=NULL){ // Member mem; // mem.name=item->name(); // mem.id=item->id(); // if(userid==mMy_Id){ // setMy_Type("3"); // } // mem.thumbAvatar=item->thumbAvatar(); // mem.gender=item->gender(); // mem.groupid=item->groupid(); // mem.remark=item->remark(); // mem.member_type="3"; // mem.team=item->team(); removeItem(item); groupAdminListMap.remove(userid); // addMember(mem); qDebug() << Q_FUNC_INFO<<"sss"; } item = memberListMap.value(userid,NULL); if(item!=NULL){ Member mem; mem.name=item->name(); mem.id=item->id(); if(userid==mMy_Id){ setMy_Type("3"); } mem.thumbAvatar=item->thumbAvatar(); mem.gender=item->gender(); mem.groupid=item->groupid(); mem.remark=item->remark(); mem.member_type="3"; mem.team=item->team(); removeItem(item); memberListMap.remove(userid); addMember(mem); qDebug() << Q_FUNC_INFO<<"sss"; } } }
void CreateCircleDialog::loadIdentities(uint32_t token) { #ifdef DEBUG_CREATE_CIRCLE_DIALOG std::cerr << "CreateCircleDialog::loadIdentities(" << token << ")"; std::cerr << std::endl; #endif QTreeWidget *tree = ui.treeWidget_IdList; tree->clear(); bool acceptAnonymous = ui.radioButton_ListAll->isChecked(); bool acceptAllPGP = ui.radioButton_ListAllPGP->isChecked(); //bool acceptKnownPGP = ui.radioButton_ListKnownPGP->isChecked(); RsGxsIdGroup data; std::vector<RsGxsIdGroup> datavector; std::vector<RsGxsIdGroup>::iterator vit; if (!rsIdentity->getGroupData(token, datavector)) { std::cerr << "CreateCircleDialog::insertIdentities() Error getting GroupData"; std::cerr << std::endl; return; } for(vit = datavector.begin(); vit != datavector.end(); ++vit) { data = (*vit); /* do filtering */ bool ok = false; if (acceptAnonymous) ok = true; else if (acceptAllPGP) ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; else if (data.mPgpKnown) ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; if (!ok) { #ifdef DEBUG_CREATE_CIRCLE_DIALOG std::cerr << "CreateCircleDialog::insertIdentities() Skipping ID: " << data.mMeta.mGroupId; std::cerr << std::endl; #endif continue; } QString keyId = QString::fromStdString(data.mMeta.mGroupId.toStdString()); QString nickname = QString::fromUtf8(data.mMeta.mGroupName.c_str()); QString idtype = tr("Anon Id"); QPixmap pixmap ; if(data.mImage.mSize == 0 || !pixmap.loadFromData(data.mImage.mData, data.mImage.mSize, "PNG")) pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ; if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) { if (data.mPgpKnown) { RsPeerDetails details; rsPeers->getGPGDetails(data.mPgpId, details); idtype = QString::fromUtf8(details.name.c_str()); } else idtype = tr("PGP Linked Id"); } QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(RSCIRCLEID_COL_NICKNAME, nickname); item->setIcon(RSCIRCLEID_COL_NICKNAME, QIcon(pixmap)); item->setText(RSCIRCLEID_COL_KEYID, keyId); item->setText(RSCIRCLEID_COL_IDTYPE, idtype); tree->addTopLevelItem(item); // External Circle. if (mIsExistingCircle) { // check if its in the circle. // We use an explicit cast // if ( mCircleGroup.mInvitedMembers.find(RsGxsId(data.mMeta.mGroupId)) != mCircleGroup.mInvitedMembers.end()) /* found it */ addMember(keyId, idtype, nickname); } } }
int main(int argc, char* argv[]) { bool add = false, create = false, destroy = false, erase = false, header = false; bool list = false, lvcreate = false, lvdestroy = false, lvlist = false, lvmodify = false, lvresize = false, lvsnap = false; bool modify = false, remove = false, spare = false, watch = false; char * setLevel = 0, * setName = 0; /* options descriptor */ static struct option longopts[] = { { "add", required_argument, 0, 'a' }, { "create", no_argument, 0, 'c' }, { "destroy", required_argument, 0, 'd' }, { "erase", no_argument, 0, 'e' }, { "header", no_argument, 0, 'h' }, { "list", no_argument, 0, 'l' }, { "modify", required_argument, 0, 'm' }, { "remove", required_argument, 0, 'r' }, { "spare", required_argument, 0, 's' }, { "watch", no_argument, 0, 'w' }, { "lvcreate", required_argument, 0, 'C' }, { "lvdestroy", required_argument, 0, 'D' }, { "lvlist", no_argument, 0, 'L' }, { "lvmodify", required_argument, 0, 'M' }, { "lvresize", required_argument, 0, 'R' }, { "lvsnap", required_argument, 0, 'S' }, { "auto-rebuild",required_argument, 0, 'A' }, { "block-size", required_argument, 0, 'B' }, { "extents", no_argument, 0, 'E' }, { "hint", required_argument, 0, 'H' }, { "level", required_argument, 0, 'V' }, { "name", required_argument, 0, 'N' }, { "quick-rebuild",required_argument, 0, 'Q' }, { "size", required_argument, 0, 'Z' }, { "timeout", required_argument, 0, 'T' }, { "verbose", no_argument, 0, 'v' }, { "help", no_argument, 0, '?' }, { 0, 0, 0, 0 } }; int ch; while ((ch = getopt_long(argc, argv, "a:cd:ehlm:r:s:wC:D:LM:R:S:A:B:EH:V:N:Q:Z:T:v?", longopts, NULL)) != -1) { switch(ch) { case 'a': add = true; setName = strdup(optarg); break; case 'c': create = true; break; case 'd': destroy = true; setName = strdup(optarg); break; case 'e': erase = true; break; case 'h': header = true; break; case 'l': list = true; break; case 'm': modify = true; setName = strdup(optarg); break; case 'r': remove = true; setName = strdup(optarg); break; case 's': spare = true; setName = strdup(optarg); break; case 'w': watch = true; break; case 'C': lvcreate = true; setName = strdup(optarg); break; case 'D': lvdestroy = true; setName = strdup(optarg); break; case 'L': lvlist = true; break; case 'M': lvmodify = true; setName = strdup(optarg); break; case 'R': lvresize = true; setName = strdup(optarg); break; case 'S': lvsnap = true; setName = strdup(optarg); break; case 'A': autoRebuild = ((optarg[0] == 'Y') || (optarg[0] == 'y')) ? AUTO_YES : AUTO_NO; break; case 'B': sscanf(optarg, "%lli", &blockSize); break; case 'E': extents = true; break; case 'H': hint = strdup(optarg); break; case 'V': setLevel = strdup(optarg); break; case 'N': nickname = strdup(optarg); break; case 'Q': quickRebuild = ((optarg[0] == 'Y') || (optarg[0] == 'y')) ? AUTO_YES : AUTO_NO; break; case 'Z': sscanf(optarg, "%lli", &volSize); break; case 'T': sscanf(optarg, "%lli", &timeout); break; case 'v': verbose = true; break; case 0: case '?': default: usage(); exit(0); } } argc -= optind; argv += optind; if (!add && !create && !destroy && !erase && !header && !list && !modify && !remove && !spare && !watch && !lvcreate && !lvdestroy && !lvlist && !lvmodify && !lvresize && !lvsnap) { usage(); exit(0); } if (list) { listRAIDSets(); exit(0); } if (lvlist) { listLogicalVolumes(NULL, argc, argv); exit(0); } if (geteuid()) { printf("ERROR: you must be super user for this operation.\n"); exit(1); } if (erase) { erasePartition(argc, argv); exit(0); }; if (header) { dumpHeader(argc, argv); exit(0); }; if (watch) { CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), NULL, // const void *observer callBack, CFSTR(kAppleRAIDNotificationSetDiscovered), NULL, // const void *object CFNotificationSuspensionBehaviorHold); CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), NULL, // const void *observer callBack, CFSTR(kAppleRAIDNotificationSetTerminated), NULL, // const void *object CFNotificationSuspensionBehaviorHold); CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), NULL, // const void *observer callBack, CFSTR(kAppleRAIDNotificationSetChanged), NULL, // const void *object CFNotificationSuspensionBehaviorHold); CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), NULL, // const void *observer callBack, CFSTR(kAppleLVMNotificationVolumeDiscovered), NULL, // const void *object CFNotificationSuspensionBehaviorHold); CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), NULL, // const void *observer callBack, CFSTR(kAppleLVMNotificationVolumeTerminated), NULL, // const void *object CFNotificationSuspensionBehaviorHold); CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), NULL, // const void *observer callBack, CFSTR(kAppleLVMNotificationVolumeChanged), NULL, // const void *object CFNotificationSuspensionBehaviorHold); // this will not fail if there is no raid controller, ie, if AppleRAID class is not instantiated in the kernel AppleRAIDEnableNotifications(); } if (add) addMember(setName, CFSTR(kAppleRAIDMembersKey), argc, argv); if (create) createSet(setLevel, nickname, argc, argv); if (destroy) destroySet(setName, argc, argv); if (modify) modifySet(setName, argc, argv); if (remove) removeMember(setName, argc, argv); if (spare) addMember(setName, CFSTR(kAppleRAIDSparesKey), argc, argv); if (lvcreate) createLogicalVolume(setName, setLevel, argc, argv); if (lvdestroy) destroyLogicalVolume(setName, argc, argv); if (lvmodify) modifyLogicalVolume(setName, argc, argv); if (lvresize) resizeLogicalVolume(setName, argc, argv); if (lvsnap) snapshotLogicalVolume(setName, setLevel, argc, argv); if (watch) { printf("watching...\n"); // Set up a signal handler so we can clean up when we're interrupted from the command line // Otherwise we stay in our run loop forever. sig_t oldHandler = signal(SIGINT, signalHandler); if (oldHandler == SIG_ERR) { printf("Could not establish new signal handler"); exit(1); } // Start the run loop. Now we'll receive notifications. // printf("Starting run loop.\n"); CFRunLoopRun(); printf("Unexpectedly back from CFRunLoopRun()!\n"); } return 0; }
MembersDialog::MembersDialog( int projectId ) : InformationDialog( NULL, Qt::Window ), m_projectId( projectId ) { ProjectEntity project = ProjectEntity::find( projectId ); QAction* action; action = new QAction( IconLoader::icon( "user-new" ), tr( "&Add Members..." ), this ); action->setShortcut( QKeySequence::New ); connect( action, SIGNAL( triggered() ), this, SLOT( addMember() ) ); setAction( "addMember", action ); action = new QAction( IconLoader::icon( "edit-access" ), tr( "&Change Access..." ), this ); connect( action, SIGNAL( triggered() ), this, SLOT( changeAccess() ) ); setAction( "changeAccess", action ); action = new QAction( IconLoader::icon( "edit-delete" ), tr( "&Remove Members" ), this ); action->setShortcut( QKeySequence::Delete ); connect( action, SIGNAL( triggered() ), this, SLOT( removeMember() ) ); setAction( "removeMember", action ); setDefaultMenuAction( "menuMember", "changeAccess" ); loadXmlUiFile( ":/resources/membersdialog.xml" ); XmlUi::Builder* builder = new XmlUi::Builder( this ); builder->addClient( this ); setWindowTitle( tr( "Manage Permissions" ) ); setPromptPixmap( IconLoader::pixmap( "edit-access", 22 ) ); setPrompt( tr( "Edit permissions of project <b>%1</b>:" ).arg( project.name() ) ); QVBoxLayout* layout = new QVBoxLayout(); QGroupBox* globalGroup = new QGroupBox( tr( "Global Access" ), this ); layout->addWidget( globalGroup ); QHBoxLayout* globalLayout = new QHBoxLayout( globalGroup ); m_globalEdit = new QLineEdit( globalGroup ); m_globalEdit->setReadOnly( true ); globalLayout->addWidget( m_globalEdit ); QPushButton* globalButton = new QPushButton( tr( "Change..." ), globalGroup ); globalButton->setIcon( IconLoader::icon( "edit-modify" ) ); globalButton->setIconSize( QSize( 16, 16 ) ); globalLayout->addWidget( globalButton ); connect( globalButton, SIGNAL( clicked() ), this, SLOT( changeGlobalAccess() ) ); layout->addSpacing( 5 ); QVBoxLayout* membersLayout = new QVBoxLayout(); membersLayout->setSpacing( 4 ); layout->addLayout( membersLayout ); XmlUi::ToolStrip* strip = new XmlUi::ToolStrip( this ); builder->registerToolStrip( "stripMembers", strip ); membersLayout->addWidget( strip ); m_list = new QTreeView( this ); membersLayout->addWidget( m_list ); TreeViewHelper helper( m_list ); helper.initializeView( TreeViewHelper::MultiSelect ); m_list->sortByColumn( 0, Qt::AscendingOrder ); m_model = new MembersModel( projectId, this ); m_list->setModel( m_model ); helper.loadColumnWidths( "MembersDialogWidths", QList<int>() << 150 << 150 ); connect( m_list->selectionModel(), SIGNAL( selectionChanged( const QItemSelection&, const QItemSelection& ) ), this, SLOT( updateActions() ) ); connect( m_list, SIGNAL( doubleClicked( const QModelIndex& ) ), this, SLOT( doubleClicked( const QModelIndex& ) ) ); connect( m_list, SIGNAL( customContextMenuRequested( const QPoint& ) ), this, SLOT( listContextMenu( const QPoint& ) ) ); connect( m_model, SIGNAL( layoutChanged() ), this, SLOT( updateActions() ) ); connect( m_model, SIGNAL( modelReset() ), this, SLOT( updateActions() ) ); setContentLayout( layout, false ); resize( 350, 450 ); dataManager->addObserver( this ); updateGlobalAccess(); updateActions(); }
cParty::cParty( P_PLAYER leader ) { leader_ = leader; addMember( leader ); }