Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
2.4 kB · 80 lines
C++
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#include "stdafx.h"
#include "ByteArrayOutputStream.h"
// Creates a new byte array output stream. The buffer capacity is initially 32 bytes, though its size increases if necessary.ByteArrayOutputStream::ByteArrayOutputStream(){ count = 0; buf = byteArray( 32 );}
//Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.//Parameters://size - the initial size.ByteArrayOutputStream::ByteArrayOutputStream(unsigned int size){ count = 0; buf = byteArray( size );}
ByteArrayOutputStream::~ByteArrayOutputStream(){ if (buf.data != NULL) delete[] buf.data;}
//Writes the specified byte to this byte array output stream.//Parameters://b - the byte to be written.void ByteArrayOutputStream::write(unsigned int b){ // If we will fill the buffer we need to make it bigger if( count + 1 >= buf.length ) buf.resize( buf.length * 2 );
buf[count] = (byte) b; count++;}
// Writes b.length bytes from the specified byte array to this output stream.//The general contract for write(b) is that it should have exactly the same effect as the call write(b, 0, b.length).void ByteArrayOutputStream::write(byteArray b){ write(b, 0, b.length);}
//Writes len bytes from the specified byte array starting at offset off to this byte array output stream.//Parameters://b - the data.//off - the start offset in the data.//len - the number of bytes to write.void ByteArrayOutputStream::write(byteArray b, unsigned int offset, unsigned int length){ assert( b.length >= offset + length );
// If we will fill the buffer we need to make it bigger if( count + length >= buf.length ) buf.resize( max( count + length + 1, buf.length * 2 ) );
XMemCpy( &buf[count], &b[offset], length ); //std::copy( b->data+offset, b->data+offset+length, buf->data + count ); // Or this instead?
count += length;}
//Closing a ByteArrayOutputStream has no effect.//The methods in this class can be called after the stream has been closed without generating an IOException.void ByteArrayOutputStream::close(){}
//Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it.//Returns://the current contents of this output stream, as a byte array.byteArray ByteArrayOutputStream::toByteArray(){ byteArray out(count); memcpy(out.data,buf.data,count); return out;}