/* --------------- interpreter slot -----------------*/
-class InterpEntry
-{
+class InterpEntry {
public:
- int ID; // INT identifier
- bool remote; // Am I remote ?
- char fullname[255],shortname[255]; // Program name
- int sock; // Socket
- QSocketNotifier *notify;
- int RInstances[MAXINSTANCES]; // IDs of my remote INT modules
- ctx_struct p_ctx; // parent INT info
+ int ID; // INT identifier
+ bool remote; // Am I remote ?
+ char fullname[255],shortname[255]; // Program name
+ int sock; // Socket
+ QSocketNotifier *notify;
+ int RInstances[MAXINSTANCES]; // IDs of my remote INT modules
+ ctx_struct p_ctx; // parent INT info
};
/*++++++++++++++++++++++++++++++++++++++++++*/
/*----------------- connection slot -------------*/
-class ConnectEntry
-{
+class ConnectEntry {
public:
- char addr[256];
- ConnectEntry(char *s) {strcpy(addr,s);};
+ char addr[256];
+ ConnectEntry(char *s) {strcpy(addr,s);};
};
/* ++++++++++++++++++++++++++++++++++++++++++ */
/* KERNEL CLASS DEFINITION */
/* ---------------------------------------------------------- */
-class QKernel : public QFrame
-{
- Q_OBJECT
+class QKernel : public QFrame {
+ Q_OBJECT
public:
+ QMultiLineEdit *desktop;
+ QMenuBar *bar;
+ QPopupMenu *p,*p1,*p2;
+ char progdir[256];
+ int NodeNumber,ConType;
- QMultiLineEdit *desktop;
- QMenuBar *bar;
- QPopupMenu *p,*p1,*p2;
- char progdir[256];
- int NodeNumber,ConType;
-
-
- QKernel();
+ QKernel();
+ virtual void resizeEvent( QResizeEvent *ev );
- virtual void resizeEvent( QResizeEvent *ev );
-
- void WriteMessage(char* msg);
- void InitMessage();
-
+ void WriteMessage(char* msg);
+ void InitMessage();
public slots:
-
- void n_impl();
- void Run_Prog();
- void Edit();
- void Help();
- void SetOptions();
- void AddAddress();
- void DelAddress();
- void LockConsole();
- void UnlockConsole();
- void MessageToNode();
- void QuitProc();
- void NetMessage();
- void IntMessage(int);
- void KillInterpreter();
- void Disconnect();
- void SetMessages();
- void Connect();
- void Info();
+ void n_impl();
+ void Run_Prog();
+ void Edit();
+ void Help();
+ void SetOptions();
+ void AddAddress();
+ void DelAddress();
+ void LockConsole();
+ void UnlockConsole();
+ void MessageToNode();
+ void QuitProc();
+ void NetMessage();
+ void IntMessage(int);
+ void KillInterpreter();
+ void Disconnect();
+ void SetMessages();
+ void Connect();
+ void Info();
protected:
- virtual void closeEvent ( QCloseEvent * e );
+ virtual void closeEvent ( QCloseEvent * e );
private:
- QList<InterpEntry> Interpreters;
- QList<ConnectEntry> ConnectList;
- QListBox *connections;
- int Tasks; // number of working interpreters
- int ActiveConnections; // number of connected VLPs
- bool LOCKED,synchro,wait_for_info;
- char LockPasswd[25];
- int lockid,unlockid,qid,cwid,
- optid,prid,mid,msgid,toolsid,hid;
- int net_sock;
- int freeINTid;
- QSocketNotifier *Net_Notify;
- char HomeDir[255];
- bool info_messages;
-
-
- void LoadConfig(char *);
- void RunGraphModule(char*);
- void RunNetModule();
- InterpEntry *findINTbySocket(int);
- InterpEntry *findINTbyID(int);
- InterpEntry *RunIntModule(char *ss,int r);
- void RemoteInstance(InterpEntry*,int);
- void CloseInstances(InterpEntry*);
-
-
+ QList<InterpEntry> Interpreters;
+ QList<ConnectEntry> ConnectList;
+ QListBox *connections;
+ int Tasks; // number of working interpreters
+ int ActiveConnections; // number of connected VLPs
+ bool LOCKED,synchro,wait_for_info;
+ char LockPasswd[25];
+ int lockid,unlockid,qid,cwid,
+ optid,prid,mid,msgid,toolsid,hid;
+ int net_sock;
+ int freeINTid;
+ QSocketNotifier *Net_Notify;
+ char HomeDir[255];
+ bool info_messages;
+
+ void LoadConfig(char *);
+ void RunGraphModule(char*);
+ void RunNetModule();
+ InterpEntry *findINTbySocket(int);
+ InterpEntry *findINTbyID(int);
+ InterpEntry *RunIntModule(char *ss,int r);
+ void RemoteInstance(InterpEntry*,int);
+ void CloseInstances(InterpEntry*);
};
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
-void QKernel::closeEvent ( QCloseEvent * e ) {
- e->ignore();
+void QKernel::closeEvent ( QCloseEvent * e )
+{
+ e->ignore();
}
QKernel::QKernel()
{
- QFont f("Helvetica",10,QFont::Bold);
- QFont f1("Helvetica",10,QFont::Normal);
- QFont f2("Times Roman",10,QFont::Normal);
- QDir q(REMOTE_PATH);
- char ss[255];
-
- if (!q.exists())
- {
- sprintf(ss,"mkdir %s",REMOTE_PATH);
- system(ss);
- }
-
- info_messages=TRUE;
- wait_for_info=FALSE;
-
- setCaption("Virtual LOGLAN Processor");
- setBackgroundColor(white);
-
- bar = new QMenuBar(this);
- bar->setFont(f);
- p = new QPopupMenu();
- p->setFont(f2);
- p->insertItem("Execute",this,SLOT(Run_Prog()));
- p->insertItem("Kill",this,SLOT(KillInterpreter()));
- prid = bar->insertItem("&Program",p);
- p1 = new QPopupMenu();
- p1->insertItem("Message",this,SLOT(MessageToNode()));
- p1->insertSeparator();
- p1->insertItem("Connect",this,SLOT(Connect()));
- p1->insertItem("Disconnect",this,SLOT(Disconnect()));
- p1->insertItem("Info",this,SLOT(Info()));
- p1->setFont(f);
- mid = bar->insertItem("&Machine",p1);
-
- p2 = new QPopupMenu();
- cwid = p2->insertItem("Editor",this,SLOT(Edit()));
- hid = p2->insertItem("Help",this,SLOT(Help()));
- p2->insertSeparator();
- optid = p2->insertItem("Options",this,SLOT(SetOptions()));
- msgid = p2->insertItem("Info messages",this,SLOT(SetMessages()));
- p2->setItemChecked(msgid,TRUE);
- p2->insertSeparator();
- lockid = p2->insertItem("Lock console",this,SLOT(LockConsole()));
- unlockid = p2->insertItem("Unlock console",this,SLOT(UnlockConsole()));
- p2->setItemEnabled(unlockid,FALSE);
- LOCKED = FALSE;
- p2->setFont(f);
- toolsid = bar->insertItem("&Tools",p2);
-
- qid = bar->insertItem("&Quit",this,SLOT(QuitProc()));
- p->setFont(f);
-
- desktop = new QMultiLineEdit(this,"desktop");
- desktop->setAutoUpdate(TRUE);
- desktop->setReadOnly(TRUE);
- desktop->setFont(f1);
-
- resize(400,200);
- Tasks = 0;
- freeINTid = 1;
- ActiveConnections = 0;
- strcpy(LockPasswd,"");
- LoadConfig("vlp.cfg");
- RunNetModule();
-
- Net_Notify = new QSocketNotifier(net_sock,QSocketNotifier::Read,this);
- connect(Net_Notify,SIGNAL(activated(int)),this,SLOT(NetMessage()));
-
+ QFont f("Helvetica",10,QFont::Bold);
+ QFont f1("Helvetica",10,QFont::Normal);
+ QFont f2("Times Roman",10,QFont::Normal);
+ QDir q(REMOTE_PATH);
+ char ss[255];
+
+ if (!q.exists()) {
+ sprintf(ss,"mkdir %s",REMOTE_PATH);
+ system(ss);
+ }
+
+ info_messages=TRUE;
+ wait_for_info=FALSE;
+
+ setCaption("Virtual LOGLAN Processor");
+ setBackgroundColor(white);
+
+ bar = new QMenuBar(this);
+ bar->setFont(f);
+ p = new QPopupMenu();
+ p->setFont(f2);
+ p->insertItem("Execute",this,SLOT(Run_Prog()));
+ p->insertItem("Kill",this,SLOT(KillInterpreter()));
+ prid = bar->insertItem("&Program",p);
+ p1 = new QPopupMenu();
+ p1->insertItem("Message",this,SLOT(MessageToNode()));
+ p1->insertSeparator();
+ p1->insertItem("Connect",this,SLOT(Connect()));
+ p1->insertItem("Disconnect",this,SLOT(Disconnect()));
+ p1->insertItem("Info",this,SLOT(Info()));
+ p1->setFont(f);
+ mid = bar->insertItem("&Machine",p1);
+
+ p2 = new QPopupMenu();
+ cwid = p2->insertItem("Editor",this,SLOT(Edit()));
+ hid = p2->insertItem("Help",this,SLOT(Help()));
+ p2->insertSeparator();
+ optid = p2->insertItem("Options",this,SLOT(SetOptions()));
+ msgid = p2->insertItem("Info messages",this,SLOT(SetMessages()));
+ p2->setItemChecked(msgid,TRUE);
+ p2->insertSeparator();
+ lockid = p2->insertItem("Lock console",this,SLOT(LockConsole()));
+ unlockid = p2->insertItem("Unlock console",this,SLOT(UnlockConsole()));
+ p2->setItemEnabled(unlockid,FALSE);
+ LOCKED = FALSE;
+ p2->setFont(f);
+ toolsid = bar->insertItem("&Tools",p2);
+
+ qid = bar->insertItem("&Quit",this,SLOT(QuitProc()));
+ p->setFont(f);
+
+ desktop = new QMultiLineEdit(this,"desktop");
+ desktop->setAutoUpdate(TRUE);
+ desktop->setReadOnly(TRUE);
+ desktop->setFont(f1);
+
+ resize(400,200);
+ Tasks = 0;
+ freeINTid = 1;
+ ActiveConnections = 0;
+ strcpy(LockPasswd,"");
+ LoadConfig("vlp.cfg");
+ RunNetModule();
+
+ Net_Notify = new QSocketNotifier(net_sock,QSocketNotifier::Read,this);
+ connect(Net_Notify,SIGNAL(activated(int)),this,SLOT(NetMessage()));
}
-
void QKernel::resizeEvent( QResizeEvent *ev )
{
- QFrame::resizeEvent(ev);
- if ( desktop )
- desktop->setGeometry( 0,bar->height(), width(), height() - bar->height() );
+ QFrame::resizeEvent(ev);
+ if ( desktop )
+ desktop->setGeometry(0, bar->height(), width(), height() - bar->height());
}
-
-
-
void QKernel::n_impl()
{
QMessageBox::information(this,"Function info","This function is not implemented yet...","Ok");
void QKernel::LoadConfig(char * fname)
{
- config_t cfg;
- config_setting_t *setting;
- const char *str;
-
- /* Hack for checking if file exists without using external libs.*/
- FILE * file = fopen(fname, "rt");
- if (!file) {
- fprintf(stderr, "Error: Cannot load configuration file %s!\n", fname);
- exit(3);
- }
- /* File exists, so file has been locked. Release it. */
-
- config_init(&cfg);
-
- /* Read the file. If there is an error, report it and exit. */
- if(!config_read(&cfg, file))
- {
- fprintf(stderr, "%s! In file %s, line %d\n",
- config_error_text(&cfg),
- config_error_file(&cfg),
- config_error_line(&cfg));
- config_destroy(&cfg);
- fclose(file);
- exit(3);/* from original code. */
- }
-
- setting = config_lookup(&cfg, "node_number");
- if(setting) {
- NodeNumber = config_setting_get_int(setting);
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "node_number");
- config_destroy(&cfg);
- fclose(file);
- exit(3);
- }
-
- setting = config_lookup(&cfg, "type");
- if(setting) {
- ConType = (strcmp(config_setting_get_string(setting), "explicit") == 0) ? 1 : 2;
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "type");
- }
-
- setting = config_lookup(&cfg, "host");
- if(setting) {
- switch(config_setting_type(setting)) {
- case CONFIG_TYPE_STRING:/* TODO: Deprecated. Made for back compatibility. */
- ConnectList.append(new ConnectEntry((char*)config_setting_get_string(setting)));
- break;
- case CONFIG_TYPE_ARRAY:
- for (int i = 0; i < config_setting_length(setting); i++) {
- ConnectList.append(new ConnectEntry((char*)config_setting_get_string_elem(setting, i)));
- }
- break;
- default:
- fprintf(stderr, "%s! In file %s, bad entry type for %s. Will not be read.\n",
- "Error",
- fname,
- "host");
- }
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "host");
- }
-
- setting = config_lookup(&cfg, "progdir");
- if(setting){
- strncpy(progdir, config_setting_get_string(setting), 256);
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "progdir");
- }
-
- setting = config_lookup(&cfg, "homedir");
- if(setting) {
- strncpy(HomeDir, config_setting_get_string(setting), 255);
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "homedir");
- }
-
- config_destroy(&cfg);
- fclose(file);
+ config_t cfg;
+ config_setting_t *setting;
+ const char *str;
+
+ /* Hack for checking if file exists without using external libs.*/
+ FILE * file = fopen(fname, "rt");
+ if (!file) {
+ fprintf(stderr, "Error: Cannot load configuration file %s!\n", fname);
+ exit(3);
+ }
+ /* File exists, so file has been locked. Release it. */
+
+ config_init(&cfg);
+
+ /* Read the file. If there is an error, report it and exit. */
+ if(!config_read(&cfg, file)) {
+ fprintf(stderr, "%s! In file %s, line %d\n",
+ config_error_text(&cfg),
+ config_error_file(&cfg),
+ config_error_line(&cfg));
+ config_destroy(&cfg);
+ fclose(file);
+ exit(3);/* from original code. */
+ }
+
+ setting = config_lookup(&cfg, "node_number");
+ if(setting) {
+ NodeNumber = config_setting_get_int(setting);
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "node_number");
+ config_destroy(&cfg);
+ fclose(file);
+ exit(3);
+ }
+
+ setting = config_lookup(&cfg, "type");
+ if(setting) {
+ ConType = (strcmp(config_setting_get_string(setting), "explicit") == 0) ? 1 : 2;
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "type");
+ }
+
+ setting = config_lookup(&cfg, "host");
+ if(setting) {
+ switch(config_setting_type(setting)) {
+ case CONFIG_TYPE_STRING:/* TODO: Deprecated. Made for back compatibility. */
+ ConnectList.append(new ConnectEntry((char*)config_setting_get_string(setting)));
+ break;
+ case CONFIG_TYPE_ARRAY:
+ for (int i = 0; i < config_setting_length(setting); i++) {
+ ConnectList.append(new ConnectEntry((char*)config_setting_get_string_elem(setting, i)));
+ }
+ break;
+ default:
+ fprintf(stderr, "%s! In file %s, bad entry type for %s. Will not be read.\n",
+ "Error",
+ fname,
+ "host");
+ }
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "host");
+ }
+
+ setting = config_lookup(&cfg, "progdir");
+ if(setting){
+ strncpy(progdir, config_setting_get_string(setting), 256);
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "progdir");
+ }
+
+ setting = config_lookup(&cfg, "homedir");
+ if(setting) {
+ strncpy(HomeDir, config_setting_get_string(setting), 255);
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "homedir");
+ }
+
+ config_destroy(&cfg);
+ fclose(file);
}
/* +++++++++++++++++++++++++++++++++++++++++++++++ */
-
void QKernel::Run_Prog()
{
- int i;
- QString s(QFileDialog::getOpenFileName(progdir,"*.log",this));
- if ( !s.isNull())
- {
- i = s.find(".log");
- if (i>0) s.remove(i,4);
- RunIntModule((char*)s.ascii(),0);
- }
+ int i;
+ QString s(QFileDialog::getOpenFileName(progdir, "*.log", this));
+
+ if ( !s.isNull()) {
+ i = s.find(".log");
+
+ if (i>0)
+ s.remove(i,4);
+
+ RunIntModule((char*)s.ascii(),0);
+ }
}
void QKernel::Edit()
{
- char cmd[255];
- sprintf(cmd,"%s/modules/logedit %s %s %s %s %s %s &",HomeDir,HomeDir,
- myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
- system(cmd);
+ char cmd[255];
+ sprintf(cmd, "%s/modules/logedit %s %s %s %s %s %s &", HomeDir, HomeDir,
+ myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
+ system(cmd);
}
void QKernel::Help()
{
- char cmd[255];
- sprintf(cmd,"%s/modules/loghelp %s/doc %s %s %s %s %s &",HomeDir,HomeDir,
- myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
- system(cmd);
+ char cmd[255];
+ sprintf(cmd, "%s/modules/loghelp %s/doc %s %s %s %s %s &", HomeDir, HomeDir,
+ myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
+ system(cmd);
}
void QKernel::RunGraphModule(char *sk)
{
- char cmd[255];
+ char cmd[255];
-
- sprintf(cmd,"%s/modules/loggraph %s %s %s %s %s %s",HomeDir,sk,
- myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
- strcat(cmd," &");
+ sprintf(cmd,"%s/modules/loggraph %s %s %s %s %s %s",HomeDir,sk,
+ myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
+ strcat(cmd," &");
- if (system(cmd)!=0)
- WriteMessage("Cannot connect GRAPH resources");
-
+ if (system(cmd)!=0)
+ WriteMessage("Cannot connect GRAPH resources");
}
void QKernel::RunNetModule()
{
- struct sockaddr_un svr;
- int len,on;
- int sock;
- char cmd[255];
-
-
- sprintf(cmd,"%s/modules/lognet %s %s %s %s %s %s",HomeDir,NPATH,
- myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
- strcat(cmd," &");
-
- /* -------- socket for NET module -------- */
- unlink(NPATH);
- sock = socket(AF_UNIX,SOCK_STREAM,0);
- bzero(&svr,sizeof(svr));
- svr.sun_family = AF_UNIX;
- strcpy(svr.sun_path,NPATH);
- len = strlen(svr.sun_path)+sizeof(svr.sun_family);
- bind(sock,(struct sockaddr*)&svr, len);
- listen(sock,5);
-
- if ( system(cmd) == 0)
- {
- net_sock = accept(sock,(struct sockaddr*)0,(unsigned int*)0);
- // close(sock);
- if (net_sock != 0)
- {
- WriteMessage("NETWORK successfully connected");
- fcntl(net_sock,F_SETFL, O_NONBLOCK|fcntl(net_sock,F_GETFL,0));
- on=1;
- setsockopt(net_sock,IPPROTO_TCP,TCP_NODELAY,(char*)&on,sizeof(on));
- }
- else
- {
- WriteMessage("Cannot connect NETWORK resources");
- WriteMessage("Exiting...");
- sleep(2);
- QuitProc();
- }
- }/* system OK */
- else
- {
- WriteMessage("Cannot connect NETWORK resources");
- WriteMessage("Exiting...");
- sleep(2);
- QuitProc();
- }
-
+ struct sockaddr_un svr;
+ int len,on;
+ int sock;
+ char cmd[255];
+ sprintf(cmd, "%s/modules/lognet %s %s %s %s %s %s", HomeDir, NPATH,
+ myargs[0],myargs[1],myargs[2],myargs[3],myargs[4]);
+ strcat(cmd," &");
+
+ /* -------- socket for NET module -------- */
+ unlink(NPATH);
+ sock = socket(AF_UNIX,SOCK_STREAM,0);
+ bzero(&svr,sizeof(svr));
+ svr.sun_family = AF_UNIX;
+ strcpy(svr.sun_path,NPATH);
+ len = strlen(svr.sun_path)+sizeof(svr.sun_family);
+ bind(sock,(struct sockaddr*)&svr, len);
+ listen(sock,5);
+
+ if(system(cmd) == 0) {
+ net_sock = accept(sock,(struct sockaddr*)0,(unsigned int*)0);
+ // close(sock);
+ if (net_sock != 0) {
+ WriteMessage("NETWORK successfully connected");
+ fcntl(net_sock,F_SETFL, O_NONBLOCK|fcntl(net_sock,F_GETFL,0));
+ on=1;
+ setsockopt(net_sock,IPPROTO_TCP,TCP_NODELAY,(char*)&on,sizeof(on));
+ } else {
+ WriteMessage("Cannot connect NETWORK resources");
+ WriteMessage("Exiting...");
+ sleep(2);
+ QuitProc();
+ }
+ /* system OK */
+ } else {
+ WriteMessage("Cannot connect NETWORK resources");
+ WriteMessage("Exiting...");
+ sleep(2);
+ QuitProc();
+ }
}
-
void QKernel::Connect()
{
- QDialog d(this,"",TRUE);
- QLabel lab(&d,"IP Address:");
- QLineEdit ed(&d,"");
- QPushButton ob(&d,""),cb(&d,"");
- MESSAGE m;
-
- d.setFont(QFont("Helvetica",12,QFont::Bold));
- ob.setGeometry( 30, 60, 80, 30 );
+ QDialog d(this,"",TRUE);
+ QLabel lab(&d,"IP Address:");
+ QLineEdit ed(&d,"");
+ QPushButton ob(&d,""),cb(&d,"");
+ MESSAGE m;
+
+ d.setFont(QFont("Helvetica",12,QFont::Bold));
+ ob.setGeometry( 30, 60, 80, 30 );
ob.setText( "Ok" );
- ob.setDefault(TRUE);
+ ob.setDefault(TRUE);
lab.setGeometry( 10, 10, 60, 30 );
lab.setText( "Address" );
ed.setGeometry( 70, 10, 140, 30 );
cb.setGeometry( 130, 60, 80, 30 );
cb.setText( "Cancel" );
d.resize( 240, 100 );
-
- connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
- connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
- if (d.exec())
- {
- m.msg_type = MSG_NET;
- m.param.pword[0] = NET_CONNECT_TO;
- strcpy(m.param.pstr,ed.text());
- write(net_sock,&m,sizeof(MESSAGE));
- }
-
+
+ connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
+ connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
+ if (d.exec()) {
+ m.msg_type = MSG_NET;
+ m.param.pword[0] = NET_CONNECT_TO;
+ strcpy(m.param.pstr,ed.text());
+ write(net_sock,&m,sizeof(MESSAGE));
+ }
}
void QKernel::Disconnect()
{
- MESSAGE msg;
+ MESSAGE msg;
+
+ if (info_messages)
+ WriteMessage("Disconnecting from virtual machine");
- if (info_messages) WriteMessage("Disconnecting from virtual machine");
- msg.msg_type = MSG_NET;
- msg.param.pword[0] = NET_DISCONNECT;
- write(net_sock,&msg,sizeof(MESSAGE));
+ msg.msg_type = MSG_NET;
+ msg.param.pword[0] = NET_DISCONNECT;
+ write(net_sock, &msg, sizeof(MESSAGE));
}
void QKernel::QuitProc()
{
- MESSAGE msg;
+ MESSAGE msg;
-if ( QMessageBox::question(this,"Close VLP","Terminate VLP ?",QMessageBox::Yes,QMessageBox::No,0) == QMessageBox::No ) return;
-if (!LOCKED)
-{
- /*
- msg.msg_type = MSG_NET;
- msg.param.pword[0] = NET_DISCONNECT;
- write(net_sock,&msg,sizeof(MESSAGE));*/
-
-
- delete Net_Notify;
-
- msg.msg_type = MSG_NET;
- msg.param.pword[0] = NET_EXIT;
- write(net_sock,&msg,sizeof(MESSAGE));
- // ::close(net_sock);
-
- app->quit();
-}
+ if (QMessageBox::question(this,"Close VLP","Terminate VLP ?",QMessageBox::Yes,QMessageBox::No,0) == QMessageBox::No )
+ return;
+
+ if (!LOCKED) {
+ /*
+ msg.msg_type = MSG_NET;
+ msg.param.pword[0] = NET_DISCONNECT;
+ write(net_sock,&msg,sizeof(MESSAGE));*/
+ delete Net_Notify;
+
+ msg.msg_type = MSG_NET;
+ msg.param.pword[0] = NET_EXIT;
+ write(net_sock,&msg,sizeof(MESSAGE));
+ /* ::close(net_sock);*/
+
+ app->quit();
+ }
}
-
-
-
void QKernel::AddAddress()
{
- QDialog d(this,"",TRUE);
- QLabel lab(&d,"IP Address:");
- QLineEdit ed(&d,"");
- QPushButton ob(&d,""),cb(&d,"");
-
- if (connections)
- {
- ob.setGeometry( 30, 60, 80, 30 );
- ob.setText( "Ok" );
- ob.setDefault(TRUE);
- lab.setGeometry( 10, 10, 60, 30 );
- lab.setText( "Address" );
- ed.setGeometry( 70, 10, 140, 30 );
- cb.setGeometry( 130, 60, 80, 30 );
- cb.setText( "Cancel" );
- d.resize( 240, 100 );
- connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
- connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
- if (d.exec())
- if (strcmp(ed.text(),"")!=0)
- {
- connections->insertItem(ed.text());
- }
- }
+ QDialog d(this,"",TRUE);
+ QLabel lab(&d,"IP Address:");
+ QLineEdit ed(&d,"");
+ QPushButton ob(&d,""),cb(&d,"");
+
+ if (connections) {
+ ob.setGeometry( 30, 60, 80, 30 );
+ ob.setText( "Ok" );
+ ob.setDefault(TRUE);
+ lab.setGeometry( 10, 10, 60, 30 );
+ lab.setText( "Address" );
+ ed.setGeometry( 70, 10, 140, 30 );
+ cb.setGeometry( 130, 60, 80, 30 );
+ cb.setText( "Cancel" );
+ d.resize( 240, 100 );
+ connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
+ connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
+ if (d.exec())
+ if (strcmp(ed.text(),"")!=0) {
+ connections->insertItem(ed.text());
+ }
+ }
}
void QKernel::DelAddress()
{
- if (connections)
- {
- if (connections->currentItem()!=-1)
- connections->removeItem(connections->currentItem());
- }
+ if(connections) {
+ if(connections->currentItem() != -1)
+ connections->removeItem(connections->currentItem());
+ }
}
-
-
void QKernel::MessageToNode()
{
- QDialog *dlg;
- QLineEdit *nodenr;
- MESSAGE m;
-
+ QDialog *dlg;
+ QLineEdit *nodenr;
+ MESSAGE m;
- dlg = new QDialog(this,"Message",TRUE);
+ dlg = new QDialog(this,"Message",TRUE);
- nodenr = new QLineEdit(dlg,"number");
+ nodenr = new QLineEdit(dlg,"number");
nodenr->setGeometry( 90, 10, 50, 30 );
- nodenr->setText("");
+ nodenr->setText("");
- QLabel* tmpQLabel;
+ QLabel *tmpQLabel;
tmpQLabel = new QLabel( dlg, "Label_1" );
tmpQLabel->setGeometry( 10, 10, 77, 30 );
tmpQLabel->setText( "Node number:" );
tmpQLabel->setGeometry( 10, 50, 70, 30 );
tmpQLabel->setText( "Message:" );
- QLineEdit* msg;
+ QLineEdit *msg;
msg = new QLineEdit( dlg, "LineEdit_1" );
msg->setGeometry( 80, 60, 330, 30 );
msg->setText( "" );
- QPushButton* ob,*cb;
+ QPushButton *ob;
ob = new QPushButton( dlg, "PushButton_1" );
- ob->setGeometry( 230, 10, 80, 30 );
- ob->setText( "Send" );
- ob->setDefault(TRUE);
+ ob->setGeometry(230, 10, 80, 30 );
+ ob->setText("Send");
+ ob->setDefault(TRUE);
+
+ QPushButton *cb;
cb = new QPushButton( dlg, "PushButton_2" );
- cb->setGeometry( 330, 10, 80, 30 );
- cb->setText( "Cancel" );
- dlg->resize( 430, 110 );
- connect(ob,SIGNAL(clicked()),dlg,SLOT(accept()));
- connect(cb,SIGNAL(clicked()),dlg,SLOT(reject()));
- dlg->setCaption("Send message to node");
-
- if (dlg->exec())
- {
- m.msg_type = MSG_NET;
- m.param.pword[0] = NET_PROPAGATE;
- m.param.pword[1] = MSG_VLP;
- m.param.pword[2] = NodeNumber;
- m.param.pword[4] = atoi(nodenr->text());
- m.param.pword[6] = VLP_WRITE;
- strcpy(m.param.pstr,msg->text());
- write(net_sock,&m,sizeof(MESSAGE));
- }
+ cb->setGeometry(330, 10, 80, 30);
+ cb->setText("Cancel");
+ dlg->resize(430, 110);
+ connect(ob, SIGNAL(clicked()), dlg, SLOT(accept()));
+ connect(cb, SIGNAL(clicked()), dlg, SLOT(reject()));
+ dlg->setCaption("Send message to node");
+
+ if (dlg->exec()) {
+ m.msg_type = MSG_NET;
+ m.param.pword[0] = NET_PROPAGATE;
+ m.param.pword[1] = MSG_VLP;
+ m.param.pword[2] = NodeNumber;
+ m.param.pword[4] = atoi(nodenr->text());
+ m.param.pword[6] = VLP_WRITE;
+ strcpy(m.param.pstr, msg->text());
+ write(net_sock, &m, sizeof(MESSAGE));
+ }
}
void QKernel::KillInterpreter()
{
- QDialog *dlg;
- QLineEdit *nodenr;
- MESSAGE m;
- InterpEntry *pom;
-
- dlg = new QDialog(this,"Message",TRUE);
-
- nodenr = new QLineEdit(dlg,"number");
- nodenr->setGeometry( 90, 10, 50, 30 );
- nodenr->setText("");
-
- QLabel* tmpQLabel;
- tmpQLabel = new QLabel( dlg, "Label_1" );
- tmpQLabel->setGeometry( 10, 10, 77, 30 );
- tmpQLabel->setText( "Interp. ID:" );
- QPushButton* ob,*cb;
+ QDialog *dlg;
+ QLineEdit *nodenr;
+ MESSAGE m;
+ InterpEntry *pom;
+
+ dlg = new QDialog(this,"Message",TRUE);
+
+ nodenr = new QLineEdit(dlg,"number");
+ nodenr->setGeometry( 90, 10, 50, 30 );
+ nodenr->setText("");
+
+ QLabel* tmpQLabel;
+ tmpQLabel = new QLabel( dlg, "Label_1" );
+ tmpQLabel->setGeometry( 10, 10, 77, 30 );
+ tmpQLabel->setText( "Interp. ID:" );
+ QPushButton* ob,*cb;
ob = new QPushButton( dlg, "PushButton_1" );
ob->setGeometry( 160, 10, 80, 30 );
ob->setText( "Kill" );
- ob->setDefault(TRUE);
+ ob->setDefault(TRUE);
cb = new QPushButton( dlg, "PushButton_2" );
cb->setGeometry( 260, 10, 80, 30 );
cb->setText( "Cancel" );
dlg->resize( 360, 50 );
- connect(ob,SIGNAL(clicked()),dlg,SLOT(accept()));
- connect(cb,SIGNAL(clicked()),dlg,SLOT(reject()));
- dlg->setCaption("Kill interpreter");
- if (dlg->exec())
- {
-
- m.msg_type = MSG_INT;
- m.param.pword[0] = INT_KILL;
- pom = findINTbyID(atoi(nodenr->text()));
- if (pom!=NULL)
- {
- if (!(pom->remote))
- write(pom->sock,&m,sizeof(MESSAGE));
- else WriteMessage("This is a remote instance of a program!");
- }
- else WriteMessage("Interpreter not found");
-
- }
-
+ connect(ob,SIGNAL(clicked()),dlg,SLOT(accept()));
+ connect(cb,SIGNAL(clicked()),dlg,SLOT(reject()));
+ dlg->setCaption("Kill interpreter");
+ if (dlg->exec()) {
+ m.msg_type = MSG_INT;
+ m.param.pword[0] = INT_KILL;
+ pom = findINTbyID(atoi(nodenr->text()));
+ if(pom != NULL) {
+ if (!(pom->remote))
+ write(pom->sock,&m,sizeof(MESSAGE));
+ else WriteMessage("This is a remote instance of a program!");
+ }
+ else {
+ WriteMessage("Interpreter not found");
+ }
+ }
}
void QKernel::NetMessage()
{
- MESSAGE msg;
- int cnt;
- char ss[255];
- InterpEntry *pom;
-
- cnt = read(net_sock,&msg,sizeof(MESSAGE));
- if ( (cnt>0) && (msg.msg_type==MSG_NET))
- {
- switch(msg.param.pword[0])
- {
- case NET_CSWRITELN: WriteMessage(msg.param.pstr);break;
- case NET_PROPAGATE:
- switch(msg.param.pword[1])
- {
- case MSG_INT:
- /* pom = find_link_by_ID(msg.param.pword[5]);
- msg.msg_type = MSG_NET;
- msg.param.pword[0] = NET_PROPAGATE;
- send_int(pom,&msg);*/
- break;
- case MSG_VLP:
- switch(msg.param.pword[6])
- {
- case VLP_WRITE:
- QApplication::beep();
- WriteMessage(CharLine);
- WriteMessage("### Incoming Messsage ###");
- sprintf(ss,"Mesg from Node %d: %s",msg.param.pword[2],msg.param.pstr);
- WriteMessage(ss);
- WriteMessage(CharLine);
- break;
- case VLP_REMOTE_INSTANCE:
- sprintf(ss,"%s/%s",REMOTE_PATH,msg.param.pstr);
- if (info_messages)
- {
- WriteMessage("Running program:");
- WriteMessage(ss);
- }
- pom = RunIntModule(ss,1);
- if (pom!=NULL)
- {
- pom->p_ctx.node = msg.param.pword[2];
- pom->p_ctx.program_id = msg.param.pword[7];
- pom->RInstances[msg.param.pword[2]] = msg.param.pword[7];
- }
- break;
- case VLP_CLOSE_INSTANCE:
- msg.msg_type = MSG_INT;
- msg.param.pword[0] = INT_CLOSE_INSTANCE;
- pom = findINTbyID(msg.param.pword[7]);
- if (pom!=NULL)
- {
- write(pom->sock,&msg,sizeof(MESSAGE));
- MESSAGE m1;
- m1.msg_type = MSG_VLP;
- m1.param.pword[0] = VLP_INTERPRETER_DOWN;
- m1.param.pword[1] = pom->ID;
- write(net_sock,&m1,sizeof(MESSAGE));
- } else WriteMessage("Instance not found");
- break;
- } /* VLP switch */
-
- }/* switch */
- break;
- case NET_CONNECTIONS: ActiveConnections = msg.param.pword[1];
- WriteMessage(msg.param.pstr);
- if (!synchro) synchro=TRUE;
- break;
- case NET_INFO:
- if (wait_for_info)
- {
- QString poms,poms1,poms2;
- poms.sprintf("%s",msg.param.pstr);
- while (poms.length()>0)
- {
- cnt=poms.find(';');
- if (cnt!=-1)
- { poms1=poms.left(cnt);
- poms=poms.right(poms.length()-cnt-1);
- cnt=poms1.find('=');
- if (cnt!=-1)
- {
- poms2=poms1.left(cnt);
- poms1=poms1.right(poms1.length()-cnt-1);
- sprintf(ss,"Node: %s Addr: %s",poms2.data(),poms1.data());
- WriteMessage(ss);
- }
- }
- }
- }
- break;
- case NET_INFO_END:wait_for_info=FALSE;
- WriteMessage(CharLine);
- break;
- } /* switch */
- }
-
+ MESSAGE msg;
+ int cnt;
+ char ss[255];
+ InterpEntry *pom;
+
+ cnt = read(net_sock, &msg, sizeof(MESSAGE));
+ if((cnt > 0) && (msg.msg_type == MSG_NET)) {
+ switch(msg.param.pword[0]) {
+ case NET_CSWRITELN:
+ WriteMessage(msg.param.pstr);
+ break;
+ case NET_PROPAGATE:
+ switch(msg.param.pword[1]) {
+ case MSG_INT:
+ /* pom = find_link_by_ID(msg.param.pword[5]);
+ msg.msg_type = MSG_NET;
+ msg.param.pword[0] = NET_PROPAGATE;
+ send_int(pom,&msg);*/
+ break;
+ case MSG_VLP:
+ switch(msg.param.pword[6]) {
+ case VLP_WRITE:
+ QApplication::beep();
+ WriteMessage(CharLine);
+ WriteMessage("### Incoming Messsage ###");
+ sprintf(ss,"Mesg from Node %d: %s",msg.param.pword[2],msg.param.pstr);
+ WriteMessage(ss);
+ WriteMessage(CharLine);
+ break;
+ case VLP_REMOTE_INSTANCE:
+ sprintf(ss,"%s/%s",REMOTE_PATH,msg.param.pstr);
+ if (info_messages) {
+ WriteMessage("Running program:");
+ WriteMessage(ss);
+ }
+ pom = RunIntModule(ss,1);
+ if (pom!=NULL) {
+ pom->p_ctx.node = msg.param.pword[2];
+ pom->p_ctx.program_id = msg.param.pword[7];
+ pom->RInstances[msg.param.pword[2]] = msg.param.pword[7];
+ }
+ break;
+ case VLP_CLOSE_INSTANCE:
+ msg.msg_type = MSG_INT;
+ msg.param.pword[0] = INT_CLOSE_INSTANCE;
+ pom = findINTbyID(msg.param.pword[7]);
+ if (pom!=NULL) {
+ write(pom->sock,&msg,sizeof(MESSAGE));
+ MESSAGE m1;
+ m1.msg_type = MSG_VLP;
+ m1.param.pword[0] = VLP_INTERPRETER_DOWN;
+ m1.param.pword[1] = pom->ID;
+ write(net_sock,&m1,sizeof(MESSAGE));
+ } else {
+ WriteMessage("Instance not found");
+ }
+ break;
+ } /* VLP switch */
+ }/* switch */
+ break;
+ case NET_CONNECTIONS: ActiveConnections = msg.param.pword[1];
+ WriteMessage(msg.param.pstr);
+ if (!synchro)
+ synchro=TRUE;
+ break;
+ case NET_INFO:
+ if (wait_for_info) {
+ QString poms,poms1,poms2;
+ poms.sprintf("%s",msg.param.pstr);
+ while (poms.length()>0) {
+ cnt=poms.find(';');
+ if (cnt!=-1) {
+ poms1=poms.left(cnt);
+ poms=poms.right(poms.length()-cnt-1);
+ cnt=poms1.find('=');
+ if (cnt!=-1) {
+ poms2=poms1.left(cnt);
+ poms1=poms1.right(poms1.length()-cnt-1);
+ sprintf(ss,"Node: %s Addr: %s",poms2.data(),poms1.data());
+ WriteMessage(ss);
+ }
+ }
+ }
+ }
+ break;
+ case NET_INFO_END:
+ wait_for_info=FALSE;
+ WriteMessage(CharLine);
+ break;
+ } /* switch */
+ }
}
-
-
-
void QKernel::IntMessage(int sock)
{
- MESSAGE msg;
- int cnt;
- InterpEntry *e;
-
- cnt = read(sock,&msg,sizeof(MESSAGE));
- e = findINTbySocket(sock);
- if ( (cnt>0) && (e!=NULL))
- {
- switch (msg.msg_type)
- {
- case MSG_GRAPH:
- if (msg.param.pword[0]==GRAPH_ALLOCATE)
- {
- RunGraphModule(msg.param.pstr);
- }
- break;
- case MSG_NET:
- write(net_sock,&msg,sizeof(MESSAGE));break;
- case MSG_VLP:
- switch(msg.param.pword[0])
- {
- case VLP_REMOTE_INSTANCE_PLEASE:
- RemoteInstance(e,msg.param.pword[2]);
- break;
- }/* switch */
- break;
- case MSG_INT:
- switch(msg.param.pword[0]){
- case INT_EXITING:
- {
- char ss[255];
-
- MESSAGE m;
- m.msg_type = MSG_VLP;
- m.param.pword[0] = VLP_INTERPRETER_DOWN;
- m.param.pword[1] = e->ID;
- write(net_sock,&m,sizeof(MESSAGE));
- if (e->remote==0) CloseInstances(e);
- delete e->notify;
- ::close(e->sock);
- Interpreters.remove(e);
- delete e;
- if (info_messages)
- {
- sprintf(ss,"%s : End of program execution",msg.param.pstr);
- WriteMessage(ss);
- }
- };break;
- case INT_CTX_REQ:
-
- msg.msg_type = MSG_INT;
- msg.param.pword[0] = INT_CTX;
- msg.param.pword[1] = NodeNumber;
- msg.param.pword[2] = e->ID;
- if (e->remote)
- {
- msg.param.pword[3] = e->p_ctx.node;
- msg.param.pword[4] = e->p_ctx.program_id;
- }
- write(sock,&msg,sizeof(MESSAGE));
- break;
- };break; /* switch param.pword[0] */
- } /* switch type */
- } /* if */
+ MESSAGE msg;
+ int cnt;
+ InterpEntry *e;
+
+ cnt = read(sock,&msg,sizeof(MESSAGE));
+ e = findINTbySocket(sock);
+ if ((cnt > 0) && (e != NULL)) {
+ switch (msg.msg_type) {
+ case MSG_GRAPH:
+ if (msg.param.pword[0] == GRAPH_ALLOCATE) {
+ RunGraphModule(msg.param.pstr);
+ }
+ break;
+ case MSG_NET:
+ write(net_sock, &msg, sizeof(MESSAGE));
+ break;
+ case MSG_VLP:
+ switch(msg.param.pword[0]) {
+ case VLP_REMOTE_INSTANCE_PLEASE:
+ RemoteInstance(e,msg.param.pword[2]);
+ break;
+ }/* switch */
+ break;
+ case MSG_INT:
+ switch(msg.param.pword[0]) {
+ case INT_EXITING:
+ char ss[255];
+
+ MESSAGE m;
+ m.msg_type = MSG_VLP;
+ m.param.pword[0] = VLP_INTERPRETER_DOWN;
+ m.param.pword[1] = e->ID;
+ write(net_sock,&m,sizeof(MESSAGE));
+ if(e->remote == 0)
+ CloseInstances(e);
+ delete e->notify;
+ ::close(e->sock);
+ Interpreters.remove(e);
+ delete e;
+ if (info_messages) {
+ sprintf(ss,"%s : End of program execution",msg.param.pstr);
+ WriteMessage(ss);
+ }
+ break;
+ case INT_CTX_REQ:
+ msg.msg_type = MSG_INT;
+ msg.param.pword[0] = INT_CTX;
+ msg.param.pword[1] = NodeNumber;
+ msg.param.pword[2] = e->ID;
+ if (e->remote) {
+ msg.param.pword[3] = e->p_ctx.node;
+ msg.param.pword[4] = e->p_ctx.program_id;
+ }
+ write(sock, &msg, sizeof(MESSAGE));
+ break;
+ };
+ break; /* switch param.pword[0] */
+ } /* switch type */
+ } /* if */
}
-
void QKernel::WriteMessage(char *msg)
{
- int x,y;
-
- desktop->getCursorPosition(&x,&y);
- if (x>100) desktop->clear();
- desktop->setReadOnly(FALSE);
- desktop->append(msg);
- desktop->setReadOnly(TRUE);
- desktop->setCursorPosition(desktop->numLines(),1);
- desktop->repaint();
- if (desktop->numLines()>100) desktop->clear();
+ int x;
+ int y;
+
+ desktop->getCursorPosition(&x,&y);
+ if(x > 100) {
+ desktop->clear();
+ }
+
+ desktop->setReadOnly(FALSE);
+ desktop->append(msg);
+ desktop->setReadOnly(TRUE);
+ desktop->setCursorPosition(desktop->numLines(),1);
+ desktop->repaint();
+
+ if (desktop->numLines()>100) {
+ desktop->clear();
+ }
}
void QKernel::SetMessages()
{
-
- if (p2!=NULL)
- {
- if ( p2->isItemChecked(msgid))
- {
- p2->setItemChecked(msgid,FALSE);
- info_messages=FALSE;
- }
- else
- {
- p2->setItemChecked(msgid,TRUE);
- info_messages=TRUE;
- }
-} // !=NULL
-// bar->repaint();
+ if (p2 != NULL) {
+ if (p2->isItemChecked(msgid)) {
+ p2->setItemChecked(msgid,FALSE);
+ info_messages=FALSE;
+ } else {
+ p2->setItemChecked(msgid,TRUE);
+ info_messages=TRUE;
+ }
+ } /* !=NULL */
+ /* bar->repaint(); */
}
void QKernel::SetOptions()
{
- QDialog dlg(this,"Options",TRUE);
- ConnectEntry *e;
- unsigned int i;
-
+ QDialog dlg(this,"Options",TRUE);
+ ConnectEntry *e;
+ unsigned int i;
- QLineEdit* progs;
+ QLineEdit* progs;
progs = new QLineEdit( &dlg, "progs" );
progs->setGeometry( 150, 20, 180, 30 );
- progs->setText(progdir);
+ progs->setText(progdir);
QLabel* tmpQLabel;
tmpQLabel = new QLabel( &dlg, "Label_1" );
tmpQLabel->setGeometry( 10, 80, 340, 30 );
tmpQLabel->setText( "Virtual Processor properties (activated after restarting VLP):" );
- QLineEdit *nn;
- char nns[256];
+ QLineEdit *nn;
+ char nns[256];
nn = new QLineEdit( &dlg, "LineEdit_2" );
nn->setGeometry( 110, 110, 40, 30 );
- sprintf(nns,"%d",NodeNumber);
- nn->setText(nns);
+ sprintf(nns,"%d",NodeNumber);
+ nn->setText(nns);
tmpQLabel = new QLabel( &dlg, "Label_3" );
tmpQLabel->setGeometry( 20, 110, 90, 30 );
reg = new QRadioButton( &dlg, "RadioButton_4" );
reg->setGeometry( 30, 200, 100, 30 );
reg->setText( "Registration" );
- reg->setEnabled(FALSE);
+ reg->setEnabled(FALSE);
connections = new QListBox( &dlg, "ListBox_1" );
connections->setGeometry( 170, 140, 130, 100 );
- e = ConnectList.first();
- while (e!=NULL)
- {
- connections->insertItem(e->addr);
- e = ConnectList.next();
- }
+ e = ConnectList.first();
+ while(e != NULL) {
+ connections->insertItem(e->addr);
+ e = ConnectList.next();
+ }
tmpQLabel = new QLabel( &dlg, "Label_5" );
tmpQLabel->setGeometry( 170, 110, 100, 30 );
delbtn = new QPushButton( &dlg, "PushButton_2" );
delbtn->setGeometry( 310, 200, 60, 30 );
delbtn->setText( "Del" );
- connect(addbtn,SIGNAL(clicked()),this,SLOT(AddAddress()));
- connect(delbtn,SIGNAL(clicked()),this,SLOT(DelAddress()));
+ connect(addbtn,SIGNAL(clicked()),this,SLOT(AddAddress()));
+ connect(delbtn,SIGNAL(clicked()),this,SLOT(DelAddress()));
okbtn = new QPushButton( &dlg, "PushButton_3" );
okbtn->setGeometry( 80, 260, 100, 30 );
okbtn->setText( "Ok" );
- okbtn->setDefault(TRUE);
+ okbtn->setDefault(TRUE);
cancelbtn = new QPushButton( &dlg, "PushButton_4" );
cancelbtn->setGeometry( 210, 260, 100, 30 );
cancelbtn->setText( "Cancel" );
- connect(okbtn,SIGNAL(clicked()),&dlg,SLOT(accept()));
- connect(cancelbtn,SIGNAL(clicked()),&dlg,SLOT(reject()));
+ connect(okbtn,SIGNAL(clicked()),&dlg,SLOT(accept()));
+ connect(cancelbtn,SIGNAL(clicked()),&dlg,SLOT(reject()));
QButtonGroup* group;
group = new QButtonGroup( &dlg, "ButtonGroup_1" );
group->setGeometry( 20, 150, 120, 90 );
group->setTitle( "Connection type" );
group->setAlignment( 1 );
group->lower();
- group->insert(exp,1);
- group->insert(reg,2);
+ group->insert(exp,1);
+ group->insert(reg,2);
dlg.resize( 400, 310 );
- if (dlg.exec())
- {
-
- config_t cfg;
- config_setting_t *root, *setting;
- config_init(&cfg);
-
- root = config_root_setting(&cfg);
-
- setting = config_setting_add(root, "progdir", CONFIG_TYPE_STRING);
- config_setting_set_string(setting, progs->text().ascii());
- strcpy(progdir,progs->text());
-
- setting = config_setting_add(root, "node_number", CONFIG_TYPE_INT);
- config_setting_set_int(setting, atoi(nn->text()));
-
- setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING);
- config_setting_set_string(setting, HomeDir);
-
- setting = config_setting_add(root, "type", CONFIG_TYPE_STRING);
- if ( exp->isChecked())
- {
- config_setting_set_string(setting, "explicit");
-
- config_setting_t *hosts = NULL;
- hosts = config_setting_add(root, "host", CONFIG_TYPE_ARRAY);
- for(i=0;i<connections->count();i++) {
- setting = config_setting_add(hosts, NULL, CONFIG_TYPE_STRING);
- config_setting_set_string(setting, connections->text(i).ascii());
- }
- }
- else {
- config_setting_set_string(setting, "register");
- }
-
- if(!config_write_file(&cfg, "vlp.cfg")) {
- fprintf(stderr, "Error while writing to file: %s.\n", "vlp.cfg");
- }
- config_destroy(&cfg);
- };
+ if(dlg.exec()) {
+ config_t cfg;
+ config_setting_t *root, *setting;
+ config_init(&cfg);
+
+ root = config_root_setting(&cfg);
+
+ setting = config_setting_add(root, "progdir", CONFIG_TYPE_STRING);
+ config_setting_set_string(setting, progs->text().ascii());
+ strcpy(progdir,progs->text());
+
+ setting = config_setting_add(root, "node_number", CONFIG_TYPE_INT);
+ config_setting_set_int(setting, atoi(nn->text()));
+
+ setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING);
+ config_setting_set_string(setting, HomeDir);
+
+ setting = config_setting_add(root, "type", CONFIG_TYPE_STRING);
+ if (exp->isChecked()) {
+ config_setting_set_string(setting, "explicit");
+
+ config_setting_t *hosts = NULL;
+ hosts = config_setting_add(root, "host", CONFIG_TYPE_ARRAY);
+ for(i=0;i<connections->count();i++) {
+ setting = config_setting_add(hosts, NULL, CONFIG_TYPE_STRING);
+ config_setting_set_string(setting, connections->text(i).ascii());
+ }
+ } else {
+ config_setting_set_string(setting, "register");
+ }
+
+ if(!config_write_file(&cfg, "vlp.cfg")) {
+ fprintf(stderr, "Error while writing to file: %s.\n", "vlp.cfg");
+ }
+ config_destroy(&cfg);
+ }
}
-
void QKernel::LockConsole()
{
- QDialog d(this,"Enter password",TRUE);
- QLabel lab(&d,"Password");
- QLineEdit ed(&d,"");
- QPushButton ob(&d,""),cb(&d,"");
-
- d.setCaption("Lock console");
- ob.setGeometry( 30, 60, 80, 30 );
+ QDialog d(this,"Enter password",TRUE);
+ QLabel lab(&d,"Password");
+ QLineEdit ed(&d,"");
+ QPushButton ob(&d,""),cb(&d,"");
+
+ d.setCaption("Lock console");
+ ob.setGeometry( 30, 60, 80, 30 );
ob.setText( "Ok" );
- ob.setDefault(TRUE);
+ ob.setDefault(TRUE);
lab.setGeometry( 10, 10, 60, 30 );
lab.setText( "Password:" );
ed.setGeometry( 70, 10, 140, 30 );
- ed.setEchoMode(QLineEdit::Password);
+ ed.setEchoMode(QLineEdit::Password);
cb.setGeometry( 130, 60, 80, 30 );
cb.setText( "Cancel" );
d.resize( 240, 100 );
- connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
- connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
-
- if (d.exec())
- if (strcmp(ed.text(),"")!=0)
- {
- strcpy(LockPasswd,ed.text());
- lab.setText("Retype:");
- ed.setText("");
- if (d.exec())
- {
- if (strcmp(ed.text(),LockPasswd)==0)
- {
- bar->setItemEnabled(qid,FALSE);
- bar->setItemEnabled(prid,FALSE);
- bar->setItemEnabled(mid,FALSE);
- p2->setItemEnabled(unlockid,TRUE);
- p2->setItemEnabled(lockid,FALSE);
- p2->setItemEnabled(cwid,FALSE);
- p2->setItemEnabled(optid,FALSE);
- bar->repaint();
- WriteMessage("CONSOLE LOCKED");
- LOCKED = TRUE;
- }
- else
- {
- QMessageBox msg(this);
- msg.setText("Not matching!");
- msg.setButtonText(0,"Close");
- msg.show();
-
- }
- }
- else strcpy(LockPasswd,"");
- }
+ connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
+ connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
+
+ if (d.exec()) {
+ if (strcmp(ed.text(),"")!=0) {
+ strcpy(LockPasswd,ed.text());
+ lab.setText("Retype:");
+ ed.setText("");
+ if (d.exec()) {
+ if (strcmp(ed.text(),LockPasswd)==0) {
+ bar->setItemEnabled(qid,FALSE);
+ bar->setItemEnabled(prid,FALSE);
+ bar->setItemEnabled(mid,FALSE);
+ p2->setItemEnabled(unlockid,TRUE);
+ p2->setItemEnabled(lockid,FALSE);
+ p2->setItemEnabled(cwid,FALSE);
+ p2->setItemEnabled(optid,FALSE);
+ bar->repaint();
+ WriteMessage("CONSOLE LOCKED");
+ LOCKED = TRUE;
+ } else {
+ QMessageBox msg(this);
+ msg.setText("Not matching!");
+ msg.setButtonText(0,"Close");
+ msg.show();
+ }
+ } else {
+ strcpy(LockPasswd,"");
+ }
+ }
+ }
}
void QKernel::UnlockConsole()
{
- QDialog d(this,"Enter password",TRUE);
- QLabel lab(&d,"Password");
- QLineEdit ed(&d,"");
- QPushButton ob(&d,""),cb(&d,"");
+ QDialog d(this,"Enter password",TRUE);
+ QLabel lab(&d,"Password");
+ QLineEdit ed(&d,"");
+ QPushButton ob(&d,""),cb(&d,"");
- ob.setGeometry( 30, 60, 80, 30 );
+ ob.setGeometry( 30, 60, 80, 30 );
ob.setText( "Ok" );
- ob.setDefault(TRUE);
+ ob.setDefault(TRUE);
lab.setGeometry( 10, 10, 60, 30 );
lab.setText( "Password:" );
ed.setGeometry( 70, 10, 140, 30 );
- ed.setEchoMode(QLineEdit::Password);
+ ed.setEchoMode(QLineEdit::Password);
cb.setGeometry( 130, 60, 80, 30 );
cb.setText( "Cancel" );
d.resize( 240, 100 );
- connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
- connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
-
- if (d.exec())
- {
- if (strcmp(ed.text(),LockPasswd)==0)
- {
- bar->setItemEnabled(qid,TRUE);
- bar->setItemEnabled(prid,TRUE);
- bar->setItemEnabled(mid,TRUE);
- p2->setItemEnabled(unlockid,FALSE);
- p2->setItemEnabled(lockid,TRUE);
- p2->setItemEnabled(cwid,TRUE);
- p2->setItemEnabled(optid,TRUE);
- bar->repaint();
- WriteMessage("CONSOLE UNLOCKED");
- LOCKED = FALSE;
- }
- else
- {
- QMessageBox msg(this);
- msg.setText("Wrong password!");
- msg.setButtonText(0,"Close");
- msg.show();
-
- }
- }
+ connect(&ob,SIGNAL(clicked()),&d,SLOT(accept()));
+ connect(&cb,SIGNAL(clicked()),&d,SLOT(reject()));
+
+ if (d.exec()) {
+ if (strcmp(ed.text(), LockPasswd) == 0) {
+ bar->setItemEnabled(qid,TRUE);
+ bar->setItemEnabled(prid,TRUE);
+ bar->setItemEnabled(mid,TRUE);
+ p2->setItemEnabled(unlockid,FALSE);
+ p2->setItemEnabled(lockid,TRUE);
+ p2->setItemEnabled(cwid,TRUE);
+ p2->setItemEnabled(optid,TRUE);
+ bar->repaint();
+ WriteMessage("CONSOLE UNLOCKED");
+ LOCKED = FALSE;
+ } else {
+ QMessageBox msg(this);
+ msg.setText("Wrong password!");
+ msg.setButtonText(0,"Close");
+ msg.show();
+ }
+ }
}
void QKernel::InitMessage()
{
- WriteMessage("\n Virtual LOGLAN Processor - ver 1.9: READY \n");
+ WriteMessage("\n Virtual LOGLAN Processor - ver 1.9: READY \n");
}
InterpEntry *QKernel::findINTbySocket(int _id)
{
- InterpEntry *pom;
- pom = Interpreters.first();
- while (pom!=NULL)
- {
- if (pom->sock == _id) break;
- pom = Interpreters.next();
- }
- return(pom);
+ InterpEntry *pom;
+ pom = Interpreters.first();
+
+ while (pom != NULL) {
+ if (pom->sock == _id)
+ break;
+
+ pom = Interpreters.next();
+ }
+ return(pom);
}
InterpEntry *QKernel::findINTbyID(int _id)
{
- InterpEntry *pom;
- pom = Interpreters.first();
- while (pom!=NULL)
- {
- if (pom->ID == _id) break;
- pom = Interpreters.next();
- }
- return(pom);
+ InterpEntry *pom;
+ pom = Interpreters.first();
+ while (pom != NULL) {
+ if (pom->ID == _id)
+ break;
+ pom = Interpreters.next();
+ }
+ return(pom);
}
void QKernel::CloseInstances(InterpEntry *e)
{
- MESSAGE msg;
- int i;
-
- if (info_messages) WriteMessage("Closing remote instances");
- for(i=0;i<MAXINSTANCES;i++)
- if (e->RInstances[i]>=0)
- {
- msg.msg_type = MSG_NET;
- msg.param.pword[0] = NET_PROPAGATE;
- msg.param.pword[1] = MSG_VLP;
- msg.param.pword[2] = NodeNumber;
- msg.param.pword[4] = i;
- msg.param.pword[6] = VLP_CLOSE_INSTANCE;
- msg.param.pword[7] = e->RInstances[i];
- write(net_sock,&msg,sizeof(MESSAGE));
- }
+ MESSAGE msg;
+ int i;
+
+ if (info_messages)
+ WriteMessage("Closing remote instances");
+
+ for(i=0; i < MAXINSTANCES; i++)
+ if (e->RInstances[i]>=0) {
+ msg.msg_type = MSG_NET;
+ msg.param.pword[0] = NET_PROPAGATE;
+ msg.param.pword[1] = MSG_VLP;
+ msg.param.pword[2] = NodeNumber;
+ msg.param.pword[4] = i;
+ msg.param.pword[6] = VLP_CLOSE_INSTANCE;
+ msg.param.pword[7] = e->RInstances[i];
+ write(net_sock,&msg,sizeof(MESSAGE));
+ }
}
void QKernel::Info()
{
- MESSAGE m;
-
- WriteMessage(CharLine);
- WriteMessage("### Virtual Machine Information ###");
- m.msg_type = MSG_NET;
- m.param.pword[0]=NET_GET_INFO;
- write(net_sock,&m,sizeof(MESSAGE));
- wait_for_info = TRUE;
+ MESSAGE m;
+
+ WriteMessage(CharLine);
+ WriteMessage("### Virtual Machine Information ###");
+ m.msg_type = MSG_NET;
+ m.param.pword[0] = NET_GET_INFO;
+ write(net_sock, &m, sizeof(MESSAGE));
+ wait_for_info = TRUE;
}
#include "kernel.moc"
int main( int argc, char **argv )
{
- int i;
- for(i=0;i<5;i++) strcpy(myargs[i],"");
- for(i=1;i<argc;i++) strcpy(myargs[i-1],argv[i]);
-
- app = new QApplication(argc,argv);
- app->setStyle(new QWindowsStyle());
- QKernel draw;
- app->setMainWidget( &draw);
- draw.show();
- draw.InitMessage();
- return app->exec();
+ int i;
+ for(i=0; i < 5; i++) {
+ strcpy(myargs[i],"");
+ }
+ for(i=1; i < argc; i++) {
+ strcpy(myargs[i-1],argv[i]);
+ }
+
+ app = new QApplication(argc, argv);
+ app->setStyle(new QWindowsStyle());
+ QKernel kernel;
+ app->setMainWidget(&kernel);
+ draw.show();
+ draw.InitMessage();
+ return app->exec();
}