Example #1
0
void GxsGroupDialog::initMode()
{
	setAllReadonly();
	switch (mode())
	{
		case MODE_CREATE:
		{
            ui.stackedWidget->setCurrentIndex(0);
			ui.buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
			newGroup();
		}
		break;

		case MODE_SHOW:
		{
			ui.stackedWidget->setCurrentIndex(1);
			mReadonlyFlags = 0xffffffff; // Force all to readonly.
			ui.buttonBox->setStandardButtons(QDialogButtonBox::Close);
			requestGroup(mGrpMeta.mGroupId);
		}
		break;

		case MODE_EDIT:
		{
            ui.stackedWidget->setCurrentIndex(0);
			ui.buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
			ui.buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Submit Group Changes"));
			requestGroup(mGrpMeta.mGroupId);
		}
		break;
	}
}
Example #2
0
PostedGroupItem::PostedGroupItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, bool isHome, bool autoUpdate) :
    GxsGroupFeedItem(feedHolder, feedId, groupId, isHome, rsPosted, autoUpdate)
{
	setup();

	requestGroup();
}
Example #3
0
PostedItem::PostedItem(FeedHolder *feedHolder, uint32_t feedId, const RsPostedPost &post, bool isHome, bool autoUpdate) :
    GxsFeedItem(feedHolder, feedId, post.mMeta.mGroupId, post.mMeta.mMsgId, isHome, rsPosted, autoUpdate)
{
	setup();

	requestGroup();
	setPost(post);
}
Example #4
0
GxsChannelPostItem::GxsChannelPostItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsGroupId &groupId, const RsGxsMessageId &messageId, bool isHome, bool autoUpdate) :
    GxsFeedItem(feedHolder, feedId, groupId, messageId, isHome, rsGxsChannels, autoUpdate)
{
	setup();

	requestGroup();
	requestMessage();
}
Example #5
0
void CEconomy::addUnitOnFinished(CUnit &unit) {
	LOG_II("CEconomy::addUnitOnFinished " << unit)

	unitCategory c = unit.type->cats;

	if ((c&BUILDER).any() || ((c&ASSISTER).any() && (c&MOBILE).any())) {
		CGroup *group = requestGroup();
		group->addUnit(unit);
	}
}
Example #6
0
bool CMilitary::addUnit(CUnit& unit) {
	LOG_II("CMilitary::addUnit " << unit)
	
	assert(unit.group == NULL);

	unitCategory c = unit.type->cats;

	if ((c&ATTACKER).any() && (c&MOBILE).any() && (c&DEFENSE).none()) {
		unitCategory wishedCats = ai->unittable->unitsUnderConstruction[unit.key];
		CGroup* group;
		
		if ((c&SCOUTER).any() && wishedCats.any() && (wishedCats&SCOUTER).none())
			c &= ~SCOUTER; // scout was not requested

		if ((c&SCOUTER).any()) {
			group = requestGroup(SCOUT);
		}
		else if((c&AIR).any() && (c&ARTILLERY).any()) {
			group = requestGroup(BOMBER);
		}
		else if((c&AIR).any() && (c&ASSAULT).none()) {
			group = requestGroup(AIRFIGHTER);
		}
		else {
			/* If there is a new factory, or the current group is busy, request
			   a new group */
			std::map<int,CGroup*>::iterator i = assemblingGroups.find(unit.builtBy);
			if (i == assemblingGroups.end()	|| i->second->busy || !i->second->canAdd(&unit)) {
				group = requestGroup(ENGAGE);
				assemblingGroups[unit.builtBy] = group;
			} else {
				group = i->second;
			}
		}
		group->addUnit(unit);

		return true;
	}

	return false;
}
Example #7
0
GxsChannelPostItem::GxsChannelPostItem(FeedHolder *feedHolder, uint32_t feedId, const RsGxsChannelPost &post, bool isHome, bool autoUpdate) :
    GxsFeedItem(feedHolder, feedId, post.mMeta.mGroupId, post.mMeta.mMsgId, isHome, rsGxsChannels, autoUpdate)
{
#ifdef DEBUG_ITEM
	std::cerr << "GxsChannelPostItem::GxsChannelPostItem() Direct Load";
	std::cerr << std::endl;
#endif

	setup();

	requestGroup();
	setPost(post);
}
Example #8
0
void CEconomy::addUnitOnCreated(CUnit& unit) {
	unitCategory c = unit.type->cats;
	if ((c&MEXTRACTOR).any()) {
		CGroup *group = requestGroup();
		group->addUnit(unit);
		takenMexes[group->key] = group->pos();
		CUnit *builder = ai->unittable->getUnit(group->firstUnit()->builtBy);
		if (builder) {
			assert(group->key != builder->group->key);
			takenMexes.erase(builder->group->key);
		}
	}
	else if(unit.type->def->needGeo) {
		CGroup *group = requestGroup();
		group->addUnit(unit);
		takenGeo[group->key] = group->pos();	
		CUnit *builder = ai->unittable->getUnit(group->firstUnit()->builtBy);
		if (builder) {
			assert(group->key != builder->group->key);
			takenGeo.erase(builder->group->key);
		}
	}
}
int FTControlChannelManager::addReplica(UUIDPtr& uuid, UUIDPtr& fid, OverlayPeerInfoPtr& pi) {
    /*RequestGroup<FTControlClientHandler, FTControlClientHandler::RequestPtr*> requestGroup(0);
    ACE_Hash_Map_Manager<UUIDPtr, ChannelTypePtr, ACE_SYNCH_RW_MUTEX>::iterator iter = m_map.begin();
    while (iter != m_map.end()) {
        printf("FTControlChannelManager::addReplica inside loop - %s  %s\n",iter->item()->getPID()->toString().c_str(),uuid->toString().c_str());
        if (!iter->item()->getPID()->isEqual(uuid)) {
            printf("FTControlChannelManager::addReplica %s  %s\n",iter->item()->getPID()->toString().c_str(),uuid->toString().c_str());
            FTControlClientHandler* clientHandler = static_cast<FTControlClientHandler*> (iter->item().get());
            FTControlClientHandler::RequestPtr* request = clientHandler->addReplica(uuid, fid,pi);
            requestGroup.setFuture(request);
        }
        iter++;
    }
    printf("FTControlChannelManager::addReplica out loop\n");
    requestGroup.open();
    printf("FTControlChannelManager::addReplica out loop 2\n");
    list<FTControlClientHandler::RequestPtr*>* l = requestGroup.waitFuture(0);
    printf("FTControlChannelManager::addReplica out loop 3\n");
    return 0;*/
    ACE_GUARD_RETURN(RECURSIVE_MUTEX, ace_mon, m_lock, -1);
    RequestGroup<FTControlClientHandler, FTControlClientHandler::RequestPtr*> requestGroup(0);
    list<ChannelTypePtr> memberList;
    getMemberList(memberList);
    ace_mon.release();
    list<ChannelTypePtr>::iterator iter = memberList.begin();
    //ACE_Hash_Map_Manager<UUIDPtr, ChannelTypePtr, ACE_SYNCH_RW_MUTEX>::iterator iter = m_map.begin();
    while (iter != memberList.end()) {
        printf("FTControlChannelManager::addReplica inside loop - %s  %s\n", (*iter)->getPID()->toString().c_str(), uuid->toString().c_str());
        if (!(*iter)->getPID()->isEqual(uuid)) {
            printf("FTControlChannelManager::addReplica %s  %s\n", (*iter)->getPID()->toString().c_str(), uuid->toString().c_str());
            FTControlClientHandler* clientHandler = static_cast<FTControlClientHandler*> ((*iter).get());
            FTControlClientHandler::RequestPtr* request = clientHandler->addReplica(uuid, fid, pi);
            //requestGroup.setFuture(request);
            if (request != 0) {
                requestGroup.addRequest(request);
            }
        }
        iter++;
    }
    printf("FTControlChannelManager::addReplica out loop\n");
    requestGroup.open();
    printf("FTControlChannelManager::addReplica out loop 2\n");
    list<FTControlClientHandler::RequestPtr*>* l = requestGroup.waitFuture(0);
    printf("FTControlChannelManager::addReplica out loop 3\n");
    requestGroup.close();
    return 0;
}
int ActuatorServiceChannelManager::sendAction(ActionPacket* ap) {
    ACE_GUARD_RETURN(RECURSIVE_MUTEX, ace_mon, m_lock, -1);
    RequestGroup<ActuatorClientHandler, ActuatorClientHandler::RequestPtr*> requestGroup(0);
    list<ChannelTypePtr> memberList;
    getMemberList(memberList);
    ace_mon.release();
    //ACE_Time_Value start_1 = ACE_OS::gettimeofday();

    list<ActuatorClientHandler::RequestPtr*> lr;
    list<ChannelTypePtr>::iterator iter = memberList.begin();
    while (iter != memberList.end()) {
        //ACE_Time_Value start = ACE_OS::gettimeofday();
        /*ActuatorClientHandler* clientHandler = static_cast<ActuatorClientHandler*> ((*iter).get());
        ActuatorActionPacket* aap = new ActuatorActionPacket(0, ap->getTimestamp(), ap->getPayload()->duplicate());
        //payload is freed upon packet deletion
        ActuatorClientHandler::RequestPtr* request = clientHandler->sendRequest(aap, 0);*/

        //ACE_Time_Value start = ACE_OS::gettimeofday();
        ActuatorClientHandler* clientHandler = static_cast<ActuatorClientHandler*> ((*iter).get());
        ActuatorActionPacket* aap = new ActuatorActionPacket(0, ap->getTimestamp(), ap->getPayload()->duplicate());
        ActuatorClientHandler::RequestPtr* request = clientHandler->sendRequest(aap, 0);
        //ACE_Time_Value end = ACE_OS::gettimeofday();
        //end -= start;
        //ULongLong deltausec;
        //end.to_usec(deltausec);
        //ACE_DEBUG((LM_DEBUG,
        //        ACE_TEXT("(%t|%T)INFO: ActuatorServiceChannelManager per sendRequest lat(%Q)usec \n"),
        //        deltausec
        //        ));
        if (request != 0) {
            lr.push_back(request);
        }

        /*ACE_Time_Value end = ACE_OS::gettimeofday();
        end -= start;
        ULongLong deltausec;
        end.to_usec(deltausec);
        ACE_DEBUG((LM_DEBUG,
                ACE_TEXT("(%t|%T)INFO: ActuatorServiceChannelManager per sendRequest lat(%Q)usec \n"),
                deltausec
                ));*/
        delete aap;
        /*if (request != 0) {
            requestGroup.addRequest(request);
        } else {
            printf("failed request\n");
        }*/
        iter++;
    }
    /*ACE_Time_Value end = ACE_OS::gettimeofday();
    end -= start_1;
    ULongLong deltausec;
    end.to_usec(deltausec);
    ACE_DEBUG((LM_DEBUG,
            ACE_TEXT("(%t|%T)INFO: ActuatorServiceChannelManager total send lat(%Q)usec \n"),
            deltausec
            ));*/

    /*requestGroup.open();
    list<ActuatorClientHandler::RequestPtr*>* l = requestGroup.waitFuture(0);
    if (l != 0) {
        ListHelper<ActuatorClientHandler::RequestPtr*>::deleteList(l);
        return 0;
    }*/

    list<ActuatorClientHandler::RequestPtr*>::iterator iter2 = lr.begin();
    while (iter2 != lr.end()) {
        //ACE_Time_Value start = ACE_OS::gettimeofday();
        (*(*iter2))->waitFuture(0);
        //ACE_Time_Value end = ACE_OS::gettimeofday();
        //end -= start;
        //ULongLong deltausec;
        //end.to_usec(deltausec);
        //ACE_DEBUG((LM_DEBUG,
         //       ACE_TEXT("(%t|%T)INFO: ActuatorServiceChannelManager wait request lat(%Q)usec \n"),
         //       deltausec
         //       ));
        delete *iter2;
        iter2++;
    }



    /*else
        list<SthenoStreamPacket*> *channelResults = (*l->front())->detach();
    printf("ActionTime=")*/

    //requestGroup.close();
    return 0;

}