diff options
| author | Mike Buland <mbuland@penny-arcade.com> | 2023-04-24 10:04:33 -0700 |
|---|---|---|
| committer | Mike Buland <mbuland@penny-arcade.com> | 2023-04-24 10:04:33 -0700 |
| commit | af849fa314ad335e14c82a2018ee7d7bea91842a (patch) | |
| tree | b30e4a5851c771d0667956739d3868a70c072715 /src/unstable/blob.cpp | |
| parent | e1115a28535663cfe404791ede5bb7ca70399053 (diff) | |
| download | libbu++-af849fa314ad335e14c82a2018ee7d7bea91842a.tar.gz libbu++-af849fa314ad335e14c82a2018ee7d7bea91842a.tar.bz2 libbu++-af849fa314ad335e14c82a2018ee7d7bea91842a.tar.xz libbu++-af849fa314ad335e14c82a2018ee7d7bea91842a.zip | |
Blob related changes throughout.
Diffstat (limited to 'src/unstable/blob.cpp')
| -rw-r--r-- | src/unstable/blob.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/unstable/blob.cpp b/src/unstable/blob.cpp index 23987f3..c4148e1 100644 --- a/src/unstable/blob.cpp +++ b/src/unstable/blob.cpp | |||
| @@ -55,6 +55,14 @@ Bu::Blob::Blob( const void *pSrc, int32_t iSize ) : | |||
| 55 | pData[iSize] = '\0'; | 55 | pData[iSize] = '\0'; |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | Bu::Blob::Blob( int32_t iSize ) : | ||
| 59 | pData( 0 ), | ||
| 60 | iSize( iSize ) | ||
| 61 | { | ||
| 62 | pData = new char[iSize+1]; | ||
| 63 | memset( pData, iSize+1, 1 ); | ||
| 64 | } | ||
| 65 | |||
| 58 | Bu::Blob::Blob( const Bu::Blob::const_iterator &iStart ) : | 66 | Bu::Blob::Blob( const Bu::Blob::const_iterator &iStart ) : |
| 59 | pData( 0 ), | 67 | pData( 0 ), |
| 60 | iSize( 0 ) | 68 | iSize( 0 ) |
| @@ -96,6 +104,14 @@ Bu::Blob::~Blob() | |||
| 96 | iSize = 0; | 104 | iSize = 0; |
| 97 | } | 105 | } |
| 98 | 106 | ||
| 107 | void Bu::Blob::setSize( int32_t iSize ) | ||
| 108 | { | ||
| 109 | delete[] pData; | ||
| 110 | pData = new char[iSize+1]; | ||
| 111 | memset( pData, iSize, 1 ); | ||
| 112 | this->iSize = iSize; | ||
| 113 | } | ||
| 114 | |||
| 99 | int32_t Bu::Blob::getSize() const | 115 | int32_t Bu::Blob::getSize() const |
| 100 | { | 116 | { |
| 101 | return iSize; | 117 | return iSize; |
| @@ -795,3 +811,20 @@ Bu::Formatter &Bu::operator<<( Bu::Formatter &rOut, const Bu::Blob &b ) | |||
| 795 | return rOut; | 811 | return rOut; |
| 796 | } | 812 | } |
| 797 | 813 | ||
| 814 | Bu::ArchiveBase &operator<<( Bu::ArchiveBase &ar, const Bu::Blob &b ) | ||
| 815 | { | ||
| 816 | int32_t iSize = b.getSize(); | ||
| 817 | ar << iSize; | ||
| 818 | ar.write( b.getData(), iSize ); | ||
| 819 | return ar; | ||
| 820 | } | ||
| 821 | |||
| 822 | Bu::ArchiveBase &operator>>( Bu::ArchiveBase &ar, Bu::Blob &b ) | ||
| 823 | { | ||
| 824 | int32_t iSize; | ||
| 825 | ar >> iSize; | ||
| 826 | b.setSize( iSize ); | ||
| 827 | ar.read( b.getData(), iSize ); | ||
| 828 | return ar; | ||
| 829 | } | ||
| 830 | |||
