/** set current row **/
    void set_current_row( dom::element& table, dom::element& row, UINT keyboardStates, bool dblClick = false )
    {
      if(is_multiple(table))
      {
		     if (keyboardStates & SHIFT_KEY_PRESSED)
         {
			      checkall(table, false);
				    check_range(table,row.index(),TRUE); // from current to new
         } 
         else 
         {			
				   if (keyboardStates & CONTROL_KEY_PRESSED)
				     set_checked_row (table,row, true); // toggle
           else
             checkall(table, false);
           set_anchor(table,row.index ());
         }
      }

      // get previously selected row:
      dom::element prev = get_current_row( table );
      if( prev.is_valid() )
      {
        if( prev != row ) 
          prev.set_state(0,STATE_CURRENT, false); // drop state flags
      }
      row.set_state(STATE_CURRENT); // set state flags
      row.scroll_to_view();
      ::UpdateWindow(row.get_element_hwnd(false));
      table.post_event( dblClick? TABLE_ROW_DBL_CLICK:TABLE_ROW_CLICK, row.index(), row); 
    }
    /** set current row **/
    void set_current_row( dom::element& table, dom::element& row, UINT keyboardStates, bool dblClick = false, bool smooth = false )
    {
      // get previously selected row:
      dom::element prev = get_current_row( table );

      uint new_row_checked = STATE_CHECKED;
      uint old_row_checked = STATE_CHECKED;

      if(is_multiple(table))
      {
         if (keyboardStates & SHIFT_KEY_PRESSED)
         {
            checkall(table, false);
            check_range(table,row.index(),TRUE); // from current to new
         } 
         else 
         {      
           if (keyboardStates & CONTROL_KEY_PRESSED)
           {
             set_checked_row (table,row, true); // toggle
             new_row_checked = 0;
           }
           else
             checkall(table, false);
           set_anchor(table,row.index ());
         }
         old_row_checked = 0;
      }
      
      if( prev.is_valid() )
      {
        if( prev != row ) 
          prev.set_state(0,STATE_CURRENT | old_row_checked); // drop state flags
      }
      row.set_state(STATE_CURRENT | new_row_checked); // set state flags
      row.scroll_to_view(false,smooth);
      //::UpdateWindow(row.get_element_hwnd(false));
      table.post_event( dblClick? TABLE_ROW_DBL_CLICK:TABLE_ROW_CLICK, row.index(), row); 
      table.post_event(WY_GRID_VERTICAL_SCROLL, 0);
    }
Exemplo n.º 3
0
	CmdResult Handle(const std::vector<std::string> &parameters, User *user)
	{
		if (parameters[0] == "flood")
		{
			unsigned int count = parameters.size() > 1 ? atoi(parameters[1].c_str()) : 100;
			std::string line = parameters.size() > 2 ? parameters[2] : ":z.z NOTICE !flood :Flood text";
			for(unsigned int i=0; i < count; i++)
				user->Write(line);
		}
		else if (parameters[0] == "freeze" && IS_LOCAL(user) && parameters.size() > 1)
		{
			IS_LOCAL(user)->CommandFloodPenalty += atoi(parameters[1].c_str());
		}
		else if (parameters[0] == "check")
		{
			checkall(creator);
			ServerInstance->SNO->WriteToSnoMask('a', "Module check complete");
		}
		return CMD_SUCCESS;
	}
Exemplo n.º 4
0
Arquivo: colle2.c Projeto: D3nn4/exos
void find_colle ()
{
	char buf[BUF_SIZE + 1];
	char **tab2D;
	int ret, w, h;
	ret = read(0, buf, BUF_SIZE);
	buf[ret] = '\0';
	w = widht(buf);
	h = height(buf);
	tab2D = getTabFromBuffer(buf, w, h);
	checkall(tab2D, w, h);
	
	/*
	printf("height = %d & widht = %d\n", h, w);
	int i;
	for (i = 0; i < h; i++){
		printf("%s\n", tab2D[i]);
	}
	*/
}
    virtual BOOL on_key(HELEMENT he, HELEMENT target, UINT event_type, UINT code, UINT keyboardStates ) 
    { 
      if( event_type == KEY_DOWN )
      {
        dom::element table = he;
        switch( code )
        {
          case VK_DOWN: 
            {
               dom::element c = get_current_row( table );
               int idx = c.is_valid()? (c.index() + 1):fixed_rows(table);
               while( idx < (int)table.children_count() )
               {
                   dom::element row = table.child(idx);
                   if( wcseq(row.get_style_attribute("display"),L"none" ))
                   {
                     ++idx;
                     continue;
                   }
                   set_current_row(table, row, keyboardStates); 
                   break;
               }
            }
            return TRUE;
          case VK_UP:             
            {
               dom::element c = get_current_row( table );
               int idx = c.is_valid()? (c.index() - 1):(table.children_count() - 1);
               while( idx >= fixed_rows(table) )
               {
                   dom::element row = table.child(idx);
                   if( wcseq(row.get_style_attribute("display"),L"none" ))
                   {
                     --idx;
                     continue;
                   }
                   set_current_row(table, row, keyboardStates); 
                   break;
               }
            }
            return TRUE;
          case VK_PRIOR:
            {
               RECT trc = table.get_location(ROOT_RELATIVE | SCROLLABLE_AREA);
               int y = trc.top - (trc.bottom - trc.top);
               int first = fixed_rows(table);
               dom::element r;
               for( int i = table.children_count() - 1; i >= first; --i )
               {
                   dom::element nr = table.child(i);
                   if( wcseq(nr.get_style_attribute("display"),L"none" ))
                     continue;
                   dom::element pr = r;
                   r = nr;
                   if( r.get_location(ROOT_RELATIVE | BORDER_BOX).top < y )
                   {
                      // row found
                      if(pr.is_valid()) r = pr; // to last fully visible
                      break;
                   }
               }
               set_current_row(table, r, keyboardStates); 
            }
            return TRUE;

          case VK_NEXT:
            {
               RECT trc = table.get_location(ROOT_RELATIVE | SCROLLABLE_AREA);
               int y = trc.bottom + (trc.bottom - trc.top);
               int last = table.children_count() - 1;
               dom::element r; 
               for( int i = fixed_rows(table); i <= last; ++i )
               {
                   dom::element nr = table.child(i);
                   if( wcseq(nr.get_style_attribute("display"),L"none" ))
                     continue;
                   dom::element pr = r;
                   r = nr;
                   if( r.get_location(ROOT_RELATIVE | BORDER_BOX).bottom > y )
                   {
                      // row found
                      if(pr.is_valid()) r = pr; // to last fully visible
                      break;
                   }
               }
               set_current_row(table, r, keyboardStates); 
            }
            return TRUE;

          case VK_HOME:
            {
               int idx = fixed_rows(table);
               while( (int)idx < (int)table.children_count() )
               {
                   dom::element row = table.child(idx);
                   if( wcseq(row.get_style_attribute("display"),L"none" ))
                   {
                     ++idx;
                     continue;
                   }
                   set_current_row(table, row, keyboardStates); 
                   break;
               }
            }
            return TRUE;

          case VK_END:
            {
               int idx = table.children_count() - 1;
               while( idx >= fixed_rows(table) )
               {
                   dom::element row = table.child(idx);
                   if( wcseq(row.get_style_attribute("display"),L"none" ))
                   {
                     --idx;
                     continue;
                   }
                   set_current_row(table, row, keyboardStates); 
                   break;
               }
            }
            return TRUE;
          case 'A':
            if( is_multiple(table) && (keyboardStates & CONTROL_KEY_PRESSED) != 0 )
            {
              checkall(table, true);
              return TRUE;
            }
            return FALSE;
        }
      }
      return FALSE; 
    }
int main (int argc, char *argv[])
{
	if(argc != 1){
		printf("Usage : [exec] [ip-address]\n");
		return(1);
	}
	int pid=fork();
	if(pid<0){
		fprintf(stderr,"Error in creating Fork %d\n",errno);
		exit(-1);
	}
	if(pid==0){

		printf("Child\n");
		//client
		int sockfd; 
		int nsockfd;
		char revbuf[LENGTH]; 
		struct sockaddr_in remote_addr;
		int slen=sizeof(remote_addr);
		/* Get the Socket file descriptor */
		if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
		{
			fprintf(stderr, "ERROR: Failed to obtain Socket Descriptor! (errno = %d)\n",errno);
			exit(1);
		}

		/* Fill the socket address struct */
		remote_addr.sin_family = AF_INET; 
		remote_addr.sin_port = htons(CLIENT_PORT); 
		char ip[100]="127.0.0.1";
		inet_pton(AF_INET, ip, &remote_addr.sin_addr); 
		//inet_pton(AF_INET, "10.1.39.21", &remote_addr.sin_addr); 
		//inet_pton(AF_INET, "10.1.39.96", &remote_addr.sin_addr); 
		bzero(&(remote_addr.sin_zero), 8);
		char sdbuf[LENGTH];
		/* Try to connect the remote */
		while(connect(sockfd, (struct sockaddr *)&remote_addr, sizeof(struct sockaddr)) == -1)
		{
			//fprintf(stderr, "[Client] Waiting for server at port 50000\n");
		}
		printf("[Client] Connected to server at %s at port 5000...ok!\n",ip);
		while(1){
			char query[100];
			printf("Enter query\n");
			gets(query);	
			//scanf("%[^\n]",query);
			send(sockfd,query,strlen(query), 0); 
			//FILE *fr = fopen("response.txt", "wb");
			//if(fr == NULL)
			//	printf("File response.txt Cannot be opened file on client.\n");
			//else
			{	char revbuf[LENGTH];
				bzero(revbuf, LENGTH); 
				int fr_block_sz = 0;
				//while((fr_block_sz = recvfrom(sockfd, revbuf, LENGTH, 0,&remote_addr,&slen)) > 0) 
				while((fr_block_sz = recv(sockfd, revbuf, LENGTH, 0)) > 0) 
				{
					slen=sizeof(remote_addr);
					revbuf[fr_block_sz]=0;
					if(revbuf[0]==0)
						break;
					printf("%s",revbuf);
					/*int write_sz = fwrite(revbuf, sizeof(char), fr_block_sz, fr);
					if(write_sz < fr_block_sz)
					{
						error("File write failed on client.\n");
					}*/
					bzero(revbuf, LENGTH);
					if (fr_block_sz == 0 || fr_block_sz != 512) 
					{
						break;
					}
				}
				if(fr_block_sz < 0)
				{
					if (errno == EAGAIN)
					{
						printf("recv() timed out.\n");
					}
					else
					{
						fprintf(stderr, "recv() failed due to errno = %d\n", errno);
						//perror("Aman");
						exit(1);
					}
				}
				printf("Ok received from server!\n");

			}
			//fclose(fr); 
		}
		close(sockfd);
	}
	else{
		int status;
		//int client_pid=wait(&status);
		int sockfd; 
		int nsockfd; 
		int num;
		int sin_size; 
		struct sockaddr_in addr_local; /* client addr */
		struct sockaddr_in addr_remote; /* server addr */
		char revbuf[LENGTH];
		
		printf("Parent\n");
		/* Get the Socket file descriptor */
		if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1 )
		{
			fprintf(stderr, "ERROR: Failed to obtain Socket Descriptor. (errno = %d)\n", errno);
			exit(1);
		}
		else 
			printf("[Server] Obtaining socket descriptor successfully.\n");

		/* Fill the client socket address struct */
		addr_local.sin_family = AF_INET; // Protocol Family
		addr_local.sin_port = htons(SERVER_PORT); // Port number
		addr_local.sin_addr.s_addr = INADDR_ANY; // AutoFill local address
		bzero(&(addr_local.sin_zero), 8); // Flush the rest of struct

		/* Bind a special Port */
		if( bind(sockfd, (struct sockaddr*)&addr_local, sizeof(struct sockaddr)) == -1 )
		{
			fprintf(stderr, "ERROR: Failed to bind Port. (errno = %d)\n", errno);
			exit(1);
		}
		else 
			printf("[Server] Binded tcp port 5000 in addr 127.0.0.1 sucessfully.\n");

		/* Listen remote connect/calling */
		if(listen(sockfd,BACKLOG) == -1)
		{
			fprintf(stderr, "ERROR: Failed to listen Port. (errno = %d)\n", errno);
			exit(1);
		}
		else
			printf ("[Server] Listening the port 5000 successfully.\n");

		/* Wait a connection, and obtain a new socket file despriptor for single connection */
		if ((nsockfd = accept(sockfd, (struct sockaddr *)&addr_remote, &sin_size)) == -1) 
		{
			fprintf(stderr, "ERROR: Obtaining new Socket Despcritor. (errno = %d)\n", errno);
			exit(1);
		}
		else 
			printf("[Server] Server has got connected from %s.\n", inet_ntoa(addr_remote.sin_addr));

		int success = 0;
		while(success == 0)
		{
			sin_size = sizeof(struct sockaddr_in);

			/* Wait a connection, and obtain a new socket file despriptor for single connection */
			/*if ((nsockfd = accept(sockfd, (struct sockaddr *)&addr_remote, &sin_size)) == -1) 
			{
				fprintf(stderr, "ERROR: Obtaining new Socket Despcritor. (errno = %d)\n", errno);
				exit(1);
			}
			else 
				printf("[Server] Server has got connected from %s.\n", inet_ntoa(addr_remote.sin_addr));
			*/
			char recv_data[1024];
			int bytes_recieved = recv(nsockfd,recv_data,1024,0);

			recv_data[bytes_recieved] = '\0';

			if (strcmp(recv_data , "q") == 0 || strcmp(recv_data , "Q") == 0)
			{
				close(nsockfd);
				break;
			}
			else{
			//	printf("recv:%s\n",recv_data);
				char * pch;
				char str1[500],str2[500],str3[500],str4[500];
				pch = strtok (recv_data," ");
				if(pch!=NULL){
					strcpy(str1,pch);
					printf("str1: %s\n",str1);
					pch = strtok (NULL, " ");
				}
				if(pch!=NULL){
					strcpy(str2,pch);
					printf("str1: %s\n",str2);
					pch = strtok (NULL, " ");
				}
				if(pch!=NULL){
					strcpy(str3,pch);
					printf("str1: %s\n",str3);
					pch = strtok (NULL, " ");
				}
				if(pch!=NULL){
					strcpy(str4,pch);
					printf("str1: %s\n",str4);
					pch = strtok (NULL, " ");
				}

				if(!strcmp(str1,"IndexGet")){
					if(!strcmp(str2,"ShortList")){
						/*char str4[500];
						  scanf("%s",str4);*/
						index_short(str3,str4);
					}
					if(!strcmp(str2,"LongList")){index_long(&nsockfd);}
					if(!strcmp(str2,"RegEx")){index_reg(&nsockfd,str3);}
				}
				if(!strcmp(str1,"FileHash")){
					if(!strcmp(str2,"Verify")){
						verify(&nsockfd,str3);
					}
					if(!strcmp(str2,"CheckAll")){checkall(&nsockfd);}
				}
				if(!strcmp(str1,"FileDownload")){
					download(str2);
				}
				if(!strcmp(str1,"FileUpload")){
					upload(str2);
				}
			}
			//close(nsockfd);
		}
		close(nsockfd);
		close(sockfd);
	}
return 0;
}
Exemplo n.º 7
0
SEXP C_miwa(SEXP steps, SEXP corr, SEXP upper, SEXP lower, SEXP infin) {

    SEXP answer;
    int dim,diml, i,ii, j,k,l,i5,i6,i7,i8, ncone;
    int infinlength;

/* 
infinvalue is used to take the value of infin.
*/
    
    
    double *dupper,*dlower, *dcorr, output,*f, r[MAXM][MAXM][MAXM], hv[MAXM][MAXM], d[MAXM][MAXM];
    int *infinvalue;
    struct GRID   grid;

    dim = LENGTH(upper);
    dupper = REAL(upper);
    dcorr = REAL(corr);
    diml = LENGTH(lower);
    dlower = REAL(lower);
    infinvalue = INTEGER(infin);
    infinlength = LENGTH(infin);

 
  for (i = 0; i < dim - 1; i++) {
        for(j = i + 1; j < dim; j++) {
            r[0][i][j] = dcorr[i * dim + j];
        
          /* debug checking for correlation matrix
            Rprintf("r %f\n", r[0][i][j]);
          */
        }
    }

    grid.n = INTEGER(steps)[0];
    gridcalc(&grid);

 
 PROTECT(answer = allocVector(REALSXP, 1));



/*
 branch happens here. if only one sided, then just call orthant function once

*/   
 if (checkall(infinvalue,infinlength,-1)==1 )
 {
  REAL(answer)[0]=1;
 }else if (checkall(infinvalue,infinlength,0)==1 )
 {
    for (i = 0; i < dim; i++) 
    {
        hv[0][i] = dupper[i];
    }
    REAL(answer)[0] = orthant(dim, r, hv, &ncone, &grid);
  
 
 }else if (checkall(infinvalue,infinlength,1)==1 )
 {
    for (i = 0; i < dim; i++) 
    {
        hv[0][i] = -dlower[i];
    }
    REAL(answer)[0] = orthant(dim, r, hv, &ncone, &grid);
  
 
 } else 
 {
    for (i = 0; i < dim; i++) 
    {
        hv[0][i] = dupper[i];
    }
    f=dlower;
  
  /*
                   # circle number 0
  */                   
                   output= orthant(dim, r, hv, &ncone, &grid);
  /*
                   # circle number 1
  */                
                   for (i = 0; i < dim; i++)
                   {
                     for (ii = 0; ii < dim; ii++) 
                          {
                             d[0][ii] = dupper[ii];
                           }
                     d[0][i]=f[i];
                    output=output-orthant(dim, r, d, &ncone, &grid);
                   }
  /*          
                   # circle number 2
  */           
                   for (i = 0; i < (dim-1) ; i++)
                   {
                     for (j=(i+1); j < dim; j++ )
                     {
                         for (ii = 0; ii < dim; ii++) 
                               {
                                  d[0][ii] = dupper[ii];
                               }
                    d[0][i]=f[i];
                    d[0][j]=f[j];
                    output=output + orthant(dim, r, d, &ncone, &grid);
                    }
                   }
  /* 
                   # circle number 3
  */                 
                     if (dim>2) 
                     {
                      for (i = 0; i < (dim-2) ; i++ )
                      {
                       for (j=(i+1); j < (dim-1); j++ )
                       {
                         for (k=(j+1); k < dim; k++)
                           {
                          
                           for (ii = 0; ii < dim; ii++) 
                               {
                                  d[0][ii] = dupper[ii];
                               }
                              d[0][i]=f[i];
                              d[0][j]=f[j];
                              d[0][k]=f[k];
                             output=output - orthant(dim, r, d, &ncone, &grid);
                           }
                        }   
                       }
                     }
                  
                     if (dim>3) 
                     {
                      for (i = 0; i < (dim-3) ; i++)
                      {
                        for (j=(i+1); j < (dim-2); j++ )
                       {
                         for (k=(j+1); k < (dim-1); k++)
                           {
                            for (l=(k+1); l < (dim); l++) 
                             {
                             
                            
                                 for (ii = 0; ii < dim; ii++) 
                                     {
                                        d[0][ii] = dupper[ii];
                                     }
                                    d[0][i]=f[i];
                                    d[0][j]=f[j];
                                    d[0][k]=f[k];
                                    d[0][l]=f[l];
                                 
                                  output=output+orthant(dim, r, d, &ncone, &grid);
                              }
                           }
                        }   
                       }
                     }
                  
                    if (dim>4) 
                     {
                                           
                         for (i5 = 0; i5 < (dim-4) ; i5++)
                      {        
                          for (i =(i5+1); i < (dim-3) ; i++)
                      {
                        for (j=(i+1); j < (dim-2); j++ )
                       {
                         for (k=(j+1); k < (dim-1); k++)
                           {
                            for (l=(k+1); l < (dim); l++) 
                             {
                                
                            
                                 for (ii = 0; ii < dim; ii++) 
                                     {
                                        d[0][ii] = dupper[ii];
                                     }
                                    d[0][i5]=f[i5];
                                    d[0][i]=f[i];
                                    d[0][j]=f[j];
                                    d[0][k]=f[k];
                                    d[0][l]=f[l];
                                 
                            output=output-orthant(dim, r, d, &ncone, &grid);
                             }
                           }
                        }   
                       }
                       }
                     }
                   
                    
                    if (dim>5) 
                     {
                     
                          for (i6 = 0; i6 < (dim-5) ; i6++)
                      {                 
                          for (i5 = (i6+1); i5 < (dim-4) ; i5++)
                      {        
                          for (i =(i5+1); i < (dim-3) ; i++)
                      {
                          for (j=(i+1); j < (dim-2); j++ )
                       {
                          for (k=(j+1); k < (dim-1); k++)
                           {
                            for (l=(k+1); l < (dim); l++) 
                             {
                            
                             for (ii = 0; ii < dim; ii++) 
                                     {
                                        d[0][ii] = dupper[ii];
                                     }
                                    d[0][i6]=f[i6];
                                    d[0][i5]=f[i5];
                                    d[0][i]=f[i];
                                    d[0][j]=f[j];
                                    d[0][k]=f[k];
                                    d[0][l]=f[l];
                                 
                            output=output+orthant(dim, r, d, &ncone, &grid);
                            
                            
                             }
                           }
                        }   
                       }
                       }
                     }
                     }
                     
                      
                    if (dim>6) 
                     { 
                       
                          for (i7 = 0; i7 < (dim-6) ; i7++)
                      {        
                          for (i6 = (i7+1); i6 < (dim-5) ; i6++)
                      {                 
                          for (i5 = (i6+1); i5 < (dim-4) ; i5++)
                      {        
                          for (i =(i5+1); i < (dim-3) ; i++)
                      {
                          for (j=(i+1); j < (dim-2); j++ )
                       {
                          for (k=(j+1); k < (dim-1); k++)
                           {
                            for (l=(k+1); l < (dim); l++) 
                             {
                            
                            
                             for (ii = 0; ii < dim; ii++) 
                                     {
                                        d[0][ii] = dupper[ii];
                                     }
                                    d[0][i7]=f[i7];
                                    d[0][i6]=f[i6];
                                    d[0][i5]=f[i5];
                                    d[0][i]=f[i];
                                    d[0][j]=f[j];
                                    d[0][k]=f[k];
                                    d[0][l]=f[l];
                                 
                            output=output-orthant(dim, r, d, &ncone, &grid);
                             
                             }
                           }
                        }   
                       }
                       }
                     }
                     }
                     }
                     
                     if (dim>7) 
                     { 
                                            
                          for (i8 = 0; i8 < (dim-7) ; i8++)
                      {     
                          for (i7 = (i8+1); i7 < (dim-6) ; i7++)
                      {        
                          for (i6 = (i7+1); i6 < (dim-5) ; i6++)
                      {                 
                          for (i5 = (i6+1); i5 < (dim-4) ; i5++)
                      {        
                          for (i =(i5+1); i < (dim-3) ; i++)
                      {
                          for (j=(i+1); j < (dim-2); j++ )
                       {
                          for (k=(j+1); k < (dim-1); k++)
                           {
                            for (l=(k+1); l < (dim); l++) 
                             {
                                                      
                             for (ii = 0; ii < dim; ii++) 
                                     {
                                        d[0][ii] = dupper[ii];
                                     }
                                    d[0][i8]=f[i8];
                                    d[0][i7]=f[i7];
                                    d[0][i6]=f[i6];
                                    d[0][i5]=f[i5];
                                    d[0][i]=f[i];
                                    d[0][j]=f[j];
                                    d[0][k]=f[k];
                                    d[0][l]=f[l];
                                 
                            output=output+orthant(dim, r, d, &ncone, &grid);
                             
                             }
                           }
                        }   
                       }
                       }
                     }
                     }
                     }
                     }
                     
                     
                    
                  
             
              
            
  
  
     REAL(answer)[0]=output;
 }  
    UNPROTECT(1);


    return(answer);

}