source: tol/tolsh/tolsh.vfs/lib/tolcomm/tolclient.tol

devel
Last change on this file was 6d7779d, checked in by Jorge Pérez <josp.jorge@…>, 18 years ago

initial import

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@1 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 3.0 KB
Line 
1/* -*- mode: c++ -*- */
2/**
3 * tolclient.tol --
4 *
5 */
6
7/**
8 *  TolServerPing -- Verifica si un servidor tolserver esta escuchando
9 *
10 *  Argumentos:
11 *
12 *    Host:
13 *    Port:
14 *
15 *  Resultado:
16 * 
17 */
18Real TolServerPing(Text Host, Real Port)
19{
20
21  Text cmd = "::tolclient::server_ping "+Host+" "+FormatReal(Port, "%.0lf");
22  Set result = Tcl_Eval(cmd);
23  Real If(result["status"], Eval(result["result"]),{
24      WriteLn("TolServerPing: "+result["result"],"E");
25      Real 0
26    })
27};
28PutDescription("Verifica si un servidor TOLSERVER esta ejecutandose en un "
29               "ordenador remoto y esta escuchando peticiones."
30               "Retorna 1 si el servidor esta ejecutandose o 0 en caso "
31               "contrario",
32               TolServerPing);
33
34/**
35 *  TolServerEval --Evalua una expresion en un servidor TOL remoto.
36 *
37 *  Argumentos:
38 *
39 *    Host:
40 *    Port:
41 *
42 *  Resultado:
43 * 
44 */
45Text TolServerEval(Text Host, Real Port, Text TolExpr)
46{
47
48  Text cmd =
49    "::tolclient::server_eval " + Host + " " +
50    FormatReal(Port, "%.0lf") + " {" + TolExpr + "}";
51  Set result = Tcl_Eval(cmd);
52  Text If(result["status"], result["result"],{
53      WriteLn("TolServerEval: "+result["result"],"E");
54      Text ""
55    })
56};
57PutDescription("Ejecuta una expresion TOL evaluandola en el servidor de calculo "
58               "remoto TOLSERVER esta ejecutandose en el host dado y esta "
59               "escuchando peticiones en port"
60               "Retorna inmediatamente un identificador de la solicitud de "
61               "evaluacion si TOLSERVER llego a aceptarla o vacio si se produjo "
62               "algun error durante la tramitacion de la solcitud.\n"
63               "Vease ademas TolServerWait",
64               TolServerEval);
65
66
67/**
68 *  TolServerWait --Espera porque se complete una lista de solicitud
69 *  de ejecucion remota.
70 *
71 *  Argumentos:
72 *
73 *    Host:
74 *    Port:
75 *    Lista:
76 *
77 *  Resultado:
78 * 
79 */
80Text TolServerWait(Text ReqsList)
81{
82
83  Text cmd = "::tolclient::server_wait " + ReqsList;
84  Set result = Tcl_Eval(cmd);
85  Text If(result["status"], result["result"],{
86      WriteLn("TolServerWait: "+result["result"],"E");
87      Text ""
88    })
89};
90PutDescription("Espera hasta que se complete la ejecucion remota asociada a la "
91               "lista de solicitudes pasada como argumentos en el argumento "
92               "ReqsList. ReqList es una cadena que contiene los identificadores "
93               "de las solicitudes separados por espacios",
94               TolServerWait);
95
96Text TolServerNewHost(Text host, Real Port)
97{
98  Text cmd = "::tolclient::cluster_new_host";
99 
100  Set result = Tcl_EvalEx([[cmd, host, FormatReal(Port, "%.0lf")]]);
101  Text If(result["status"], result["result"],{
102      WriteLn("TolServerNewHost: "+result["result"],"E");
103      Text ""
104    })
105};
106
107Text TolServerClusterEval(Set Tasks)
108{
109  Set tclcmd = [["::tolclient::cluster_eval"]];
110  Set Append(tclcmd, Tasks);
111  Set result = Tcl_EvalEx(tclcmd);
112  Text If(result["status"], result["result"],{
113      WriteLn("TolServerClusterEval: "+result["result"],"E");
114      Text ""
115    })
116};
Note: See TracBrowser for help on using the repository browser.