Giriş
Bu kütüphane artık C++ standardına girdi. Açıklaması şöyle
error_category Sınıfı
Şu satırı dahil ederiz.
İmzası şöyle
Şöyle yaparız.
std::string döner. Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Bu metod aslında şuna denktir.
Şöyle yaparız.
system_error Sınıfı yazısına taşıdım.
Bu kütüphane artık C++ standardına girdi. Açıklaması şöyle
boost system kütüphanesi normalde sadece header dosyalarından oluşmuyor. Linklemek gerekir. Linklemek için şöyle yaparız.The Boost System Library is part of the C++11 Standard Library.
-lboost_system
Eğer sadece header olarak kullanmak istersek BOOST_ERROR_CODE_HEADER_ONLY tanımlanır.
error_category Sınıfı
name metodu
GirişŞu satırı dahil ederiz.
#include <boost/system/error_code.hpp>
Constructorİmzası şöyle
Şöyle yaparız.error_code (int
val,
const error_category& cat);
boost::system::error_code ec
ec = boost::system::error_code(
ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ),
boost::asio::error::get_ssl_category());
category metoduŞöyle yaparız.
if (ec.category() == asio::error::get_ssl_category()) {...}
message metodustd::string döner. Şöyle yaparız.
const boost::system::error_code ec = ...;
std::cout << error.message();
Bazı kodlarda std::string() ile şöyle yapılıyor ancak bu gereksiz.boost::system::error_code ec = ...;
std::cout << "error : =" << ec.message().c_str() << std::endl;
operator booleanŞöyle yaparız.
const boost::system::error_code ec = ...;
if(ec)
{
std::cout << error.message() << std::endl;
}
operator != metoduŞöyle yaparız.
if (ec != boost::asio::error::eof) {...}
operator << metoduBu metod aslında şuna denktir.
os << ec.category().name() << ':' << ec.value()
value metoduŞöyle yaparız.
if (ec.value() == ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ)) {...}
Şöyle yaparız.if (ec.value() == boost::asio::error::connection_reset)
{
...
}
else if (ec.value() == boost::asio::error::eof)
{
...
}
else if (errorCode.value() != boost::asio::error::operation_aborted)
{
...
}
system_error Sınıfısystem_error Sınıfı yazısına taşıdım.
Hiç yorum yok:
Yorum Gönder