public Msg pull_msg () 
    {
        
        Msg msg_ = null;
        
        //  First message to send is identity
        if (!identity_sent) {
            msg_ = new Msg(options.identity_size);
            msg_.put(options.identity, 0, options.identity_size);
            identity_sent = true;
            incomplete_in = false;
            
            return msg_;
        }

        if (pipe == null || (msg_ = pipe.read ()) == null ) {
            return null;
        }
        incomplete_in = msg_.has_more();

        return msg_;

    }