
#pragma once

#ifdef __H_STREAM__


#include "Thread.h"

struct SStreamPrivate {
  sbyte * data;
  size_t len;
  
    
  size_t buffered; /* < The number of buffered items. */
  
  SMutex * mutex;
};

/*
 * Initialise a stream with the default method.
 */
void
s_stream_internal_initialize (SStreamClass * klass);

/*
 * Default write method.
 *
 * Implemented in Stream.c
 */
void
s_stream_internal_write (SStream * self,
                         size_t len,
                         sbyte * data);

/*
 * Default read method.
 *
 * Implemented in Stream.c
 */
sbyte *
s_stream_internal_read (SStream * self,
                        size_t len);

#else /* #ifdef __H_STREAM__ */
#pragma message ("Trying to include file StreamPrivate.h without includeing Stream.h");
#endif /* #ifdef __H_STREAM__ */
