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 }