示例#1
0
QVariant RequestManager::requestVideoList(QTcpSocket *caller, QVariant params)
{
    QStringList videos;
    int max_return = -1;
    if(!params.isNull())
    {
        // Get the packed max_return value
        QJsonObject max_return_obj(params.toJsonObject());
        QJsonValue max_ret_val( max_return_obj["max_return"]);
        QVariant max_ret_var(max_ret_val.toVariant());
        if(max_ret_var.type() == QVariant::Int)
            max_return = max_ret_var.toInt();
    }
    videos = VideoLocator::findVideos(mVideoDirectory);
    if(max_return != -1)
    {
        int amount_to_remove = videos.length()-max_return;
        //only return the amount passed in
        for(int i = 0; i < amount_to_remove; ++i)
        {
            videos.pop_back();
        }
    }

    QJsonObject ret_object;
    ret_object["VideoList"] = QJsonValue::fromVariant(QVariant::fromValue(videos));
    QVariant ret_var(QVariant::fromValue(ret_object));
    //qDebug() << "Sending back" << ret_var;
    return ret_var;

}
示例#2
0
/* Print A_var types. Indent d spaces. */
	static void ret_var(  A_var *v, int d) {
	 //indent(  d);
	 switch ((*v)->kind) {
	 case A_simpleVar:
	   //fprintf(  "simpleVar(%s)", S_name(v->u.simple)); 
	   break;
	 case A_fieldVar:
	   //fprintf(  "%s\n", "fieldVar(");
	   ret_var(  &(*v)->u.field.var, d+1); //fprintf(  "%s\n", ","); 
	   //indent(  d+1); //fprintf(  "%s)", S_name((*v)->u.field.sym));
	   break;
	 case A_subscriptVar:
	   //fprintf(  "%s\n", "subscriptVar(");
	   ret_var(  &(*v)->u.subscript.var, d+1); //fprintf(  "%s\n", ","); 
	   retScan_exp(  &(*v)->u.subscript.exp, d+1); //fprintf(  "%s", ")");
	   break;
	 default:
	   assert(0); 
	 } 
	}
示例#3
0
	/* Print A_var types. Indent d spaces. */
	void retScan_exp(  A_exp *v, int d) {
		//printf("Entered here retexp %d\n", (*v)->kind);
	 //indent(  d);
	 switch ((*v)->kind) {
	 case A_varExp:
	   //fprintf(  "varExp(\n");
	   //printf(  "varExp(\n");
		//printf("here 1\n");
		//printf("here 2\n");
	   //fprintf(  "%s", ")");
	   break;
	 case A_nilExp:
	   //fprintf(  "nilExp()");
	   //printf(  "nilExp()");
	   break;
	 case A_intExp:
	   //fprintf(  "intExp(%d)", (*v)->u.intt);
	   //printf(  "intExp(%d)", (*v)->u.intt);
	   break;
	 case A_stringExp:
	   //fprintf(  "stringExp(%s)", (*v)->u.stringg);
	   //printf(  "stringExp(%s)", (*v)->u.stringg);
	   break;
	 case A_callExp:
	   //fprintf(  "callExp(%s,\n", S_name((*v)->u.call.func));
	   //printf(  "callExp(%s,\n", S_name((*v)->u.call.func));
	   ret_expList(  &(*v)->u.call.args, d+1); //fprintf(  ")");
	   break;
	 case A_opExp:
	   //fprintf(  "opExp(\n");
	   //printf(  "NewopExp(\n");
	   //indent(  d+1); 
	   
	   //printf("Folded: %d",folded);
	   //pr_exp(stdout,(*v),0);printf("\n");
	   		ret_oper(  (*v)->u.op.oper); //fprintf(  ",\n"); 
			retScan_exp(  &(*v)->u.op.left, d+1); //fprintf(  ",\n"); 
			retScan_exp(  &(*v)->u.op.right, d+1); ////fprintf(  ")");
		
	   break;
	 case A_recordExp:
	   ////fprintf(  "recordExp(%s,\n", S_name((*v)->u.record.typ)); 
	   ret_efieldList(  &(*v)->u.record.fields, d+1); ////fprintf(  ")");
	   break;
	 case A_seqExp:
	   ////fprintf(  "seqExp(\n");
	   ret_expList(  &(*v)->u.seq, d+1); ////fprintf(  ")");
	   break;
	 case A_assignExp:
	   ////fprintf(  "assignExp(\n");
	   //printf(  "assignExp(\n");
	   if(((*v)->u.assign.var)->kind == A_simpleVar && ((*v)->u.assign.exp)->kind == A_intExp)
		{
		 printf("Simplevar found :%s with constant on the right : %d \n", S_name(((*v)->u.assign.var)->u.simple),((*v)->u.assign.exp)->u.intt);
		 Var_var vin=checked_malloc(sizeof(*vin));
		 vin->v = ((*v)->u.assign.var)->u.simple;
		 vin->c = ((*v)->u.assign.exp)->u.intt;
		 
		 if(Saved_CT==NULL){
			 Saved_CT=Const_tableEnter(vin,NULL);
			 printf("Entered into table!\n");
			 printf("Saved_CT:\n");
			 Const_tablePrintExt(Saved_CT);
			 }
		else{
			
			if(Const_tableCheck(vin,&Saved_CT)==1)
				{
			Saved_CT=Const_tableEnter(vin,Saved_CT);
			 printf("Entered into table!\n");
			 printf("Saved_CT:\n");
			 Const_tablePrintExt(Saved_CT);
				}
			}
		}
		else 
		{ 
			if(((*v)->u.assign.var)->kind == A_simpleVar)
			{
				Var_var vin=checked_malloc(sizeof(*vin));
				vin->v = ((*v)->u.assign.var)->u.simple;
				vin->c = NULL;
				int k=Const_tableCheck(vin,&Saved_CT);
				
			}
		
	}

	   ret_var(  &(*v)->u.assign.var, d+1); ////fprintf(  ",\n");
	   //printf("fine here11!!!");
	   retScan_exp(  &(*v)->u.assign.exp, d+1); ////fprintf(  ")");
	   break;
	 case A_ifExp:
	   ////fprintf(  "iffExp(\n");
	   retScan_exp(  &(*v)->u.iff.test, d+1); ////fprintf(  ",\n");
	   retScan_exp(  &(*v)->u.iff.then, d+1);
	   if ((*v)->u.iff.elsee) { /* else is optional */
	      ////fprintf(  ",\n");
	      retScan_exp(  &(*v)->u.iff.elsee, d+1);
	   }
	   //fprintf(  ")");
	   break;
	 case A_whileExp:
	   //fprintf(  "whileExp(\n");
	   retScan_exp(  &(*v)->u.whilee.test, d+1); //fprintf(  ",\n");
	   retScan_exp(  &(*v)->u.whilee.body, d+1); //fprintf(  ")\n");
	   break;
	 case A_forExp:
	   //fprintf(  "forExp(%s,\n", S_name((*v)->u.forr.var)); 
	   retScan_exp(  &(*v)->u.forr.lo, d+1); //fprintf(  ",\n");
	   retScan_exp(  &(*v)->u.forr.hi, d+1); //fprintf(  "%s\n", ",");
	   retScan_exp(  &(*v)->u.forr.body, d+1); //fprintf(  ",\n");
	   //indent(  d+1); //fprintf(  "%s", (*v)->u.forr.escape ? "TRUE)" : "FALSE)");
	   break;
	 case A_breakExp:
	   //fprintf(  "breakExp()");
	   break;
	 case A_letExp:
	   //fprintf(  "letExp(\n");
	   ret_decList(  &(*v)->u.let.decs, d+1); //fprintf(  ",\n");
	   retScan_exp(  &(*v)->u.let.body, d+1); //fprintf(  ")");
	   break;
	 case A_arrayExp:
	   //fprintf(  "arrayExp(%s,\n", S_name((*v)->u.array.typ));
	   retScan_exp(  &(*v)->u.array.size, d+1); //fprintf(  ",\n");
	   retScan_exp(  &(*v)->u.array.init, d+1); //fprintf(  ")");
	   break;
	 default:
	   assert(0); 
	 } 
	}
示例#4
0
		/* Print A_var types. Indent d spaces. */
		void retFold_exp(  A_exp *v, int d) {
			//printf("Entered here retexp %d\n", (*v)->kind);
		 //indent(  d);
		 switch ((*v)->kind) {
		 case A_varExp:
		   //fprintf(  "varExp(\n");
		   //printf(  "varExp(\n");
		   ret_var(  &(*v)->u.var, d+1);
		   //f//printf(  "%s", ")");
		   break;
		 case A_nilExp:
		   //fprintf(  "nilExp()");
		   //printf(  "nilExp()");
		   break;
		 case A_intExp:
		   //fprintf(  "intExp(%d)", (*v)->u.intt);
		   //printf(  "intExp(%d)", (*v)->u.intt);
		   break;
		 case A_stringExp:
		   //fprintf(  "stringExp(%s)", (*v)->u.stringg);
		   //printf(  "stringExp(%s)", (*v)->u.stringg);
		   break;
		 case A_callExp:
		   //fprintf(  "callExp(%s,\n", S_name((*v)->u.call.func));
		   //printf(  "callExp(%s,\n", S_name((*v)->u.call.func));
		   ret_expList(  &(*v)->u.call.args, d+1); //fprintf(  ")");
		   break;
		 case A_opExp:
		   //fprintf(  "opExp(\n");
		   //printf(  "opExp(\n");
		   //indent(  d+1); 
		   (*v)=ret_Refold((*v)->pos, (*v)->u.op.oper, (*v)->u.op.left, (*v)->u.op.right);
		   //printf("Folded: %d",folded);
		   //pr_exp(stdout,(*v),0);
		   if(folded==0){
				ret_oper(  (*v)->u.op.oper); //fprintf(  ",\n"); 
				retFold_exp(  &(*v)->u.op.left, d+1); //fprintf(  ",\n"); 
				retFold_exp(  &(*v)->u.op.right, d+1); ////fprintf(  ")");
			}
			else
			{
				folded=0;
			}
		   break;
		 case A_recordExp:
		   ////fprintf(  "recordExp(%s,\n", S_name((*v)->u.record.typ)); 
		   ret_efieldList(  &(*v)->u.record.fields, d+1); ////fprintf(  ")");
		   break;
		 case A_seqExp:
		   ////fprintf(  "seqExp(\n");
		   ret_expList(  &(*v)->u.seq, d+1); ////fprintf(  ")");
		   break;
		 case A_assignExp:
		   ////fprintf(  "assignExp(\n");
		   //printf(  "assignExp(\n");
		   ret_var(  &(*v)->u.assign.var, d+1); ////fprintf(  ",\n");
		   //printf("fine here11!!!");
		   retFold_exp(  &(*v)->u.assign.exp, d+1); ////fprintf(  ")");
		   break;
		 case A_ifExp:
		   ////fprintf(  "iffExp(\n");
		   retFold_exp(  &(*v)->u.iff.test, d+1); ////fprintf(  ",\n");
		   retFold_exp(  &(*v)->u.iff.then, d+1);
		   if ((*v)->u.iff.elsee) { /* else is optional */
		      ////fprintf(  ",\n");
		      retFold_exp(  &(*v)->u.iff.elsee, d+1);
		   }
		   //fprintf(  ")");
		   break;
		 case A_whileExp:
		   //fprintf(  "whileExp(\n");
		   retFold_exp(  &(*v)->u.whilee.test, d+1); //fprintf(  ",\n");
		   retFold_exp(  &(*v)->u.whilee.body, d+1); //fprintf(  ")\n");
		   break;
		 case A_forExp:
		   //fprintf(  "forExp(%s,\n", S_name((*v)->u.forr.var)); 
		   retFold_exp(  &(*v)->u.forr.lo, d+1); //fprintf(  ",\n");
		   retFold_exp(  &(*v)->u.forr.hi, d+1); //fprintf(  "%s\n", ",");
		   retFold_exp(  &(*v)->u.forr.body, d+1); //fprintf(  ",\n");
		   //indent(  d+1); //fprintf(  "%s", (*v)->u.forr.escape ? "TRUE)" : "FALSE)");
		   break;
		 case A_breakExp:
		   //fprintf(  "breakExp()");
		   break;
		 case A_letExp:
		   //fprintf(  "letExp(\n");
		   ret_decList(  &(*v)->u.let.decs, d+1); //fprintf(  ",\n");
		   retFold_exp(  &(*v)->u.let.body, d+1); //fprintf(  ")");
		   break;
		 case A_arrayExp:
		   //fprintf(  "arrayExp(%s,\n", S_name((*v)->u.array.typ));
		   retFold_exp(  &(*v)->u.array.size, d+1); //fprintf(  ",\n");
		   retFold_exp(  &(*v)->u.array.init, d+1); //fprintf(  ")");
		   break;
		 default:
		   assert(0); 
		 } 
		}
示例#5
0
		/* Print A_var types. Indent d spaces. */
		void retReplace_exp(  A_exp *v, int d) {
			//printf("Entered here retexp %d\n", (*v)->kind);
		 //indent(  d);
		 switch ((*v)->kind) {
		 case A_varExp:
		   //fprintf(  "varExp(\n");
		   //printf(  "varExp(\n");
		   
		   if(((*v)->u.var)->kind == A_simpleVar)
		   { 	
			   
			   if(ret_TableMatch((*v)->u.var))
			   { //printf("here 1\n");
			   printf("Replacing Variable %s ",S_name(((*v)->u.var)->u.simple));
			   (*v) = A_IntExp(((*v)->u.var)->pos,current_Const);
			   //printf("here 2\n");
				}
			}
			else
			{
				  ret_var(  &(*v)->u.var, d+1); 
			}
		   //f//printf(  "%s", ")");
		   break;
		 case A_nilExp:
		   //fprintf(  "nilExp()");
		   //printf(  "nilExp()");
		   break;
		 case A_intExp:
		   //fprintf(  "intExp(%d)", (*v)->u.intt);
		   //printf(  "intExp(%d)", (*v)->u.intt);
		   break;
		 case A_stringExp:
		   //fprintf(  "stringExp(%s)", (*v)->u.stringg);
		   //printf(  "stringExp(%s)", (*v)->u.stringg);
		   break;
		 case A_callExp:
		   //fprintf(  "callExp(%s,\n", S_name((*v)->u.call.func));
		   //printf(  "callExp(%s,\n", S_name((*v)->u.call.func));
		   ret_expList(  &(*v)->u.call.args, d+1); //fprintf(  ")");
		   break;
		 case A_opExp:
				ret_oper(  (*v)->u.op.oper); //fprintf(  ",\n"); 
				retReplace_exp(  &(*v)->u.op.left, d+1); //fprintf(  ",\n"); 
				retReplace_exp(  &(*v)->u.op.right, d+1); ////fprintf(  ")");
				break;
		 case A_recordExp:
		   ////fprintf(  "recordExp(%s,\n", S_name((*v)->u.record.typ)); 
		   ret_efieldList(  &(*v)->u.record.fields, d+1); ////fprintf(  ")");
		   break;
		 case A_seqExp:
		   ////fprintf(  "seqExp(\n");
		   ret_expList(  &(*v)->u.seq, d+1); ////fprintf(  ")");
		   break;
		 case A_assignExp:
		   ////fprintf(  "assignExp(\n");
		   //printf(  "assignExp(\n");
		   ret_var(  &(*v)->u.assign.var, d+1); ////fprintf(  ",\n");
		   //printf("fine here11!!!");
		   retReplace_exp(  &(*v)->u.assign.exp, d+1); ////fprintf(  ")");
		   break;
		 case A_ifExp:
		   ////fprintf(  "iffExp(\n");
		   retReplace_exp(  &(*v)->u.iff.test, d+1); ////fprintf(  ",\n");
		   retReplace_exp(  &(*v)->u.iff.then, d+1);
		   if ((*v)->u.iff.elsee) { /* else is optional */
		      ////fprintf(  ",\n");
		      retReplace_exp(  &(*v)->u.iff.elsee, d+1);
		   }
		   //fprintf(  ")");
		   break;
		 case A_whileExp:
		   //fprintf(  "whileExp(\n");
		   retReplace_exp(  &(*v)->u.whilee.test, d+1); //fprintf(  ",\n");
		   retReplace_exp(  &(*v)->u.whilee.body, d+1); //fprintf(  ")\n");
		   break;
		 case A_forExp:
		   //fprintf(  "forExp(%s,\n", S_name((*v)->u.forr.var)); 
		   retReplace_exp(  &(*v)->u.forr.lo, d+1); //fprintf(  ",\n");
		   retReplace_exp(  &(*v)->u.forr.hi, d+1); //fprintf(  "%s\n", ",");
		   retReplace_exp(  &(*v)->u.forr.body, d+1); //fprintf(  ",\n");
		   //indent(  d+1); //fprintf(  "%s", (*v)->u.forr.escape ? "TRUE)" : "FALSE)");
		   break;
		 case A_breakExp:
		   //fprintf(  "breakExp()");
		   break;
		 case A_letExp:
		   //fprintf(  "letExp(\n");
		   ret_decList(  &(*v)->u.let.decs, d+1); //fprintf(  ",\n");
		   retReplace_exp(  &(*v)->u.let.body, d+1); //fprintf(  ")");
		   break;
		 case A_arrayExp:
		   //fprintf(  "arrayExp(%s,\n", S_name((*v)->u.array.typ));
		   retReplace_exp(  &(*v)->u.array.size, d+1); //fprintf(  ",\n");
		   retReplace_exp(  &(*v)->u.array.init, d+1); //fprintf(  ")");
		   break;
		 default:
		   assert(0); 
		 } 
		}