#ifndef  __QUEX_INCLUDE_GUARD__BUFFER__LOADER__BYTE_LOADER_STREAM
#define  __QUEX_INCLUDE_GUARD__BUFFER__LOADER__BYTE_LOADER_STREAM
#ifdef __cplusplus


#include <quex/code_base/buffer/loader/ByteLoader>

QUEX_NAMESPACE_MAIN_OPEN

template <class StreamType>
class QUEX_NAME(ByteLoader_stream) { 
public:
    QUEX_NAME(ByteLoader)   base;
    StreamType*            input_handle;
};

template <class StreamType> QUEX_INLINE void
QUEX_NAME(ByteLoader_stream_construct)(QUEX_NAME(ByteLoader_stream)<StreamType>* me, StreamType* sh);
template <class StreamType> QUEX_INLINE QUEX_NAME(ByteLoader)*
QUEX_NAME(ByteLoader_stream_new)(StreamType* sh);
QUEX_INLINE QUEX_NAME(ByteLoader)*    
QUEX_NAME(ByteLoader_stream_new_from_file_name)(const char* FileName);

QUEX_NAMESPACE_MAIN_CLOSE

#endif /* __cplusplus                           */
#endif /*  __QUEX_INCLUDE_GUARD__BUFFER__LOADER__BYTE_LOADER_STREAM */
