/** * returns number of milliseconds elapsed since midnight(00:00:00), January 1, 1970, * * @return milliseconds elapsed since midnight (00:00:00), January 1, 1970 */ javacall_int64 /*OPTIONAL*/ javacall_time_get_milliseconds_since_1970(void){ static javacall_int64 delta=0; if (delta==0) { delta=javacall_time_get_seconds_since_1970(); delta=delta*1000-javacall_time_get_clock_milliseconds(); } return delta+javacall_time_get_clock_milliseconds(); }
void javautil_vprintf(int severity, int channelID, int isolateID, char *msg, va_list vl) { char *str = 0; char tempBuffer[CONVERSION_BUFFER_SIZE]; union Printable_t { int i; int x; char c; char *s; } Printable; char* separator = " - "; javacall_time_milliseconds ms; ms = javacall_time_get_clock_milliseconds(); /* msg is the last argument specified; all others must be accessed using the variable- argument macros. */ str = convertInt2String(ms,tempBuffer); javacall_print(str); javacall_print(separator); str = get_channel_name(channelID); javacall_print(str); javacall_print(separator); str = get_severity_name(severity); javacall_print(str); javacall_print(separator); str = convertInt2String(isolateID,tempBuffer); javacall_print(str); javacall_print(separator); if(msg == NULL) { javacall_print("NULL\n"); return; } while(*msg) { if((*msg == '%') && (*(msg+1) == '%')) { msg++; javautil_putchar(*msg); msg++; } else if(*msg != '%') { javautil_putchar(*msg); msg++; } else { msg++; switch(*msg) { /* Type to expect.*/ /*Need to revisit: %ld and %lld ?*/ case 'u': case 'i': case 'd': /* integer */ Printable.i = va_arg( vl, int ); str = convertInt2String(Printable.i,tempBuffer); javacall_print(str); break; case 'x': /* hexadecimal */ Printable.x = va_arg( vl, int ); str = convertHexa2String(Printable.x,tempBuffer); javacall_print(str); break; case 'c': /* character */ Printable.c = (char)va_arg( vl, int ); javautil_putchar(Printable.c); break; case 's': /* string */ Printable.s = va_arg( vl, char * ); javacall_print(Printable.s); break; default: javacall_print("\nUnsupported type. Cant print %"); javautil_putchar(*msg); javacall_print(".\n"); break; }/*end of switch*/ msg++; }/*end of else*/ }/*end of while*/ javacall_print("\n"); }/* end of javautil_printf */