Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
4dda4853
Commit
4dda4853
authored
Apr 07, 2010
by
ck
Browse files
Maemo: Use on-demand shared Net7 object.
Task-number: QTCREATORBUG-1073
parent
a62e5331
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp
View file @
4dda4853
...
...
@@ -37,6 +37,7 @@
#include
"maemosettingspage.h"
#include
"maemotoolchain.h"
#include
"maemorunconfiguration.h"
#include
"ne7sshobject.h"
#include
<coreplugin/actionmanager/actionmanager.h>
#include
<coreplugin/coreconstants.h>
...
...
@@ -85,6 +86,8 @@ MaemoManager::MaemoManager()
pluginManager
->
addObject
(
m_packageCreationFactory
);
pluginManager
->
addObject
(
m_settingsPage
);
pluginManager
->
addObject
(
m_gdbSettingsPage
);
Ne7SshObject
::
instance
();
}
MaemoManager
::~
MaemoManager
()
...
...
@@ -97,6 +100,7 @@ MaemoManager::~MaemoManager()
pluginManager
->
removeObject
(
m_settingsPage
);
pluginManager
->
removeObject
(
m_gdbSettingsPage
);
Ne7SshObject
::
removeInstance
();
m_instance
=
0
;
}
...
...
src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp
View file @
4dda4853
...
...
@@ -42,6 +42,7 @@
#include
"maemosshconnection.h"
#include
"maemodeviceconfigurations.h"
#include
"ne7sshobject.h"
#include
<ne7ssh.h>
...
...
@@ -55,8 +56,6 @@
namespace
Qt4ProjectManager
{
namespace
Internal
{
namespace
{
ne7ssh
ssh
;
char
*
alloc
(
size_t
n
)
{
return
new
char
[
n
];
...
...
@@ -67,7 +66,9 @@ namespace {
MaemoSshConnection
::
MaemoSshConnection
(
const
MaemoDeviceConfig
&
devConf
,
bool
shell
)
:
m_channel
(
-
1
),
m_stopRequested
(
false
)
:
ssh
(
Ne7SshObject
::
instance
()
->
get
()),
m_channel
(
-
1
),
m_stopRequested
(
false
)
{
const
QString
*
authString
;
int
(
ne7ssh
::*
connFunc
)(
const
char
*
,
int
,
const
char
*
,
const
char
*
,
bool
,
int
);
...
...
@@ -78,7 +79,7 @@ MaemoSshConnection::MaemoSshConnection(const MaemoDeviceConfig &devConf,
authString
=
&
devConf
.
keyFile
;
connFunc
=
&
ne7ssh
::
connectWithKey
;
}
m_channel
=
(
ssh
.
*
connFunc
)(
devConf
.
host
.
toLatin1
(),
devConf
.
sshPort
,
m_channel
=
(
ssh
.
data
()
->
*
connFunc
)(
devConf
.
host
.
toLatin1
(),
devConf
.
sshPort
,
devConf
.
uname
.
toAscii
(),
authString
->
toLatin1
(),
shell
,
devConf
.
timeout
);
if
(
m_channel
==
-
1
)
throw
MaemoSshException
(
tr
(
"Could not connect to host"
));
...
...
@@ -87,12 +88,12 @@ MaemoSshConnection::MaemoSshConnection(const MaemoDeviceConfig &devConf,
MaemoSshConnection
::~
MaemoSshConnection
()
{
qDebug
(
"%s"
,
Q_FUNC_INFO
);
ssh
.
close
(
m_channel
);
ssh
->
close
(
m_channel
);
}
const
char
*
MaemoSshConnection
::
lastError
()
{
return
ssh
.
errors
()
->
pop
(
channel
());
return
ssh
->
errors
()
->
pop
(
channel
());
}
void
MaemoSshConnection
::
stop
()
...
...
@@ -104,7 +105,7 @@ MaemoInteractiveSshConnection::MaemoInteractiveSshConnection(const MaemoDeviceCo
:
MaemoSshConnection
(
devConf
,
true
),
m_prompt
(
0
)
{
m_prompt
=
devConf
.
uname
==
QLatin1String
(
"root"
)
?
"# "
:
"$ "
;
if
(
!
ssh
.
waitFor
(
channel
(),
m_prompt
,
devConf
.
timeout
))
{
if
(
!
ssh
->
waitFor
(
channel
(),
m_prompt
,
devConf
.
timeout
))
{
const
QString
error
=
tr
(
"Could not start remote shell: %1"
).
arg
(
lastError
());
throw
MaemoSshException
(
error
);
...
...
@@ -113,13 +114,13 @@ MaemoInteractiveSshConnection::MaemoInteractiveSshConnection(const MaemoDeviceCo
MaemoInteractiveSshConnection
::~
MaemoInteractiveSshConnection
()
{
ssh
.
send
(
"exit
\n
"
,
channel
());
ssh
.
waitFor
(
channel
(),
m_prompt
,
1
);
ssh
->
send
(
"exit
\n
"
,
channel
());
ssh
->
waitFor
(
channel
(),
m_prompt
,
1
);
}
void
MaemoInteractiveSshConnection
::
runCommand
(
const
QString
&
command
)
{
if
(
!
ssh
.
send
((
command
+
QLatin1String
(
"
\n
"
)).
toLatin1
().
data
(),
if
(
!
ssh
->
send
((
command
+
QLatin1String
(
"
\n
"
)).
toLatin1
().
data
(),
channel
()))
{
throw
MaemoSshException
(
tr
(
"Error running command: %1"
)
.
arg
(
lastError
()));
...
...
@@ -127,12 +128,12 @@ void MaemoInteractiveSshConnection::runCommand(const QString &command)
bool
done
;
do
{
done
=
ssh
.
waitFor
(
channel
(),
m_prompt
,
1
);
done
=
ssh
->
waitFor
(
channel
(),
m_prompt
,
1
);
const
char
*
const
error
=
lastError
();
if
(
error
)
throw
MaemoSshException
(
tr
(
"SSH error: %1"
).
arg
(
error
));
QScopedPointer
<
char
,
QScopedPointerArrayDeleter
<
char
>
>
output
(
ssh
.
readAndReset
(
channel
(),
alloc
));
output
(
ssh
->
readAndReset
(
channel
(),
alloc
));
if
(
output
.
data
())
{
emit
remoteOutput
(
QString
::
fromUtf8
(
output
.
data
()));
if
(
!
done
)
...
...
@@ -150,7 +151,7 @@ MaemoSftpConnection::MaemoSftpConnection(const MaemoDeviceConfig &devConf)
:
MaemoSshConnection
(
devConf
,
false
),
sftp
(
new
Ne7SftpSubsystem
)
{
if
(
!
ssh
.
initSftp
(
*
sftp
,
channel
())
||
!
sftp
->
setTimeout
(
devConf
.
timeout
))
if
(
!
ssh
->
initSftp
(
*
sftp
,
channel
())
||
!
sftp
->
setTimeout
(
devConf
.
timeout
))
throw
MaemoSshException
(
tr
(
"Error setting up SFTP subsystem: %1"
)
.
arg
(
lastError
()));
}
...
...
src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.h
View file @
4dda4853
...
...
@@ -47,6 +47,7 @@
#include
<QtCore/QSharedPointer>
#include
<QtCore/QString>
class
ne7ssh
;
class
Ne7SftpSubsystem
;
namespace
Qt4ProjectManager
{
...
...
@@ -79,6 +80,7 @@ protected:
bool
stopRequested
()
const
{
return
m_stopRequested
;
}
const
char
*
lastError
();
QSharedPointer
<
ne7ssh
>
ssh
;
private:
int
m_channel
;
volatile
bool
m_stopRequested
;
...
...
src/plugins/qt4projectmanager/qt-maemo/ne7sshobject.cpp
0 → 100644
View file @
4dda4853
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of Qt Creator.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**
**
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include
"ne7sshobject.h"
#include
<QtCore/QMutexLocker>
#include
<ne7ssh.h>
namespace
Qt4ProjectManager
{
namespace
Internal
{
Ne7SshObject
*
Ne7SshObject
::
instance
()
{
if
(
!
m_instance
)
m_instance
=
new
Ne7SshObject
;
return
m_instance
;
}
void
Ne7SshObject
::
removeInstance
()
{
delete
m_instance
;
}
QSharedPointer
<
ne7ssh
>
Ne7SshObject
::
get
()
{
QMutexLocker
locker
(
&
m_mutex
);
QSharedPointer
<
ne7ssh
>
shared
=
m_weakRef
.
toStrongRef
();
if
(
!
shared
)
{
shared
=
QSharedPointer
<
ne7ssh
>
(
new
ne7ssh
);
m_weakRef
=
shared
;
}
return
shared
;
}
Ne7SshObject
::
Ne7SshObject
()
{
}
Ne7SshObject
*
Ne7SshObject
::
m_instance
=
0
;
}
// namespace Internal
}
// namespace Qt4ProjectManager
src/plugins/qt4projectmanager/qt-maemo/ne7sshobject.h
0 → 100644
View file @
4dda4853
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of Qt Creator.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the Technology Preview License Agreement accompanying
** this package.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**
**
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef NE7SSHOBJECT_H
#define NE7SSHOBJECT_H
#include
<QtCore/QMutex>
#include
<QtCore/QSharedPointer>
#include
<QtCore/QWeakPointer>
class
ne7ssh
;
namespace
Qt4ProjectManager
{
namespace
Internal
{
class
Ne7SshObject
{
public:
static
Ne7SshObject
*
instance
();
static
void
removeInstance
();
QSharedPointer
<
ne7ssh
>
get
();
private:
Ne7SshObject
();
Ne7SshObject
(
const
Ne7SshObject
&
);
Ne7SshObject
&
operator
=
(
const
Ne7SshObject
&
);
static
Ne7SshObject
*
m_instance
;
QWeakPointer
<
ne7ssh
>
m_weakRef
;
QMutex
m_mutex
;
};
}
// namespace Internal
}
// namespace Qt4ProjectManager
#endif // NE7SSHOBJECT_H
src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri
View file @
4dda4853
...
...
@@ -18,7 +18,8 @@ HEADERS += \
$$PWD/maemosshthread.h \
$$PWD/maemotoolchain.h \
$$PWD/maemopackagecreationstep.h \
$$PWD/maemopackagecreationfactory.h
$$PWD/maemopackagecreationfactory.h \
$$PWD/ne7sshobject.h
SOURCES += \
$$PWD/maemoconfigtestdialog.cpp \
...
...
@@ -35,7 +36,8 @@ SOURCES += \
$$PWD/maemosshthread.cpp \
$$PWD/maemotoolchain.cpp \
$$PWD/maemopackagecreationstep.cpp \
$$PWD/maemopackagecreationfactory.cpp
$$PWD/maemopackagecreationfactory.cpp \
$$PWD/ne7sshobject.cpp
FORMS += \
$$PWD/maemoconfigtestdialog.ui \
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment