00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #include <iostream>
00021 #include "weBlob.h"
00022 
00023 
00024 bool WeBlob::read(istream& file)
00025 {
00026     if (file.bad())
00027     {
00028         return false;
00029     }
00030 
00031     size_t cb = 0;
00032     file.read((char*)&cb, streamsize(4));
00033     if (file.eof() || file.bad() || cb == 0) {
00034         return false;
00035     }
00036     
00037     resize(cb);
00038     file.read((char*)&(*this)[0], cb);
00039     return (!file.bad());
00040 }
00041 
00042 
00043 bool WeBlob::write(ostream& file)
00044 {
00045     size_t cb = size();
00046     file.write((const char*)&cb, 4);
00047     if (file.bad())
00048     {
00049         return false;
00050     }
00051     file.write((const char*)&(*this)[0], cb);
00052     return (!file.bad());
00053 }
00054 
00055 template<class Archive>
00056 void WeBlob::serialize(Archive &ar, const unsigned int version)
00057 {
00058 
00059 }
00060 
00061 WeInStream* WeBlob::stream()
00062 {
00063     return new WeBlobStream(*this);
00064 }