protected void setInputOutput()

in dbus-java/src/main/java/org/freedesktop/dbus/connections/transports/AbstractTransport.java [126:158]


    protected void setInputOutput(Socket _socket) {
        try {
            for( ISocketProvider provider : spiLoader ){
                logger.debug( "Found ISocketProvider {}", provider );

                provider.setFileDescriptorSupport(hasFileDescriptorSupport() && fileDescriptorSupported);
                inputReader = provider.createReader(_socket);
                outputWriter = provider.createWriter(_socket);
                if( inputReader != null && outputWriter != null ){
                    logger.debug( "Using ISocketProvider {}", provider );
                    break;
                }
            }
        } catch (ServiceConfigurationError _ex) {
            logger.error("Could not initialize service provider.", _ex);
        } catch (IOException _ex) {
            logger.error("Could not initialize alternative message reader/writer.", _ex);
        }

        try{
            if( inputReader == null || outputWriter == null ){
                logger.debug( "No alternative ISocketProvider found, using built-in implementation.  "
                        + "inputReader = {}, outputWriter = {}",
                        inputReader,
                        outputWriter );
                inputReader = new InputStreamMessageReader(_socket.getInputStream());
                outputWriter = new OutputStreamMessageWriter(_socket.getOutputStream());
            }
        } catch (IOException _ex) {
            logger.error("Could not initialize default message reader/writer.", _ex);
        }
        
    }