Array Device Sınıfları
Bu sınıflar stream'in verilen diziye yazmasını veya diziden okumasını sağlar.
basic_array_sink - Write only
Yazma aracı. Stream verilen buffer'a yazar. Örnek
basic_array - Read ve Write
Bu sınıflar stream'in verilen diziye yazmasını veya diziden okumasını sağlar.
basic_array_sink - Write only
Yazma aracı. Stream verilen buffer'a yazar. Örnek
char buffer[4096];
boost::iostreams::basic_array_sink<char> sr(buffer, buffer_size);
boost::iostreams::stream< boost::iostreams::basic_array_sink<char> > source(sr);
boost::archive::binary_oarchive oa(source);
oa << serializable_object;
Eskiden strstream sınıfı da bu özelliği sağlardı. Sonradan bu sınıf deprecate edildi.void fun(char *buff, unsigned size)
{
std::strstream str(buff, size);
str << "hello world: " << 5;
}
Aslında basic_array_sink benzeri bir sınıf kodlamak çok kolay. Tüm yapmamız gereken belirtilen bellek alanına verilen değeri memcpy ile kopyalamak ve destination pointer'ı ilerletmek.basic_array - Read ve Write
Örnek ver
array_sink - Write
basic_array<char> sınıfının özelleşmiş halidir. char dizisi ile çalışırken şöyle yaparız
array_sink - Write
basic_array<char> sınıfının özelleşmiş halidir. char dizisi ile çalışırken şöyle yaparız
#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/stream.hpp>
#include <iostream>
using namespace boost::iostreams;
int main()
{
char buffer[16];
array_sink sink{buffer};
stream<array_sink> os{sink};
os << "Boost" << std::flush;
std::cout.write(buffer, 5);
}
boost::array ile çalışırken şöyle yaparız.using namespace boost::iostreams;
boost::array<char, 16384> headerBuf;
array_sink sink {headerBuf.begin(), headerBuf.size()};
stream<array_sink> os {sink};
os << "somedata";
Hiç yorum yok:
Yorum Gönder