Changeset c66068d for lib/format_erf.c


Ignore:
Timestamp:
12/03/08 13:24:55 (13 years ago)
Author:
Perry Lorier <perry@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
f66a2dca
Parents:
7157db8
Message:

Rewrite the libtrace io subsystem to use the new wandio abstraction layer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    rf0fb38f rc66068d  
    3636#include "format_helper.h"
    3737#include "format_erf.h"
     38#include "wandio.h"
    3839
    3940#include <assert.h>
     
    7273        union {
    7374                int fd;
    74                 libtrace_io_t *file;
     75                io_t *file;
    7576        } input;
    7677
     
    7879        struct {
    7980                enum { INDEX_UNKNOWN=0, INDEX_NONE, INDEX_EXISTS } exists;
    80                 libtrace_io_t *index;
     81                io_t *index;
    8182                off_t index_len;
    8283        } seek;
     
    100101                int fd;
    101102                struct rtserver_t * rtserver;
    102                 libtrace_io_t *file;
     103                iow_t *file;
    103104        } output;
    104105};
     
    205206                current=(max_off+min_off)>>2;
    206207
    207                 libtrace_io_seek(DATA(libtrace)->seek.index,
     208                wandio_seek(DATA(libtrace)->seek.index,
    208209                                (int64_t)(current*sizeof(record)),
    209210                                SEEK_SET);
    210                 libtrace_io_read(DATA(libtrace)->seek.index,
     211                wandio_read(DATA(libtrace)->seek.index,
    211212                                &record,sizeof(record));
    212213                if (record.timestamp < erfts) {
     
    224225         */
    225226        do {
    226                 libtrace_io_seek(DATA(libtrace)->seek.index,
     227                wandio_seek(DATA(libtrace)->seek.index,
    227228                                (int64_t)(current*sizeof(record)),SEEK_SET);
    228                 libtrace_io_read(DATA(libtrace)->seek.index,
     229                wandio_read(DATA(libtrace)->seek.index,
    229230                                &record,sizeof(record));
    230231                current--;
     
    232233
    233234        /* We've found our location in the trace, now use it. */
    234         libtrace_io_seek(INPUT.file,(int64_t) record.offset,SEEK_SET);
     235        wandio_seek(INPUT.file,(int64_t) record.offset,SEEK_SET);
    235236
    236237        return 0; /* success */
     
    243244{
    244245        if (INPUT.file) {
    245                 libtrace_io_close(INPUT.file);
     246                wandio_destroy(INPUT.file);
    246247        }
    247248        INPUT.file = trace_open_file(libtrace);
     
    259260                char buffer[PATH_MAX];
    260261                snprintf(buffer,sizeof(buffer),"%s.idx",libtrace->uridata);
    261                 DATA(libtrace)->seek.index=libtrace_io_open(buffer,"rb");
     262                DATA(libtrace)->seek.index=wandio_create(buffer);
    262263                if (DATA(libtrace)->seek.index) {
    263264                        DATA(libtrace)->seek.exists=INDEX_EXISTS;
     
    290291                if (trace_get_erf_timestamp(packet)==erfts)
    291292                        break;
    292                 off=libtrace_io_tell(INPUT.file);
     293                off=wandio_tell(INPUT.file);
    293294        } while(trace_get_erf_timestamp(packet)<erfts);
    294295
    295         libtrace_io_seek(INPUT.file,off,SEEK_SET);
     296        wandio_seek(INPUT.file,off,SEEK_SET);
    296297
    297298        return 0;
     
    330331static int erf_fin_input(libtrace_t *libtrace) {
    331332        if (INPUT.file)
    332                 libtrace_io_close(INPUT.file);
     333                wandio_destroy(INPUT.file);
    333334        free(libtrace->format_data);
    334335        return 0;
     
    337338static int erf_fin_output(libtrace_out_t *libtrace) {
    338339        if (OUTPUT.file)
    339                 libtrace_io_close(OUTPUT.file);
     340                wandio_wdestroy(OUTPUT.file);
    340341        free(libtrace->format_data);
    341342        return 0;
     
    408409        flags |= TRACE_PREP_OWN_BUFFER;
    409410       
    410         if ((numbytes=libtrace_io_read(INPUT.file,
     411        if ((numbytes=wandio_read(INPUT.file,
    411412                                        packet->buffer,
    412413                                        (size_t)dag_record_size)) == -1) {
     
    436437       
    437438        /* read in the rest of the packet */
    438         if ((numbytes=libtrace_io_read(INPUT.file,
     439        if ((numbytes=wandio_read(INPUT.file,
    439440                                        buffer2,
    440441                                        (size_t)size)) != (int)size) {
     
    460461
    461462        if ((numbytes =
    462                 libtrace_io_write(OUTPUT.file,
     463                wandio_wwrite(OUTPUT.file,
    463464                                erfptr,
    464465                                (size_t)(dag_record_size + pad)))
     
    470471
    471472        size=ntohs(erfptr->rlen)-(dag_record_size+pad);
    472         numbytes=libtrace_io_write(OUTPUT.file, buffer, (size_t)size);
     473        numbytes=wandio_wwrite(OUTPUT.file, buffer, (size_t)size);
    473474        if (numbytes != size) {
    474475                trace_set_err_out(libtrace,errno,
Note: See TracChangeset for help on using the changeset viewer.