From: Rafał Długołęcki Date: Thu, 1 Aug 2013 20:42:53 +0000 (+0200) Subject: vlp-7 Documented kernel class. X-Git-Tag: 3.1~7 X-Git-Url: https://git.dlugolecki.net.pl/?p=vlp.git;a=commitdiff_plain;h=ab399101dba6ae75e9bad9d10f8276e2d031a092 vlp-7 Documented kernel class. --- diff --git a/src/kernel/kernel.cpp b/src/kernel/kernel.cpp index 9560890..b5e1cd1 100644 --- a/src/kernel/kernel.cpp +++ b/src/kernel/kernel.cpp @@ -89,13 +89,14 @@ char CharLine[25] = "________________________"; char myargs[5][255]; - -/* --------------- interpreter slot -----------------*/ +/** + * Interpreter slot + */ class InterpEntry { public: - /* INT identifier */ + /** Interpreter identifier */ int ID; - /* Am I remote ? */ + /** Defines if interpreter is remote or not */ bool remote; /* Program name */ char fullname[255]; @@ -106,12 +107,13 @@ public: QSocketNotifier *notify; /* IDs of my remote INT modules */ int RInstances[MAXINSTANCES]; - /* parent INT info */ + /* Parent interpreter info */ ctx_struct p_ctx; }; -/*++++++++++++++++++++++++++++++++++++++++++*/ -/*----------------- connection slot -------------*/ +/** + * Connection slot + */ class ConnectEntry { public: char addr[256]; @@ -121,24 +123,20 @@ public: }; }; -/* ++++++++++++++++++++++++++++++++++++++++++ */ - QApplication *app; - -/* ---------------------------------------------------------- */ -/* KERNEL CLASS DEFINITION */ -/* ---------------------------------------------------------- */ - +/** + * Kernel class + */ class QKernel : public QFrame { Q_OBJECT public: - QMultiLineEdit *desktop; - QMenuBar *bar; + QMultiLineEdit *desktop; + QMenuBar *bar; QPopupMenu *p; QPopupMenu *p1; QPopupMenu *p2; - char progdir[256]; + char progdir[256]; int NodeNumber; int ConType; @@ -216,13 +214,20 @@ private: 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(); } +/** + * Kernel program constructor. + * Prepares everything to work. + */ QKernel::QKernel() { QFont f("Helvetica", 10, QFont::Bold); @@ -294,6 +299,10 @@ QKernel::QKernel() 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); @@ -302,15 +311,19 @@ void QKernel::resizeEvent(QResizeEvent *ev) 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"); } - -/* ########### 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; @@ -409,8 +422,11 @@ void QKernel::LoadConfig(char * fname) config_destroy(&cfg); fclose(file); } -/* +++++++++++++++++++++++++++++++++++++++++++++++ */ +/** + * Executes program. + * Additional window id displayed to set which code to execute. + */ void QKernel::Run_Prog() { int i; @@ -426,6 +442,9 @@ void QKernel::Run_Prog() } } +/** + * Invokes editor program + */ void QKernel::Edit() { char cmd[255]; @@ -434,6 +453,9 @@ void QKernel::Edit() system(cmd); } +/** + * Invokes help program + */ void QKernel::Help() { char cmd[255]; @@ -442,7 +464,9 @@ void QKernel::Help() system(cmd); } - +/** + * Invokes graphics module + */ void QKernel::RunGraphModule(char *sk) { char cmd[255]; @@ -455,8 +479,9 @@ void QKernel::RunGraphModule(char *sk) WriteMessage("Cannot connect GRAPH resources"); } - - +/** + * Invokes net module + */ 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); @@ -532,6 +561,9 @@ void QKernel::Connect() } } +/** + * Disconnects from virtual machine + */ void QKernel::Disconnect() { MESSAGE msg; @@ -544,6 +576,9 @@ void QKernel::Disconnect() write(net_sock, &msg, sizeof(MESSAGE)); } +/** + * Quits process. Closes VLP. Shows additional window to confirm exit. + */ 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); @@ -595,6 +634,9 @@ void QKernel::AddAddress() } } +/** + * Deletes current address from available 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; @@ -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; @@ -702,8 +754,9 @@ void QKernel::KillInterpreter() } } - - +/** + * Sends message to the net module. + */ 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; @@ -874,11 +931,15 @@ void QKernel::IntMessage(int sock) 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; @@ -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) { @@ -910,10 +975,15 @@ void QKernel::SetMessages() p2->setItemChecked(msgid, TRUE); info_messages=TRUE; } - } /* !=NULL */ + } /* 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); @@ -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); @@ -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); @@ -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"); } +/** + * 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; @@ -1162,9 +1250,14 @@ InterpEntry *QKernel::findINTbySocket(int _id) 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; @@ -1174,12 +1267,18 @@ InterpEntry *QKernel::findINTbyID(int _id) 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]; @@ -1280,9 +1379,11 @@ InterpEntry *QKernel::RunIntModule(char *ss, int r) 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; @@ -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; @@ -1377,7 +1477,9 @@ void QKernel::CloseInstances(InterpEntry *e) } } - +/** + * Displays information about virtual machine + */ void QKernel::Info() { MESSAGE m; @@ -1392,14 +1494,21 @@ void QKernel::Info() #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; - for(i=0; i < 5; i++) { + for(i = 0; i < 5; 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);