Skip to content
Snippets Groups Projects
Select Git revision
  • 36ec36fcb2ae00213f34657fb25815296d4d111c
  • master default
  • labcomm2006
  • typedefs
  • anders.blomdell
  • typeref
  • pragma
  • compiler-refactoring
  • labcomm2013
  • v2014.4
  • v2006.0
  • v2014.3
  • v2014.2
  • v2014.1
  • v2014.0
  • v2013.0
16 results

dec.c

Blame
  • Forked from Anders Blomdell / LabComm
    313 commits behind the upstream repository.
    dec.c 1.27 KiB
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <labcomm_fd_reader.h>
    #include <labcomm_default_error_handler.h>
    #include <labcomm_default_memory.h>
    #include <labcomm_default_scheduler.h>
    #include <stdio.h>
    #include "jg.h"
    
    static struct labcomm_encoder *encoder;
    
    static void handle_foo(jg_foo *v, void *context) {
    	printf("got foo: b=%f, e=%s, f=%d\n", v->b, v->e, v->f);
    	v->d = v->d+1;
    	labcomm_encode_jg_foo(encoder, v);
    	usleep(500000);
    	v->d = v->d+1;
    	labcomm_encode_jg_foo(encoder, v);
    }
    
    struct labcomm_decoder *dec_init(int fd, struct labcomm_encoder *e) {
      struct labcomm_decoder *decoder;
      encoder = e;
      void  *context = NULL;
    
      decoder = labcomm_decoder_new(labcomm_fd_reader_new(
    				  labcomm_default_memory, fd, 1), 
    				labcomm_default_error_handler, 
    				labcomm_default_memory,
    				labcomm_default_scheduler);
      if (!decoder) { 
        printf("Failed to allocate decoder %s:%d\n", __FUNCTION__, __LINE__);
        return (void *)0;
      }
    
      labcomm_decoder_register_jg_foo(decoder, handle_foo, context);
    
      return decoder;
    }
    
    
    void dec_run(struct labcomm_decoder *decoder) {
      printf("Decoding:\n");
      labcomm_decoder_run(decoder);
      printf("--- End Of File ---:\n");
    }
    
    void dec_cleanup(struct labcomm_decoder *decoder) {
      labcomm_decoder_free(decoder);
    }