void flushPackage(const QServicePackage& package)
    {
        QByteArray block;
        QDataStream out(&block, QIODevice::WriteOnly);
        out.setVersion(QDataStream::Qt_4_6);
        out << package;

        QByteArray sizeblock;
        QDataStream outsize(&sizeblock, QIODevice::WriteOnly);
        outsize.setVersion(QDataStream::Qt_4_6);

        quint32 size = block.length();
        outsize << size;

        int bytes = socket->write(sizeblock);
        if (bytes != sizeof(quint32)) {
            qWarning() << "Failed to write length";
            socket->close();
            return;
        }
        bytes = socket->write(block);
        if (bytes != block.length()){
            qWarning() << "Can't send package, socket error" << block.length() << bytes;
            socket->close();
            return;
        }
    }
Exemple #2
0
static int _striped_text_export(const struct lv_segment *seg, struct formatter *f)
{

	outf(f, "stripe_count = %u%s", seg->area_count,
	     (seg->area_count == 1) ? "\t# linear" : "");

	if (seg->area_count > 1)
		outsize(f, (uint64_t) seg->stripe_size,
			"stripe_size = %u", seg->stripe_size);

	return out_areas(f, seg, "stripe");
}
int main(int argc, char*argv[]){
	int ttype=1;
	int htype=4;
	int iterationnum=100;
	double threshold=0.15;
	int i;
	srand( (unsigned)time( NULL ) );
	char *infilename=new char[50];
	for(i=1;i<argc;i++){
		if(argv[i][0] != '-') break;
		if(++i>=argc)
			exit_with_help();
		switch(argv[i-1][1]){
			case 't':
				ttype=atoi(argv[i]);
				break;
			case 'g':
				strcpy(infilename,argv[i]);
				break;
			case 'a':
				threshold=atof(argv[i]);
				break;
			case 'i':
				iterationnum=atoi(argv[i]);
				break;
			case 'f':
				htype=atoi(argv[i]);
				break;
			default:
				exit_with_help();
		}

	}
	cout<<"start reading the graph into memeory"<<endl;
	Graph g(infilename);
	cout<<"end of reading graph"<<endl;

	cout<<"start to construct the condensed graph"<<endl;
	DFSAPP app;
	app.dotarjar(g);
	app.Docompressed(g);
	cout<<"end of construction"<<endl;
	cout<<"size of condensed graph:"<<endl;
	cout<<"node number: "<<app.compressedG.sizenode();
	cout<<" edge number: "<<app.compressedG.sizeedge()<<endl;

	string graphname(infilename);
	string s="Indexes\\"+graphname+".comp";
	ofstream outcomp(s.c_str());
	outcomp<<g.sizenode()<<endl;
	for(int i=0;i<g.sizenode();i++)
		outcomp<<app.comp[i]<<endl;
	indexing singleindex;
	indexframework FI;
	int indexsize;
	double indextime;
	ofstream outsize("indexsize",ios::app);
	ofstream outtime("indextime",ios::app);
	switch(ttype){
		case 1:
			FI.doindexframework(app.compressedG,infilename,threshold,iterationnum,htype);
			indexsize=FI.indexsize;
			indextime=FI.indextime;
			outsize<<graphname<<"\t"<<"framework\t";
			outtime<<graphname<<"\t"<<"framework\t";
			break;
		case 2:
			singleindex.singleindex(app.compressedG,ttype,infilename);
			indexsize=singleindex.returnindexsize();
			indextime=singleindex.returnruntime();
			outsize<<graphname<<"\t"<<"HOPI\t";
			outtime<<graphname<<"\t"<<"HOPI\t";
			break;
		case 3:
			singleindex.singleindex(app.compressedG,ttype,infilename);
			indexsize=singleindex.returnindexsize();
			indextime=singleindex.returnruntime();
			outsize<<graphname<<"\t"<<"Interval\t";
			outtime<<graphname<<"\t"<<"Interval\t";
			break;
		default:
			exit_with_help();
	}
	outtime<<"construct time(ms)\t"<<indextime<<endl;
	outsize<<"index size(#ofintegers)"<<"\t"<<indexsize<<endl;
}
Exemple #4
0
void BlockBase::update(float dt) {
    
    // update velocity
    if(mEnableGravity) {
        float gy = GRAVITY_VAL;
        mVelocity.y += dt * gy;
        mVelocity.y = MIN(mVelocity.y, 1000);
        mVelocity.x = MIN(mVelocity.x, 600);
    }
    
    if(!mRotator.empty()) {
        auto rot = mRestoreRotation;
        auto size = mRestoreSize;
        float newRot = rot;
        Vec2 outsize(1,1);
        mRotator.update(dt, newRot, outsize);
        mSprite->setRotation(newRot);
    }
    
    if(!mPath.empty()) {
        auto pos = mRestorePosition;//mSprite->getPosition();
        auto newPos = pos;
        auto size = mRestoreSize;
        
        Vec2 outsize(1,1);
        mPath.update(dt, newPos, outsize);
        
        //mSprite->setPosition(newPos);
        mSprite->setScale(outsize.x * mRestoreSize.width / mImageSize,
                          outsize.y * mRestoreSize.height / mImageSize);
        
        auto newSize = getSize();
        
        mMovementToRestore += newPos - pos;
        mUpSideMovement    = (newPos + Vec2(0, newSize.height/2)) - (pos + Vec2(0, size.height/2));
        mDownSideMovement  = (newPos + Vec2(0,-newSize.height/2)) - (pos + Vec2(0,-size.height/2));
        mRightSideMovement = (newPos + Vec2( newSize.width/2, 0)) - (pos + Vec2( size.width/2, 0));
        mLeftSideMovement  = (newPos + Vec2(-newSize.width/2, 0)) - (pos + Vec2(-size.width/2, 0));
        
        auto it = GameLogic::Game->mGroups.find(this);
        if(it != GameLogic::Game->mGroups.end()) {
            for(auto& c : it->second) {

                switch(mFollowMode) {
                    case F_CENTER:
                        c->mMovementToRestore += mMovementToRestore;
                        break;
                    case F_LEFT:
                        c->mMovementToRestore += mLeftSideMovement;
                        break;
                    case F_RIGHT:
                        c->mMovementToRestore += mRightSideMovement;
                        break;
                    case F_DOWN:
                        c->mMovementToRestore += mDownSideMovement;
                        break;
                    case F_UP:
                        c->mMovementToRestore += mUpSideMovement;
                        break;
                }
                
                //c->getSprite()->setPosition(p);
            }
        }        
    }
    
    if(mButton) {
        mButton->update(dt);
    } else {
        updateOpenClose(dt);
    }
    
    if(mRotationSpeed > 0) {
        auto r = mSprite->getRotation();
        r += mRotationSpeed * dt;
        if(r > 360) r-=360;
        mSprite->setRotation(r);
    }

    /**
    * event continue time
    */
    if (mTriggerEventsCalled){
        mTriggerEventContinueTime += dt;
        mTriggerEventsCalled = false;
    }
    else{
        mTriggerEventContinueTime = 0.0f;
        if (mHeroOpacityChanged){
            GameLogic::Game->mHero->getSprite()->setOpacity(255);
            mHeroOpacityChanged = false;
        }
    }

#if EDITOR_MODE
    if(mIDLabel) {
        if(mShowIDLabel) {
            mIDLabel->setVisible(true);
            mIDLabel->setPosition(mSprite->getPosition() -
                                  Vec2(mIDLabel->getBoundingBox().size.width/2,
                                       mIDLabel->getBoundingBox().size.height/2));
        } else {
            mIDLabel->setVisible(false);
        }
    }
#endif
}