コード例 #1
0
ファイル: time.c プロジェクト: jiangxilong/yari
/**
 * 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();
}
コード例 #2
0
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 */