void Container::load(QXmlStreamReader &stream) { Option *option; List::Container uninitialized(m_items); while (readNextStartElement(stream)) if (option = uninitialized.value(stream.name())) { option->load(stream); uninitialized.remove(&option->id()); } for (List::Container::const_iterator i = uninitialized.constBegin(), end = uninitialized.constEnd(); i != end; ++i) (*i)->loadDefault(); }
void Socket::setsockopt(const Option& option) throw (Exception) { int error; if(!isOpened()) { throw Exception(SETSOCKOPT, NOT_OPENED, NOT_OPENED_CODE); } error = ::setsockopt(descriptor, option.level(), option.id(), option.pointer(), option.size()); if(error == SETSOCKOPT_ERROR) { throw LibCException(SETSOCKOPT); } }
int Socket::getsockopt(Option& option) throw (Exception) { int error; if(!isOpened()) { throw Exception(GETSOCKOPT, NOT_OPENED, NOT_OPENED_CODE); } socklen_t optSize = option.size(); error = ::getsockopt(descriptor, option.level(), option.id(), option.pointer(), &optSize); if(error == GETSOCKOPT_ERROR) { throw LibCException(GETSOCKOPT); } return optSize; }