Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
skylivex
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
astronomy
skylivex
Commits
ee97073f
Commit
ee97073f
authored
Feb 17, 2013
by
Stefy Lanza (nextime / spora )
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added SKMessage object and declared it as qmetatype for IPC
parent
ecab3de6
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
204 additions
and
42 deletions
+204
-42
skauth.cpp
plugins/skauth.cpp
+5
-4
skauth.h
plugins/skauth.h
+4
-3
skauth.pro
plugins/skauth.pro
+2
-2
skproto.cpp
plugins/skproto.cpp
+5
-4
skproto.h
plugins/skproto.h
+4
-3
skproto.pro
plugins/skproto.pro
+2
-2
ipcmsg.cpp
src/ipcmsg.cpp
+85
-0
ipcmsg.h
src/ipcmsg.h
+67
-0
main.cpp
src/main.cpp
+2
-1
mainwin.cpp
src/mainwin.cpp
+3
-2
mainwin.h
src/mainwin.h
+2
-1
pluginsinterfaces.h
src/pluginsinterfaces.h
+4
-3
skylivex.cpp
src/skylivex.cpp
+9
-10
skylivex.h
src/skylivex.h
+6
-5
skylivex.pro
src/skylivex.pro
+4
-2
No files found.
plugins/skauth.cpp
View file @
ee97073f
...
...
@@ -33,21 +33,22 @@
*
*/
#include "pluginsinterfaces.h"
#include "ipcmsg.h"
#include <iostream>
#include "skauth.h"
void
SkyliveAuth
::
startPlugin
()
{
std
::
cout
<<
"SkyliveAuth initialized
"
<<
std
::
endl
;
std
::
cout
<<
"SkyliveAuth initialized
in thread "
<<
thread
()
<<
std
::
endl
;
}
void
SkyliveAuth
::
receiveMessage
(
std
::
string
msg
)
void
SkyliveAuth
::
receiveMessage
(
SKMessage
::
SKMessage
msg
)
{
std
::
cout
<<
"SkyliveAuth receive"
<<
msg
<<
std
::
endl
;
std
::
cout
<<
"SkyliveAuth receive"
<<
msg
.
handle
<<
std
::
endl
;
}
void
SkyliveAuth
::
sendMessage
(
std
::
string
msg
)
void
SkyliveAuth
::
sendMessage
(
SKMessage
::
SKMessage
msg
)
{
emit
putMessage
(
msg
);
}
...
...
plugins/skauth.h
View file @
ee97073f
...
...
@@ -35,6 +35,7 @@
#include <QObject>
#include <QtPlugin>
#include "pluginsinterfaces.h"
#include "ipcmsg.h"
class
SkyliveAuth
:
public
QObject
,
SkylivexPluginInterface
{
...
...
@@ -44,11 +45,11 @@ class SkyliveAuth : public QObject, SkylivexPluginInterface
public
:
void
startPlugin
();
void
sendMessage
(
std
::
string
msg
);
void
sendMessage
(
SKMessage
::
SKMessage
msg
);
public
slots
:
void
receiveMessage
(
std
::
string
msg
);
void
receiveMessage
(
SKMessage
::
SKMessage
msg
);
signals
:
void
putMessage
(
std
::
string
msg
);
void
putMessage
(
SKMessage
::
SKMessage
msg
);
};
plugins/skauth.pro
View file @
ee97073f
TEMPLATE
=
lib
SOURCES
=
skauth
.
cpp
SOURCES
=
skauth
.
cpp
..
/
src
/
ipcmsg
.
cpp
CONFIG
+=
plugin
HEADERS
=
skauth
.
h
HEADERS
=
skauth
.
h
..
/
src
/
ipcmsg
.
h
INCLUDEPATH
=
..
/
src
QT
+=
core
network
widgets
DESTDIR
=
..
/
build
/
plugins
plugins/skproto.cpp
View file @
ee97073f
...
...
@@ -33,22 +33,23 @@
*
*/
#include "pluginsinterfaces.h"
#include "ipcmsg.h"
#include <iostream>
#include "skproto.h"
void
SkyliveProtocol
::
startPlugin
()
{
std
::
cout
<<
"SkyliveProtocol initialized
"
<<
std
::
endl
;
std
::
cout
<<
"SkyliveProtocol initialized
in thread "
<<
thread
()
<<
std
::
endl
;
std
::
string
prova
(
"ANTANI STA PROVA!!"
);
sendMessage
(
prova
);
}
void
SkyliveProtocol
::
receiveMessage
(
std
::
string
msg
)
void
SkyliveProtocol
::
receiveMessage
(
SKMessage
::
SKMessage
msg
)
{
std
::
cout
<<
"SkyliveProtocol receive"
<<
msg
<<
std
::
endl
;
std
::
cout
<<
"SkyliveProtocol receive"
<<
msg
.
handle
<<
std
::
endl
;
}
void
SkyliveProtocol
::
sendMessage
(
std
::
string
msg
)
void
SkyliveProtocol
::
sendMessage
(
SKMessage
::
SKMessage
msg
)
{
emit
putMessage
(
msg
);
}
...
...
plugins/skproto.h
View file @
ee97073f
...
...
@@ -35,6 +35,7 @@
#include <QObject>
#include <QtPlugin>
#include "pluginsinterfaces.h"
#include "ipcmsg.h"
class
SkyliveProtocol
:
public
QObject
,
SkylivexPluginInterface
{
...
...
@@ -44,10 +45,10 @@ class SkyliveProtocol : public QObject, SkylivexPluginInterface
public
:
void
startPlugin
();
void
sendMessage
(
std
::
string
msg
);
void
sendMessage
(
SKMessage
::
SKMessage
msg
);
public
slots
:
void
receiveMessage
(
std
::
string
msg
);
void
receiveMessage
(
SKMessage
::
SKMessage
msg
);
signals
:
void
putMessage
(
std
::
string
msg
);
void
putMessage
(
SKMessage
::
SKMessage
msg
);
};
plugins/skproto.pro
View file @
ee97073f
TEMPLATE
=
lib
SOURCES
=
skproto
.
cpp
SOURCES
=
skproto
.
cpp
..
/
src
/
ipcmsg
.
cpp
CONFIG
+=
plugin
HEADERS
=
skproto
.
h
HEADERS
=
skproto
.
h
..
/
src
/
ipcmsg
.
h
INCLUDEPATH
=
..
/
src
QT
+=
core
network
widgets
DESTDIR
=
..
/
build
/
plugins
src/ipcmsg.cpp
0 → 100644
View file @
ee97073f
/* ____ _ _ _ __ __
* / ___|| | ___ _| (_)_ _____\ \/ /
* \___ \| |/ / | | | | \ \ / / _ \\ /
* ___) | <| |_| | | |\ V / __// \ Remote Telescopes
* |____/|_|\_\\__, |_|_| \_/ \___/_/\_\ For the masses
* |___/
*
* Copyright (C) 2013 Franco (nextime) Lanza <nextime@nexlab.it>
* Copyright (C) 2013 Ivan Bellia <skylive@skylive.it>
*
* All rights reserved.
*
* This file is part of SkyliveX.
*
* SkyliveX is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Foobar is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
*
********************************************************************
*
* File:
*
* Purpose:
*
*/
#include <QTime>
#include <QHash>
#include <iostream>
#include "ipcmsg.h"
SKMessage
::
SKMessage
(
std
::
string
s
,
std
::
string
h
,
QHash
<
std
::
string
,
std
::
string
>
p
)
{
handle
=
h
;
sender
=
s
;
parameters
=
p
;
time
=
QTime
::
currentTime
();
std
::
cout
<<
"SKMessage initialized "
<<
handle
<<
std
::
endl
;
}
SKMessage
::
SKMessage
(
std
::
string
h
,
QHash
<
std
::
string
,
std
::
string
>
p
)
{
sender
=
std
::
string
(
"unknown"
);
time
=
QTime
::
currentTime
();
parameters
=
p
;
handle
=
h
;
}
SKMessage
::
SKMessage
(
std
::
string
h
)
{
sender
=
std
::
string
(
"unknown"
);
handle
=
h
;
time
=
QTime
::
currentTime
();
}
SKMessage
::
SKMessage
()
{
sender
=
std
::
string
(
"unknown"
);
handle
=
std
::
string
(
"none"
);
time
=
QTime
::
currentTime
();
}
SKMessage
::~
SKMessage
()
{
}
SKMessage
::
SKMessage
(
const
SKMessage
&
other
)
{
handle
=
other
.
handle
;
sender
=
other
.
sender
;
parameters
=
other
.
parameters
;
time
=
other
.
time
;
}
src/ipcmsg.h
0 → 100644
View file @
ee97073f
/* ____ _ _ _ __ __
* / ___|| | ___ _| (_)_ _____\ \/ /
* \___ \| |/ / | | | | \ \ / / _ \\ /
* ___) | <| |_| | | |\ V / __// \ Remote Telescopes
* |____/|_|\_\\__, |_|_| \_/ \___/_/\_\ For the masses
* |___/
*
* Copyright (C) 2013 Franco (nextime) Lanza <nextime@nexlab.it>
* Copyright (C) 2013 Ivan Bellia <skylive@skylive.it>
*
* All rights reserved.
*
* This file is part of SkyliveX.
*
* SkyliveX is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Foobar is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
*
********************************************************************
*
* File:
*
* Purpose:
*
*/
#ifndef IPCMSG_H
#define IPCMSG_H
#include <QTime>
#include <QHash>
#include <iostream>
/*
* SKMessage
* An object representing an IPC message
* between threads
*/
class
SKMessage
{
public
:
SKMessage
();
SKMessage
(
const
SKMessage
&
other
);
~
SKMessage
();
QTime
time
;
std
::
string
sender
;
std
::
string
handle
;
QHash
<
std
::
string
,
std
::
string
>
parameters
;
SKMessage
(
std
::
string
s
,
std
::
string
h
,
QHash
<
std
::
string
,
std
::
string
>
p
);
SKMessage
(
std
::
string
h
,
QHash
<
std
::
string
,
std
::
string
>
p
);
SKMessage
(
std
::
string
h
);
};
#endif
src/main.cpp
View file @
ee97073f
...
...
@@ -39,6 +39,7 @@
#include <QTimer>
#include "mainwin.h"
#include "skylivex.h"
#include "ipcmsg.h"
/*
...
...
@@ -78,7 +79,7 @@ int main(int argc, char *argv[])
// connect core with the mainwin
//QObject::connect(skx, SIGNAL(msgForMainWin(std::string&)), &mainw, SLOT(msgFromCore(std::string&)), Qt::QueuedConnection);
QObject
::
connect
(
skx
,
SIGNAL
(
msgForMainWin
(
std
::
string
&
)),
&
mainw
,
SLOT
(
msgFromCore
(
std
::
string
&
)));
QObject
::
connect
(
skx
,
SIGNAL
(
msgForMainWin
(
SKMessage
::
SKMessage
&
)),
&
mainw
,
SLOT
(
msgFromCore
(
SKMessage
::
SKMessage
&
)));
// and then.. go!
return
skylivexapp
.
exec
();
...
...
src/mainwin.cpp
View file @
ee97073f
...
...
@@ -38,6 +38,7 @@
#include <QDir>
#include <QPalette>
#include <iostream>
#include "ipcmsg.h"
MainWin
::
MainWin
(
QFile
&
htmlfile
)
:
QWebView
(
0
)
...
...
@@ -65,7 +66,7 @@ MainWin::~MainWin()
}
void
MainWin
::
msgFromCore
(
std
::
string
&
msg
)
void
MainWin
::
msgFromCore
(
SKMessage
::
SKMessage
&
msg
)
{
std
::
cout
<<
"Message from core: "
<<
msg
<<
std
::
endl
;
std
::
cout
<<
"Message from core: "
<<
msg
.
handle
<<
std
::
endl
;
}
src/mainwin.h
View file @
ee97073f
...
...
@@ -40,6 +40,7 @@
#include <QFile>
#include <QString>
#include <QObject>
#include <ipcmsg.h>
/*
* class MainWin
...
...
@@ -60,7 +61,7 @@ class MainWin : public QWebView
~
MainWin
();
public
slots
:
void
msgFromCore
(
std
::
string
&
msg
);
void
msgFromCore
(
SKMessage
::
SKMessage
&
msg
);
};
...
...
src/pluginsinterfaces.h
View file @
ee97073f
...
...
@@ -36,6 +36,7 @@
#define PLUGINSINTERFACES_H
#include <QtPlugin>
#include <iostream>
#include "ipcmsg.h"
QT_BEGIN_NAMESPACE
class
QStringList
;
...
...
@@ -47,13 +48,13 @@ class SkylivexPluginInterface
public
:
virtual
~
SkylivexPluginInterface
()
{}
virtual
void
startPlugin
()
=
0
;
virtual
void
sendMessage
(
std
::
string
)
{}
virtual
void
sendMessage
(
SKMessage
)
{}
public
slots
:
virtual
void
receiveMessage
(
std
::
string
)
{}
virtual
void
receiveMessage
(
SKMessage
)
{}
signals
:
virtual
void
putMessage
(
std
::
string
)
{}
virtual
void
putMessage
(
SKMessage
)
{}
};
QT_BEGIN_NAMESPACE
...
...
src/skylivex.cpp
View file @
ee97073f
...
...
@@ -42,15 +42,15 @@
#include "skylivex.h"
#include "pluginsinterfaces.h"
#include <iostream>
#include "ipcmsg.h"
Q_DECLARE_METATYPE
(
std
::
string
)
Q_DECLARE_METATYPE
(
SKMessage
::
SKMessage
)
// Load and initialize plugins and shared memory communication
void
SkyliveX
::
initialize
()
{
std
::
cout
<<
"antani"
<<
std
::
endl
;
qRegisterMetaType
<
std
::
string
>
(
"std::string"
);
qRegisterMetaType
<
SKMessage
::
SKMessage
>
(
"SKMessage::SKMessage"
);
loadPlugins
();
}
...
...
@@ -58,8 +58,7 @@ void SkyliveX::initialize()
// read messages from plugins and dispatch to others
void
SkyliveX
::
process
()
{
//std::cout << "process" << std::endl;
std
::
string
sarca
(
"ANTANI!"
);
SKMessage
::
SKMessage
sarca
(
"ANTANI!"
);
sendMessage
(
sarca
);
}
...
...
@@ -93,8 +92,8 @@ void SkyliveX::initializePlugin(QObject *plugin, QString filename)
{
// connect signals/slots
connect
(
plugin
,
SIGNAL
(
putMessage
(
std
::
string
)),
this
,
SLOT
(
receiveFromPlugins
(
std
::
string
)));
connect
(
this
,
SIGNAL
(
msgForPlugins
(
std
::
string
)),
plugin
,
SLOT
(
receiveMessage
(
std
::
string
)));
connect
(
plugin
,
SIGNAL
(
putMessage
(
SKMessage
::
SKMessage
)),
this
,
SLOT
(
receiveFromPlugins
(
SKMessage
::
SKMessage
)));
connect
(
this
,
SIGNAL
(
msgForPlugins
(
SKMessage
::
SKMessage
)),
plugin
,
SLOT
(
receiveMessage
(
SKMessage
::
SKMessage
)));
// Move the plugin in it's own thread
QThread
*
consumer
=
new
QThread
();
...
...
@@ -114,7 +113,7 @@ void SkyliveX::initializePlugin(QObject *plugin, QString filename)
}
}
void
SkyliveX
::
sendMessage
(
std
::
string
&
msg
)
void
SkyliveX
::
sendMessage
(
SKMessage
::
SKMessage
&
msg
)
{
//std::cout << "Send To MainWin: " << msg << std::endl;
emit
msgForMainWin
(
msg
);
...
...
@@ -122,12 +121,12 @@ void SkyliveX::sendMessage(std::string &msg)
}
void
SkyliveX
::
receiveFromMainWin
(
std
::
string
&
msg
)
void
SkyliveX
::
receiveFromMainWin
(
SKMessage
::
SKMessage
&
msg
)
{
emit
msgForPlugins
(
msg
);
}
void
SkyliveX
::
receiveFromPlugins
(
std
::
string
msg
)
void
SkyliveX
::
receiveFromPlugins
(
SKMessage
::
SKMessage
msg
)
{
sendMessage
(
msg
);
}
src/skylivex.h
View file @
ee97073f
...
...
@@ -41,6 +41,7 @@
#include "pluginsinterfaces.h"
#include <iostream>
#include <string>
#include "ipcmsg.h"
/*
* class SkyliveX
...
...
@@ -61,18 +62,18 @@ class SkyliveX : public QObject
~
SkyliveX
()
{}
void
loadPlugins
();
void
initializePlugin
(
QObject
*
,
QString
);
void
sendMessage
(
std
::
string
&
msg
);
void
sendMessage
(
SKMessage
::
SKMessage
&
msg
);
public
slots
:
void
initialize
();
void
process
();
void
receiveFromMainWin
(
std
::
string
&
msg
);
void
receiveFromPlugins
(
std
::
string
msg
);
void
receiveFromMainWin
(
SKMessage
::
SKMessage
&
msg
);
void
receiveFromPlugins
(
SKMessage
::
SKMessage
msg
);
signals
:
void
finished
();
void
msgForMainWin
(
std
::
string
&
msg
);
void
msgForPlugins
(
std
::
string
msg
);
void
msgForMainWin
(
SKMessage
::
SKMessage
&
msg
);
void
msgForPlugins
(
SKMessage
::
SKMessage
msg
);
};
#endif
src/skylivex.pro
View file @
ee97073f
SOURCES
=
main
.
cpp
\
mainwin
.
cpp
\
skylivex
.
cpp
skylivex
.
cpp
\
ipcmsg
.
cpp
HEADERS
=
skylivex
.
h
\
mainwin
.
h
\
pluginsinterfaces
.
h
pluginsinterfaces
.
h
\
ipcmsg
.
h
QT
+=
core
network
webkitwidgets
widgets
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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