diff options
Diffstat (limited to '')
| -rw-r--r-- | src/tests/cache.cpp | 84 |
1 files changed, 42 insertions, 42 deletions
diff --git a/src/tests/cache.cpp b/src/tests/cache.cpp index dc5dbd0..20b384e 100644 --- a/src/tests/cache.cpp +++ b/src/tests/cache.cpp | |||
| @@ -125,54 +125,54 @@ Bu::ArchiveBase &operator<<( Bu::ArchiveBase &ar, const SubSomethingB &s ) | |||
| 125 | 125 | ||
| 126 | namespace Bu | 126 | namespace Bu |
| 127 | { | 127 | { |
| 128 | template<> | 128 | template<> |
| 129 | void _cacheObjectSave<const Something>( Bu::Stream &s, const Something *pObject ) | 129 | void _cacheObjectSave<const Something>( Bu::Stream &s, const Something *pObject ) |
| 130 | { | ||
| 131 | Bu::Archive ar( s, Bu::Archive::save ); | ||
| 132 | if( typeid(*pObject) == typeid(SubSomethingA) ) | ||
| 133 | { | ||
| 134 | ar << (uint8_t)1 << (SubSomethingA &)*pObject; | ||
| 135 | } | ||
| 136 | else if( typeid(*pObject) == typeid(SubSomethingB) ) | ||
| 137 | { | 130 | { |
| 138 | ar << (uint8_t)2 << (SubSomethingB &)*pObject; | 131 | Bu::Archive ar( s, Bu::Archive::save ); |
| 132 | if( typeid(*pObject) == typeid(SubSomethingA) ) | ||
| 133 | { | ||
| 134 | ar << (uint8_t)1 << (SubSomethingA &)*pObject; | ||
| 135 | } | ||
| 136 | else if( typeid(*pObject) == typeid(SubSomethingB) ) | ||
| 137 | { | ||
| 138 | ar << (uint8_t)2 << (SubSomethingB &)*pObject; | ||
| 139 | } | ||
| 140 | else | ||
| 141 | { | ||
| 142 | Bu::println("Not a recognized type!"); | ||
| 143 | throw Bu::ExceptionBase("Not recognized type!"); | ||
| 144 | } | ||
| 139 | } | 145 | } |
| 140 | else | ||
| 141 | { | ||
| 142 | Bu::println("Not a recognized type!"); | ||
| 143 | throw Bu::ExceptionBase("Not recognized type!"); | ||
| 144 | } | ||
| 145 | } | ||
| 146 | 146 | ||
| 147 | template<> | 147 | template<> |
| 148 | Something *_cacheObjectLoad<Something>( Bu::Stream &s ) | 148 | Something *_cacheObjectLoad<Something>( Bu::Stream &s ) |
| 149 | { | ||
| 150 | Bu::Archive ar( s, Bu::Archive::load ); | ||
| 151 | uint8_t uType; | ||
| 152 | ar >> uType; | ||
| 153 | switch( uType ) | ||
| 154 | { | 149 | { |
| 155 | case 1: | 150 | Bu::Archive ar( s, Bu::Archive::load ); |
| 156 | { | 151 | uint8_t uType; |
| 157 | SubSomethingA *ret = new SubSomethingA(); | 152 | ar >> uType; |
| 158 | ar >> *ret; | 153 | switch( uType ) |
| 159 | return ret; | 154 | { |
| 160 | } | 155 | case 1: |
| 161 | break; | 156 | { |
| 162 | 157 | SubSomethingA *ret = new SubSomethingA(); | |
| 163 | case 2: | 158 | ar >> *ret; |
| 164 | { | 159 | return ret; |
| 165 | SubSomethingB *ret = new SubSomethingB(); | 160 | } |
| 166 | ar >> *ret; | 161 | break; |
| 167 | return ret; | 162 | |
| 168 | } | 163 | case 2: |
| 169 | break; | 164 | { |
| 170 | 165 | SubSomethingB *ret = new SubSomethingB(); | |
| 171 | default: | 166 | ar >> *ret; |
| 172 | throw Bu::ExceptionBase("Flagrant error! Invalid type!"); | 167 | return ret; |
| 168 | } | ||
| 169 | break; | ||
| 170 | |||
| 171 | default: | ||
| 172 | throw Bu::ExceptionBase("Flagrant error! Invalid type!"); | ||
| 173 | } | ||
| 173 | } | 174 | } |
| 174 | } | 175 | } |
| 175 | } | ||
| 176 | 176 | ||
| 177 | typedef Bu::CachePtr<Bu::Uuid, Something> SomethingPtr; | 177 | typedef Bu::CachePtr<Bu::Uuid, Something> SomethingPtr; |
| 178 | typedef Bu::CachePtr<Bu::Uuid, SubSomethingA, Something> SomethingAPtr; | 178 | typedef Bu::CachePtr<Bu::Uuid, SubSomethingA, Something> SomethingAPtr; |
