dlugolecki.net.pl
Dziennik
Polecane
Software
projects
/
vlp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
392abcf
)
vlp-7 Documented kernel class.
author
Rafał Długołęcki
<kontakt@dlugolecki.net.pl>
Thu, 1 Aug 2013 20:42:53 +0000
(22:42 +0200)
committer
Rafał Długołęcki
<kontakt@dlugolecki.net.pl>
Thu, 1 Aug 2013 20:42:53 +0000
(22:42 +0200)
src/kernel/kernel.cpp
patch
|
blob
|
history
diff --git
a/src/kernel/kernel.cpp
b/src/kernel/kernel.cpp
index 95608909f8cac15cb4cf9b3cc3e69996bbf2d263..b5e1cd168c7f490955a39f0b21e5b83601f16483 100644
(file)
--- a/
src/kernel/kernel.cpp
+++ b/
src/kernel/kernel.cpp
@@
-89,13
+89,14
@@
char CharLine[25] = "________________________";
char myargs[5][255];
char CharLine[25] = "________________________";
char myargs[5][255];
-
-/* --------------- interpreter slot -----------------*/
+/**
+ * Interpreter slot
+ */
class InterpEntry {
public:
class InterpEntry {
public:
- /*
INT
identifier */
+ /*
* Interpreter
identifier */
int ID;
int ID;
- /*
Am I remote ?
*/
+ /*
* Defines if interpreter is remote or not
*/
bool remote;
/* Program name */
char fullname[255];
bool remote;
/* Program name */
char fullname[255];
@@
-106,12
+107,13
@@
public:
QSocketNotifier *notify;
/* IDs of my remote INT modules */
int RInstances[MAXINSTANCES];
QSocketNotifier *notify;
/* IDs of my remote INT modules */
int RInstances[MAXINSTANCES];
- /*
parent INT
info */
+ /*
Parent interpreter
info */
ctx_struct p_ctx;
};
ctx_struct p_ctx;
};
-/*++++++++++++++++++++++++++++++++++++++++++*/
-/*----------------- connection slot -------------*/
+/**
+ * Connection slot
+ */
class ConnectEntry {
public:
char addr[256];
class ConnectEntry {
public:
char addr[256];
@@
-121,24
+123,20
@@
public:
};
};
};
};
-/* ++++++++++++++++++++++++++++++++++++++++++ */
-
QApplication *app;
QApplication *app;
-
-/* ---------------------------------------------------------- */
-/* KERNEL CLASS DEFINITION */
-/* ---------------------------------------------------------- */
-
+/**
+ * Kernel class
+ */
class QKernel : public QFrame {
Q_OBJECT
public:
class QKernel : public QFrame {
Q_OBJECT
public:
- QMultiLineEdit *desktop;
- QMenuBar *bar;
+ QMultiLineEdit *desktop;
+ QMenuBar *bar;
QPopupMenu *p;
QPopupMenu *p1;
QPopupMenu *p2;
QPopupMenu *p;
QPopupMenu *p1;
QPopupMenu *p2;
- char progdir[256];
+ char progdir[256];
int NodeNumber;
int ConType;
int NodeNumber;
int ConType;
@@
-216,13
+214,20
@@
private:
void RemoteInstance(InterpEntry*, int);
void CloseInstances(InterpEntry*);
};
void RemoteInstance(InterpEntry*, int);
void CloseInstances(InterpEntry*);
};
-/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-void QKernel::closeEvent (QCloseEvent * e)
+/**
+ * Event invoked on program close.
+ * @copydoc QWidget::closeEvent(QCloseEvent*)
+ */
+void QKernel::closeEvent(QCloseEvent * e)
{
e->ignore();
}
{
e->ignore();
}
+/**
+ * Kernel program constructor.
+ * Prepares everything to work.
+ */
QKernel::QKernel()
{
QFont f("Helvetica", 10, QFont::Bold);
QKernel::QKernel()
{
QFont f("Helvetica", 10, QFont::Bold);
@@
-294,6
+299,10
@@
QKernel::QKernel()
connect(Net_Notify, SIGNAL(activated(int)), this, SLOT(NetMessage()));
}
connect(Net_Notify, SIGNAL(activated(int)), this, SLOT(NetMessage()));
}
+/**
+ * Event invoked on resizing kernel application window.
+ * @copydoc QWidget::resizeEvent(QResizeEvent*)
+ */
void QKernel::resizeEvent(QResizeEvent *ev)
{
QFrame::resizeEvent(ev);
void QKernel::resizeEvent(QResizeEvent *ev)
{
QFrame::resizeEvent(ev);
@@
-302,15
+311,19
@@
void QKernel::resizeEvent(QResizeEvent *ev)
height() - bar->height());
}
height() - bar->height());
}
+/**
+ * Displays window with information about not implemented functionality.
+ */
void QKernel::n_impl()
{
QMessageBox::information(this, "Function info", "This function is not "
"implemented yet...", "Ok");
}
void QKernel::n_impl()
{
QMessageBox::information(this, "Function info", "This function is not "
"implemented yet...", "Ok");
}
-
-/* ########### load configuration from file ############# */
-
+/**
+ * Loads configuration from the given file.
+ * @param fname Filename of the configuration file.
+ */
void QKernel::LoadConfig(char * fname)
{
config_t cfg;
void QKernel::LoadConfig(char * fname)
{
config_t cfg;
@@
-409,8
+422,11
@@
void QKernel::LoadConfig(char * fname)
config_destroy(&cfg);
fclose(file);
}
config_destroy(&cfg);
fclose(file);
}
-/* +++++++++++++++++++++++++++++++++++++++++++++++ */
+/**
+ * Executes program.
+ * Additional window id displayed to set which code to execute.
+ */
void QKernel::Run_Prog()
{
int i;
void QKernel::Run_Prog()
{
int i;
@@
-426,6
+442,9
@@
void QKernel::Run_Prog()
}
}
}
}
+/**
+ * Invokes editor program
+ */
void QKernel::Edit()
{
char cmd[255];
void QKernel::Edit()
{
char cmd[255];
@@
-434,6
+453,9
@@
void QKernel::Edit()
system(cmd);
}
system(cmd);
}
+/**
+ * Invokes help program
+ */
void QKernel::Help()
{
char cmd[255];
void QKernel::Help()
{
char cmd[255];
@@
-442,7
+464,9
@@
void QKernel::Help()
system(cmd);
}
system(cmd);
}
-
+/**
+ * Invokes graphics module
+ */
void QKernel::RunGraphModule(char *sk)
{
char cmd[255];
void QKernel::RunGraphModule(char *sk)
{
char cmd[255];
@@
-455,8
+479,9
@@
void QKernel::RunGraphModule(char *sk)
WriteMessage("Cannot connect GRAPH resources");
}
WriteMessage("Cannot connect GRAPH resources");
}
-
-
+/**
+ * Invokes net module
+ */
void QKernel::RunNetModule()
{
struct sockaddr_un svr;
void QKernel::RunNetModule()
{
struct sockaddr_un svr;
@@
-502,6
+527,10
@@
void QKernel::RunNetModule()
}
}
}
}
+/**
+ * Connects to the specified address
+ * Additional window is displayed to connect to the specified address
+ */
void QKernel::Connect()
{
QDialog d(this, "", TRUE);
void QKernel::Connect()
{
QDialog d(this, "", TRUE);
@@
-532,6
+561,9
@@
void QKernel::Connect()
}
}
}
}
+/**
+ * Disconnects from virtual machine
+ */
void QKernel::Disconnect()
{
MESSAGE msg;
void QKernel::Disconnect()
{
MESSAGE msg;
@@
-544,6
+576,9
@@
void QKernel::Disconnect()
write(net_sock, &msg, sizeof(MESSAGE));
}
write(net_sock, &msg, sizeof(MESSAGE));
}
+/**
+ * Quits process. Closes VLP. Shows additional window to confirm exit.
+ */
void QKernel::QuitProc()
{
MESSAGE msg;
void QKernel::QuitProc()
{
MESSAGE msg;
@@
-568,6
+603,10
@@
void QKernel::QuitProc()
}
}
}
}
+/**
+ * Adds IP address to the configuration.
+ * Additional window is displayed to add address to the list
+ */
void QKernel::AddAddress()
{
QDialog d(this, "", TRUE);
void QKernel::AddAddress()
{
QDialog d(this, "", TRUE);
@@
-595,6
+634,9
@@
void QKernel::AddAddress()
}
}
}
}
+/**
+ * Deletes current address from available connections.
+ */
void QKernel::DelAddress()
{
if (connections) {
void QKernel::DelAddress()
{
if (connections) {
@@
-603,6
+645,11
@@
void QKernel::DelAddress()
}
}
}
}
+/**
+ * Sends message to node.
+ * Additional window is displayed to set Node Number of node where send message,
+ * and textfield to enter message.
+ */
void QKernel::MessageToNode()
{
QDialog *dlg;
void QKernel::MessageToNode()
{
QDialog *dlg;
@@
-656,6
+703,11
@@
void QKernel::MessageToNode()
}
}
}
}
+/**
+ * Kills interpreter.
+ * Additional window is displayed to get ID of interpreter which should be
+ * killed.
+ */
void QKernel::KillInterpreter()
{
QDialog *dlg;
void QKernel::KillInterpreter()
{
QDialog *dlg;
@@
-702,8
+754,9
@@
void QKernel::KillInterpreter()
}
}
}
}
-
-
+/**
+ * Sends message to the net module.
+ */
void QKernel::NetMessage()
{
void QKernel::NetMessage()
{
@@
-813,6
+866,10
@@
void QKernel::NetMessage()
}
}
}
}
+/**
+ * Sends message to the interpreter program.
+ * @param sock Interpreter socket to whom the message will be send.
+ */
void QKernel::IntMessage(int sock)
{
MESSAGE msg;
void QKernel::IntMessage(int sock)
{
MESSAGE msg;
@@
-874,11
+931,15
@@
void QKernel::IntMessage(int sock)
write(sock, &msg, sizeof(MESSAGE));
break;
};
write(sock, &msg, sizeof(MESSAGE));
break;
};
- break;
/* switch param.pword[0] */
- }
/* switch type */
- }
/* if */
+ break;
+ }
+ }
}
}
+/**
+ * Writes message to kernel logger.
+ * @parame msg String with message to log
+ */
void QKernel::WriteMessage(char *msg)
{
int x;
void QKernel::WriteMessage(char *msg)
{
int x;
@@
-900,6
+961,10
@@
void QKernel::WriteMessage(char *msg)
}
}
}
}
+/**
+ * Adds checkbox to menu item. It it is checked additional info messages are
+ * shown.
+ */
void QKernel::SetMessages()
{
if (p2 != NULL) {
void QKernel::SetMessages()
{
if (p2 != NULL) {
@@
-910,10
+975,15
@@
void QKernel::SetMessages()
p2->setItemChecked(msgid, TRUE);
info_messages=TRUE;
}
p2->setItemChecked(msgid, TRUE);
info_messages=TRUE;
}
- }
/* !=NULL */
+ }
/* bar->repaint(); */
}
/* bar->repaint(); */
}
+/**
+ * Allows to set options in GUI window.
+ * Additional window is displayed to set kernel options which are saved in
+ * vlp.cfg file in kernel executable directory.
+ */
void QKernel::SetOptions()
{
QDialog dlg(this, "Options", TRUE);
void QKernel::SetOptions()
{
QDialog dlg(this, "Options", TRUE);
@@
-1052,6
+1122,11
@@
void QKernel::SetOptions()
}
}
}
}
+/**
+ * Locks kernel program.
+ * Additional window is displayed to enter password and retype it. If both are
+ * same kernel window is locked.
+ */
void QKernel::LockConsole()
{
QDialog d(this, "Enter password", TRUE);
void QKernel::LockConsole()
{
QDialog d(this, "Enter password", TRUE);
@@
-1104,6
+1179,11
@@
void QKernel::LockConsole()
}
}
}
}
+/**
+ * Unlocks kernel program.
+ * Additional window is displayed to enter password. If it is correct, kernel
+ * window is unlocked
+ */
void QKernel::UnlockConsole()
{
QDialog d(this, "Enter password", TRUE);
void QKernel::UnlockConsole()
{
QDialog d(this, "Enter password", TRUE);
@@
-1146,11
+1226,19
@@
void QKernel::UnlockConsole()
}
}
}
}
+/**
+ * Writes init message in kernel
+ */
void QKernel::InitMessage()
{
WriteMessage("\n Virtual LOGLAN Processor - ver 1.9: READY \n");
}
void QKernel::InitMessage()
{
WriteMessage("\n Virtual LOGLAN Processor - ver 1.9: READY \n");
}
+/**
+ * Finds Interpreter by its socket
+ * @param _id ID of the socket
+ * @return returns pointer to the found interpreter slot
+ */
InterpEntry *QKernel::findINTbySocket(int _id)
{
InterpEntry *pom;
InterpEntry *QKernel::findINTbySocket(int _id)
{
InterpEntry *pom;
@@
-1162,9
+1250,14
@@
InterpEntry *QKernel::findINTbySocket(int _id)
pom = Interpreters.next();
}
pom = Interpreters.next();
}
- return
(pom)
;
+ return
pom
;
}
}
+/**
+ * Finds Interpreter by its ID.
+ * @param _id ID of the interpreter
+ * @return returns pointer to the found interpreter slot
+ */
InterpEntry *QKernel::findINTbyID(int _id)
{
InterpEntry *pom;
InterpEntry *QKernel::findINTbyID(int _id)
{
InterpEntry *pom;
@@
-1174,12
+1267,18
@@
InterpEntry *QKernel::findINTbyID(int _id)
break;
pom = Interpreters.next();
}
break;
pom = Interpreters.next();
}
- return
(pom)
;
+ return
pom
;
}
}
-/* ------------------ Connect INT module -----------------*/
-
+/**
+ * Connects interpreter
+ * @param ss full filepath with filename but without extension of the loglan
+ * program to run.
+ * @param r Interpreter execution mode. 0 if it will be local instance, 1 if
+ * remote
+ * @return Returns pointer to newly created interpreter slot, or NULL on error.
+ */
InterpEntry *QKernel::RunIntModule(char *ss, int r)
{
char a[256], b[255];
InterpEntry *QKernel::RunIntModule(char *ss, int r)
{
char a[256], b[255];
@@
-1280,9
+1379,11
@@
InterpEntry *QKernel::RunIntModule(char *ss, int r)
return newINT;
}
return newINT;
}
-/* ---------------------------------------------------------*/
-/* Allocate remote instance */
-
+/**
+ * Allocates remote instance of interpreter
+ * @param interp Interpreter slot
+ * @param on Node Number
+ */
void QKernel::RemoteInstance(InterpEntry *interp, int on)
{
MESSAGE m;
void QKernel::RemoteInstance(InterpEntry *interp, int on)
{
MESSAGE m;
@@
-1352,10
+1453,9
@@
void QKernel::RemoteInstance(InterpEntry *interp, int on)
}
}
}
}
-
-/*-----------------------------------------------*/
-/* Close all remote instances */
-
+/**
+ * Closes all remote instances
+ */
void QKernel::CloseInstances(InterpEntry *e)
{
MESSAGE msg;
void QKernel::CloseInstances(InterpEntry *e)
{
MESSAGE msg;
@@
-1377,7
+1477,9
@@
void QKernel::CloseInstances(InterpEntry *e)
}
}
}
}
-
+/**
+ * Displays information about virtual machine
+ */
void QKernel::Info()
{
MESSAGE m;
void QKernel::Info()
{
MESSAGE m;
@@
-1392,14
+1494,21
@@
void QKernel::Info()
#include "kernel.moc"
#include "kernel.moc"
+/**
+ * Program main function
+ * All program arguments but the first one (argv[0]: program name) are saved and
+ * passed to all dependent programs on their invocation.
+ * @param argc Number of program arguments
+ * @param argv Program arguments
+ */
int main(int argc, char **argv)
{
int i;
int main(int argc, char **argv)
{
int i;
- for(i
=
0; i < 5; i++) {
+ for(i
=
0; i < 5; i++) {
strcpy(myargs[i], "");
}
strcpy(myargs[i], "");
}
- for(i
=
1; i < argc; i++) {
- strcpy(myargs[i
-
1], argv[i]);
+ for(i
=
1; i < argc; i++) {
+ strcpy(myargs[i
-
1], argv[i]);
}
app = new QApplication(argc, argv);
}
app = new QApplication(argc, argv);