Beispiel #1
0
req::ptr<File>
UserStreamWrapper::open(const String& filename, const String& mode,
                        int options, const req::ptr<StreamContext>& context) {
  auto file = req::make<UserFile>(m_cls, context);
  auto ret = file->openImpl(filename, mode, options);
  if (!ret) {
    return nullptr;
  }
  return file;
}
Beispiel #2
0
File* UserStreamWrapper::open(const String& filename, const String& mode,
                              int options, const Variant& context) {
  auto file = newres<UserFile>(m_cls, context);
  Resource wrapper(file);
  auto ret = file->openImpl(filename, mode, options);
  if (!ret) {
    return nullptr;
  }
  DEBUG_ONLY auto tmp = wrapper.detach();
  assert(tmp == file && file->hasExactlyOneRef());
  file->decRefCount();
  return file;
}
Beispiel #3
0
void SerialPort::open(const std::string& device, int baudRate, const std::string& parameters, FlowControl flowControl)
{
	if (isOpenImpl()) throw Poco::IllegalStateException("Port is already open", device);
	if (parameters.size() != 3) throw Poco::InvalidArgumentException("Parameters string must be three characters long", parameters);

	if (_logger.debug())
	{
		_logger.debug(format("Opening serial port %s, speed %d, parameters %s, flow control %s", device, baudRate, parameters, std::string(flowControl == FLOW_NONE ? "none" : "RTS/CTS")));
	}

    _cur = _end = _buffer.begin();
	openImpl(device, baudRate, parameters, static_cast<FlowControlImpl>(flowControl));
	
	_device = device;
	_baudRate = baudRate;
	_parameters = parameters;
	_flowControl = flowControl;
}
SerialChannelImpl::SerialChannelImpl(const std::string& name, const SerialConfigImpl& config): 
	_name(name), _config(config)
{
	openImpl();
}