Example #1
0
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));
}
Example #2
0
/** 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() );
    }
Example #4
0
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 ) );
}
Example #7
0
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);
}
Example #8
0
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);
}
Example #12
0
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);
}
Example #14
0
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) ;
}
Example #15
0
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));
        }
    }
}
Example #16
0
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
}
Example #17
0
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("获取成员列表失败");
    }
}
Example #18
0
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);
}
Example #20
0
ArrayVariant& ArrayVariant::operator+=(const Variant& member) {
    addMember(member);
    return *this;
}
Example #21
0
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() );
}
Example #24
0
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());
}
Example #25
0
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 ;
}
Example #26
0
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";
        }
    }
}
Example #27
0
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);
	    }
    }
}
Example #28
0
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;
}
Example #29
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();
}
Example #30
0
cParty::cParty( P_PLAYER leader )
{
	leader_ = leader;
	addMember( leader );
}