diff options
| author | Mike Buland <mike@xagasoft.com> | 2024-10-03 11:28:44 -0700 |
|---|---|---|
| committer | Mike Buland <mike@xagasoft.com> | 2024-10-03 11:28:44 -0700 |
| commit | 6403224b6fe50dfc28d3c25725b6d0910b7eb6c3 (patch) | |
| tree | 015d35db7a0a3cbcc72487a1df0d59e5c4e685bf /src/stable/myriad.cpp | |
| parent | 7487eea1b802bf0f45afcef5807251049b034dd8 (diff) | |
| download | libbu++-6403224b6fe50dfc28d3c25725b6d0910b7eb6c3.tar.gz libbu++-6403224b6fe50dfc28d3c25725b6d0910b7eb6c3.tar.bz2 libbu++-6403224b6fe50dfc28d3c25725b6d0910b7eb6c3.tar.xz libbu++-6403224b6fe50dfc28d3c25725b6d0910b7eb6c3.zip | |
Minor tweaks/additions.
Now to fix MyriadFs
Diffstat (limited to '')
| -rw-r--r-- | src/stable/myriad.cpp | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/stable/myriad.cpp b/src/stable/myriad.cpp index 5e511fd..492676e 100644 --- a/src/stable/myriad.cpp +++ b/src/stable/myriad.cpp | |||
| @@ -129,6 +129,19 @@ Bu::MyriadStream Bu::Myriad::open( Bu::Myriad::StreamId iStream, | |||
| 129 | return Bu::MyriadStream( *this, pStream, eMode ); | 129 | return Bu::MyriadStream( *this, pStream, eMode ); |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | Bu::Myriad::StreamId Bu::Myriad::allocate() | ||
| 133 | { | ||
| 134 | Bu::MutexLocker l( mAccess ); | ||
| 135 | |||
| 136 | Stream *pStream = new Stream( *this, ++iLastUsedIndex, 0 ); | ||
| 137 | mhStream.lock(); | ||
| 138 | hStream.insert( pStream->iStream, pStream ); | ||
| 139 | mhStream.unlock(); | ||
| 140 | bStructureChanged = true; | ||
| 141 | |||
| 142 | return pStream->iStream; | ||
| 143 | } | ||
| 144 | |||
| 132 | void Bu::Myriad::erase( Bu::Myriad::StreamId iStream ) | 145 | void Bu::Myriad::erase( Bu::Myriad::StreamId iStream ) |
| 133 | { | 146 | { |
| 134 | // For now, let's prevent you from erasing a stream if it's open. | 147 | // For now, let's prevent you from erasing a stream if it's open. |
| @@ -252,6 +265,19 @@ int32_t Bu::Myriad::getTotalUnusedBytes(int32_t iAssumeBlockSize ) const | |||
| 252 | return iTotal; | 265 | return iTotal; |
| 253 | } | 266 | } |
| 254 | 267 | ||
| 268 | Bu::Myriad::StreamIdList Bu::Myriad::getStreamList() const | ||
| 269 | { | ||
| 270 | mhStream.lock(); | ||
| 271 | StreamIdList lIds = hStream.getKeys(); | ||
| 272 | mhStream.unlock(); | ||
| 273 | lIds.sort(); | ||
| 274 | if( lIds.first() == 0 ) | ||
| 275 | { | ||
| 276 | lIds.eraseFirst(); | ||
| 277 | } | ||
| 278 | return lIds; | ||
| 279 | } | ||
| 280 | |||
| 255 | Bu::BitString Bu::Myriad::buildBlockUseMap() const | 281 | Bu::BitString Bu::Myriad::buildBlockUseMap() const |
| 256 | { | 282 | { |
| 257 | Bu::MutexLocker l( mAccess ); | 283 | Bu::MutexLocker l( mAccess ); |
| @@ -264,10 +290,10 @@ Bu::BitString Bu::Myriad::buildBlockUseMap() const | |||
| 264 | return bsMap; | 290 | return bsMap; |
| 265 | } | 291 | } |
| 266 | 292 | ||
| 267 | Bu::Array<int32_t> Bu::Myriad::buildBlockMap() const | 293 | Bu::Myriad::StreamIdArray Bu::Myriad::buildBlockMap() const |
| 268 | { | 294 | { |
| 269 | Bu::MutexLocker l( mAccess ); | 295 | Bu::MutexLocker l( mAccess ); |
| 270 | Bu::Array<int32_t> bm( iBlockCount ); | 296 | StreamIdArray bm( iBlockCount ); |
| 271 | for( int j = 0; j < iBlockCount; j++ ) | 297 | for( int j = 0; j < iBlockCount; j++ ) |
| 272 | { | 298 | { |
| 273 | bm.append( -1 ); | 299 | bm.append( -1 ); |
