Ejemplo n.º 1
0
void buffered_string_benchmark(void){

	//basic test to see if BufStringAdd is working at all, should print out <123456abcdefg>
	BufString *a = BufStringNewSize(10/*initial size*/);
	BufStringAdd(a, "123456");
	BufStringAdd(a, "abcdefg");
	DEBUG("Test <%s>\n", a->bs_Buffer);


	for (unsigned int i = 0; i < 25; i++){

		struct timeval start_time, end_time;
		gettimeofday(&start_time, NULL);

		BufString *b = BufStringNewSize(10/*initial size*/);

		for (unsigned int j = 0; j < 100000000; j++){
			BufStringAdd(b, "123456790");
		}
//		DEBUG("Total buffer size %d", b->bs_Size);

		gettimeofday(&end_time, NULL);

		struct timeval duration;
		timeval_subtract(&duration, &end_time, &start_time);

		DEBUG("Iteration %d execution time %ld.%04lds\n", i, duration.tv_sec, duration.tv_usec/1000);

		BufStringDelete(b);

	}
	exit(1);
}
Ejemplo n.º 2
0
void AppSessionThread( void *args )
{
	struct FThread *ft = (FThread *)args;
	AppSession *as =  (AppSession  *)ft->t_Data;
	
	struct timeval timeout;
	fd_set fds;
	
	while( ft->t_Quit != TRUE )
	{
		FD_ZERO( &fds );
		FD_SET( as->as_WritePipe, &fds );
						
		timeout.tv_sec = 5000;
		timeout.tv_usec = 0;
						
		int err = select( as->as_WritePipe+1, &fds, NULL, NULL, &timeout );
		
		if( err  < 0 )
		{
			FERROR("Problem\n");
		}
		else if(  err  ==  0  )
		{
			DEBUG("Timeout\n");
		}
		else
		{
#define BUFFER_SIZE 2048
			char buffer[ BUFFER_SIZE ];
			BufString *bs  =  BufStringNew();

			int  size = -1;
			
			while(  size != 0 )//!feof( (FILE *) as->as_WritePipe ) )
			{
				// Make a new buffer and read
				size = read( as->as_WritePipe, buffer, BUFFER_SIZE );
				//int  size = fread( buffer, sizeof(char), BUFFER_SIZE, (FILE *)as->as_WritePipe );
				BufStringAddSize( bs, buffer, size );
			}
			
			BufStringDelete( bs );
		}
	}
	
	ft->t_Launched = FALSE;
}
Ejemplo n.º 3
0
Image *ImageRead( struct ImageLibrary *im, File *rootDev, const char *path )
{
	Image *img = NULL;
	FHandler *fh = rootDev->f_FSys;
	File *rfp = (File *)fh->FileOpen( rootDev, path, "rb" );
	if( rfp != NULL )
	{
		BufString *bs = BufStringNew( );
		char buffer[ 20048 ];
		int len = 0;

		while( ( len = fh->FileRead( rfp, buffer, 20048 ) ) > 0 )
		{
			BufStringAddSize( bs, buffer, len );
		}
		
		ExceptionInfo *ei=AcquireExceptionInfo();
        ImageInfo *ii=CloneImageInfo((ImageInfo *) NULL);
								
		img = BlobToImage( ii, bs->bs_Buffer, bs->bs_Size, ei );
		
		if( img == NULL )
		{
			ERROR("Cannot convert file data to image\n");
		}
		
		DestroyExceptionInfo( ei );
		DestroyImageInfo( ii );
		
		BufStringDelete( bs );
		
		fh->FileClose( rootDev, rfp );
	}
	else
	{
		ERROR("Cannot open file: %s to read\n", path );
	}
}
Ejemplo n.º 4
0
BufString *GetJSONFromStructure( ULONG *descr, void *data )
{
	BufString *bs = BufStringNew();
	if( bs == NULL )
	{
		ERROR("ERROR: bufstring is null\n");
		return NULL;
	}
	
	DEBUG("[GetJSONFromStructure] \n");
	
	if( descr == NULL || data == NULL )
	{
		BufStringDelete( bs );
		ERROR("Data structure or description was not provided!\n");
		return 0;
	}
	
	if( descr[ 0 ] != SQLT_TABNAME )
	{
		BufStringDelete( bs );
		ERROR("SQLT_TABNAME was not provided!\n");
		return 0;
	}
	
	DEBUG("JSONParse\n");

	ULONG *dptr = &descr[ SQL_DATA_STRUCT_START ];		// first 2 entries inform about table, rest information provided is about columns
	unsigned char *strptr = (unsigned char *)data;	// pointer to structure to which will will insert data
	int opt = 0;
	
	BufStringAdd( bs, "{" );
	
	while( dptr[0] != SQLT_END )
	{
		//DEBUG("Found on pos %d tag %d   row %s\n", i, dptr[ 0 ], row[ i ] ); 

		switch( dptr[ 0 ] )
		{
			case SQLT_IDINT:	// primary key
			case SQLT_INT:
				{
					char tmp[ 256 ];
					int tmpint;
					memcpy( &tmpint, strptr + dptr[2], sizeof( int ) );
					
					if( opt == 0 )
					{
						sprintf( tmp, "\"%s\": %d ", (char *)dptr[ 1 ], tmpint );
						BufStringAdd( bs, tmp );
					}
					else
					{
						sprintf( tmp, ", \"%s\": %d ", (char *)dptr[ 1 ], tmpint );
						BufStringAdd( bs, tmp );
					}
					
					opt++;
				}
				break;
				
			case SQLT_STR:
				{
					char tmp[ 512 ];
					char *tmpchar;
					memcpy( &tmpchar, strptr+dptr[2], sizeof( char *) );
					
					if( tmpchar != NULL )
					{
						if( opt == 0 )
						{
							sprintf( tmp, "\"%s\": \"%s\" ", (char *)dptr[ 1 ], tmpchar );
							BufStringAdd( bs, tmp );
						}
						else
						{
							sprintf( tmp, ", \"%s\": \"%s\" ", (char *)dptr[ 1 ], tmpchar );
							BufStringAdd( bs, tmp );
						}
					}
					
					opt++;
				}
				break;
				
			case SQLT_TIMESTAMP:
				{
					// '2015-08-10 16:28:31'
					char date[ 512 ];

					struct tm *tp = (struct tm *)( strptr+dptr[2]);
					if( opt == 0 )
					{
						sprintf( date, "\"%s\": \"%4d-%2d-%2d %2d:%2d:%2d\" ", (char *)dptr[ 1 ], tp->tm_year, tp->tm_mon, tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec );
						BufStringAdd( bs, date );
					}
					else
					{
						sprintf( date, ", \"%s\": \"%4d-%2d-%2d %2d:%2d:%2d\" ", (char *)dptr[ 1 ], tp->tm_year, tp->tm_mon, tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec );
						BufStringAdd( bs, date );
					}
					
					opt++;
				}
			break;
		}
		
		dptr += 3;
	}
	
	BufStringAdd( bs, "}" );
	//DEBUG("Object to JSON parse end %s\n", bs->bs_Buffer );
	
	return bs;
}
Ejemplo n.º 5
0
gdImagePtr ImageRead( struct ImageLibrary *im, File *rootDev, const char *path )
{
	gdImagePtr img = NULL;
	FHandler *fh = rootDev->f_FSys;
	File *rfp = (File *)fh->FileOpen( rootDev, path, "rb" );
	if( rfp != NULL )
	{
		BufString *bs = BufStringNew( );
		char buffer[ 20048 ];
		int len = 0;

		while( ( len = fh->FileRead( rfp, buffer, 20048 ) ) > 0 )
		{
			BufStringAddSize( bs, buffer, len );
		}
		
		img = gdImageCreateFromJpegPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
		if( img == NULL )
		{
			if( img == NULL )
			{
				img = gdImageCreateFromBmpPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
				if( img == NULL )
				{
					img = gdImageCreateFromGifPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
					if( img == NULL )
					{
						img = gdImageCreateFromPngPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
						if( img == NULL )
						{
							img = gdImageCreateFromTgaPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
							if( img == NULL )
							{
								img = gdImageCreateFromTiffPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
								if( img == NULL )
								{
									img = gdImageCreateFromWBMPPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
									if( img == NULL )
									{
										img = gdImageCreateFromWebpPtr( bs->bs_Size, (void *)bs->bs_Buffer ) ;
									}
								}
							}
						}
					}
				}
			}
		}
		
		if( img == NULL )
		{
			ERROR("Graphics format not recognized\n");
		}
		
		BufStringDelete( bs );
		
		fh->FileClose( rootDev, rfp );
	}
	else
	{
		ERROR("Cannot open file: %s to read\n", path );
	}
	return img;
}