/* * This file is automaticaly generated, Please dont edit this file! */ #include struct consoleManager * console; char * consoleManager_whiteSpace( consoleManager * this, int whiteSpaceCount ) { char * output = malloc( whiteSpaceCount + 1 ); for (int i = 0; i < whiteSpaceCount; ++i) { strcat( output, " " ); } output[whiteSpaceCount] = 0; return output; } void consoleManager_logObject( consoleManager * this, void * voidPointer, int classIndex, int level ) { char * whiteSpace = consoleManager_whiteSpace( this, level ); level++; char * className = getClassName( classIndex ); printf( "\n\n" ); printf( whiteSpace ); printf(" %s : {\n", className ); char * * propertyNames = getPropertiesByClassIndex( classIndex ); int propertyCount = getPropertyCountByClassIndex( classIndex ); int * propertyOffsets = getPropertyOffsetsByClassIndex( classIndex ); int * datatypeIndices = getPropertyDatatypeIndexesByClassIndex( classIndex ); char * pointer = voidPointer; for (int propertyIndex = 0; propertyIndex < propertyCount; ++propertyIndex) { char * propertyName = propertyNames[propertyIndex]; printf( whiteSpace ); printf(" %-20s : ", propertyName); int propertyDatatypeIndex = getPropertyDatatypeIndex( datatypeIndices, propertyIndex ); int propertyOffset = getPropertyOffsetByPropertyIndex( propertyOffsets, propertyIndex ); if( propertyDatatypeIndex == -5 ) { int value = *( int * )(pointer + propertyOffset); printf( whiteSpace ); printf("%-20i ", value ); } else if( propertyDatatypeIndex == -3 ) { uintptr_t * value = ( uintptr_t * ) ( pointer + propertyOffset ); printf( whiteSpace ); printf( "%-20s", ( char * ) * value ); } else if( propertyDatatypeIndex > 0 ) { char * memberClassName = getClassName( propertyDatatypeIndex ); if( strcmp( memberClassName, "array" ) == 0 ) { struct array * memberArray = *(struct array ** )(pointer + propertyOffset) ; if( memberArray == NULL ) { printf(" this has to be fixed, array is not created.\n"); continue; } int numberRows = array_length( memberArray ); int * arrayPointer = ( int * ) memberArray->items; for (int k = 0; k < numberRows; ++k) { void * pointer = array_get( memberArray, k ); short * row = (short*)(pointer); consoleManager_logObject( this, pointer, (int) *row, level ); } } } printf("\n"); } printf( whiteSpace ); printf( " }\n" ); } void consoleManager_log( consoleManager * this, int count, int datatypes[], ... ) { int level = 0; va_list args; va_start( args, count ); for (int i = 0; i < count; ++i) { int datatype = datatypes[i]; if( datatype == -2 ) { char * message = va_arg( args, char * ); printf("%s", message); } if( datatype == -1 ) { int message = va_arg( args, int ); printf("%i", message); } if( datatype > 0 ) { void * voidPointer = va_arg( args, void * ); consoleManager_logObject( this, voidPointer, datatype, level++ ); } printf(" "); } printf("\n"); va_end( args); } void consoleManager_error( consoleManager * this, char * message ) { #define ANSI_COLOR_RED "\x1b[31m" #define ANSI_COLOR_GREEN "\x1b[32m" #define ANSI_COLOR_DIM_YELLOW "\x1b[33m" #define ANSI_COLOR_BLUE "\x1b[34m" #define ANSI_COLOR_MAGENTA "\x1b[35m" #define ANSI_COLOR_CYAN "\x1b[36m" #define ANSI_COLOR_RESET "\x1b[0m" #define ANSI_COLOR_BRIGHT_YELLOW "\x1b[93m" printf( ANSI_COLOR_RED ); printf( "\n\n Error: " ); printf( "%s\n\n", message ); printf( ANSI_COLOR_RESET ); exit( 0 ); } void consoleManager_createHorisontalLine( consoleManager * this ) { struct winsize w; ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); for (int i = 0; i < w.ws_col; ++i) { printf("-"); }; printf("\n"); } consoleManager consoleManager_new() { consoleManager instance; instance.__classIndex = 12; return instance; } consoleManager * consoleManager_newPointer() { struct consoleManager * pointer = malloc( sizeof ( struct consoleManager ) ); pointer->__classIndex = 12; return pointer; }