예제 #1
0
    bool OpenSimWorldSession::LoginToServer(
        const QString& first_name,
        const QString& last_name,
        const QString& password,
        const QString& address,
        const QString& port,
        const QString& start_location,
        ProtocolUtilities::ConnectionThreadState *thread_state )
    {
        boost::shared_ptr<ProtocolModuleOpenSim> spOpenSim = networkOpensim_.lock();
        if (spOpenSim.get())
        {
            spOpenSim->SetAuthenticationType(ProtocolUtilities::AT_OpenSim);
            OpenSimLoginThread *loginWorker = spOpenSim->GetLoginWorker();
            loginWorker->PrepareOpenSimLogin(first_name, last_name, password, address, port, start_location, thread_state);

            connect(loginWorker, SIGNAL(LoginStateChanged(int)), SLOT(HandleLoginStateChange(int)));

            // Start the thread.
            boost::thread(boost::ref(*loginWorker));
        }
        else
        {
            ProtocolModuleOpenSim::LogInfo("Could not get ProtocolModuleOpenSim");
            return false;
        }

        return true;
    }
예제 #2
0
    bool OpenSimWorldSession::LoginToServer(
        const QString& first_name,
        const QString& last_name,
        const QString& password,
        const QString& address,
        const QString& port,
        const QString& start_location,
        ProtocolUtilities::ConnectionThreadState *thread_state)
    {
        boost::shared_ptr<ProtocolModuleOpenSim> spOpenSim = networkOpensim_.lock();
        if (spOpenSim)
        {
            spOpenSim->SetAuthenticationType(ProtocolUtilities::AT_OpenSim);
            OpenSimLoginThread *loginWorker = spOpenSim->GetLoginWorker();
            if (!loginWorker)
                return false;
            if (loginWorker->GetState() == ProtocolUtilities::Connection::STATE_CONNECTED)
            {
                ProtocolModuleOpenSim::LogInfo("OpenSimWorldSession::LoginToServer() - Already in connected state. Something went bad on diconnect before you got here!");
                return false;
            }
            loginWorker->PrepareOpenSimLogin(first_name, last_name, password, address, port, start_location, thread_state);
            connect(loginWorker, SIGNAL(LoginStateChanged(int)), SLOT(HandleLoginStateChange(int)), Qt::UniqueConnection);

            // Start the thread.
            boost::thread(boost::ref(*loginWorker));
        }
        else
        {
            ProtocolModuleOpenSim::LogInfo("Could not get ProtocolModuleOpenSim");
            return false;
        }

        return true;
    }