~ubuntu-branches/ubuntu/precise/primrose/precise

« back to all changes in this revision

Viewing changes to minorGems/util/StringBufferOutputStream.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Paul Wise
  • Date: 2009-04-06 19:26:56 UTC
  • Revision ID: james.westby@ubuntu.com-20090406192656-cri7503gebyvfl8t
Tags: upstream-5+dfsg1
ImportĀ upstreamĀ versionĀ 5+dfsg1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Modification History
 
3
 *
 
4
 * 2002-August-1  Jason Rohrer
 
5
 * Created.
 
6
 *
 
7
 * 2004-May-9  Jason Rohrer
 
8
 * Added function for getting data as a byte array.
 
9
 */
 
10
 
 
11
 
 
12
 
 
13
#include "minorGems/util/StringBufferOutputStream.h"
 
14
 
 
15
 
 
16
 
 
17
StringBufferOutputStream::StringBufferOutputStream()
 
18
    : mCharacterVector( new SimpleVector<unsigned char>() ) {
 
19
 
 
20
    }
 
21
 
 
22
 
 
23
 
 
24
StringBufferOutputStream::~StringBufferOutputStream() {
 
25
 
 
26
    delete mCharacterVector;
 
27
    }
 
28
 
 
29
 
 
30
 
 
31
char *StringBufferOutputStream::getString() {
 
32
 
 
33
    int numChars = mCharacterVector->size();
 
34
 
 
35
    char *returnArray = new char[ numChars + 1 ];
 
36
 
 
37
    for( int i=0; i<numChars; i++ ) {
 
38
        returnArray[i] = (char)( *( mCharacterVector->getElement( i ) ) );
 
39
        }
 
40
    returnArray[ numChars ] = '\0';
 
41
 
 
42
    return returnArray;
 
43
    }
 
44
 
 
45
 
 
46
 
 
47
unsigned char *StringBufferOutputStream::getBytes( int *outNumBytes ) {
 
48
    *outNumBytes = mCharacterVector->size();
 
49
 
 
50
    return mCharacterVector->getElementArray();
 
51
    }
 
52
 
 
53
 
 
54
 
 
55
long StringBufferOutputStream::write( unsigned char *inBuffer,
 
56
                                      long inNumBytes ) {
 
57
 
 
58
    for( int i=0; i<inNumBytes; i++ ) {
 
59
        mCharacterVector->push_back( inBuffer[ i ] );
 
60
        }
 
61
    
 
62
    return inNumBytes;
 
63
    }
 
64