OSSP CVS Repository

ossp - ossp-pkg/sio/sio_test.c 1.1
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/sio/sio_test.c 1.1
#include <stdio.h>

#include "al.h"
#include "sio.h"

extern sio_module_t sio_module_fd;
extern sio_module_t sio_module_buffer;

#define e(f) rc = f; printf("%s = %s\n",#f, sio_error(rc)); fflush(stdout);

int main(int argc, char *argv[])
{
    sio_rc_t rc;
    sio_t *sio;
    sio_stage_t *sios_fd, *sios_buffer;
    int fd;
    char buf[] = "Hello world\n";
    size_t actual;
    size_t buflen = 1000;

    fd = fileno(stdout);

    e(sio_create(&sio));

    e(sio_create_stage(sio, &sio_module_buffer, &sios_buffer));
    e(sio_configure_stage(sio, sios_buffer, "outputsize", &buflen));
    e(sio_create_stage(sio, &sio_module_fd, &sios_fd));
    e(sio_configure_stage(sio, sios_fd, "fd", &fd));

    e(sio_attach(sio, sios_buffer, SIO_MODE_WRITE));
    e(sio_attach(sio, sios_fd, SIO_MODE_WRITE));

    e(sio_write(sio, buf, sizeof(buf)-1, &actual));

    e(sio_push(sio));

    e(sio_detach(sio, sios_fd));
    e(sio_detach(sio, sios_buffer));

    e(sio_destroy_stage(sio, sios_fd));
    e(sio_destroy_stage(sio, sios_buffer));

    e(sio_destroy(sio));

    return 0;
}

CVSTrac 2.0.1