Example #1
0
static int DaoFileStream_Write( DaoStream *stream, const void *data, int count )
{
	DaoFileStream *self = (DaoFileStream*) stream;
	DString bytes = DString_WrapBytes( (char*) data, count );
	DaoFile_WriteString( self->file, & bytes );
	return count;
}
Example #2
0
daoint DaoStream_ReadBytes( DaoStream *self, void *output, daoint count )
{
	daoint sum = 0;

	if( count < 0 ) return -1;
	if( self->Read == NULL ) return -1;

	while( sum < count ){
		DString buffer = DString_WrapBytes( (char*) output, count );
		daoint num = count - sum;
		if( num > 0x7fffffff ) num = 0x7fffffff;
		num = self->Read( self, & buffer, num );
		if( num < 0 ) return -1;
		if( num == 0 ) break;
		sum += num;
	}
	return sum;
}
Example #3
0
DString DString_WrapChars( const char *bytes )
{
	return DString_WrapBytes( bytes, bytes ? strlen( bytes ) : 0 );
}
Example #4
0
int DaoStream_WriteStderr( DaoStream *self, const void *data, int count )
{
	DString bytes = DString_WrapBytes( (char*) data, count );
	DaoFile_WriteString( stderr, & bytes );
	return count;
}