1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
CVS info : $Header$
Cactus Code Thorn Formaline
Thorn Author(s) : Erik Schnett <schnetter@aei.mgp.de>
Thorn Maintainer(s) : Erik Schnett <schnetter@aei.mgp.de>
--------------------------------------------------------------------------
Purpose of the thorn:
Send meta information about a run to a server, so that it is kept
there forever. The information sent is e.g. the parameter file, date,
time, machine, and user id of the run, location of the output data,
number of iterations, an efficiency summary, etc.
TODO:
put unique job IDs into all output files
BSD tar: read files from file: -I filename
tar: don't use -z; use tar and gzip
AIX: tar is GNU tar, but uses -L instead of -T
IOUtil should not depend on anything
(MoL should not depend on NaNChecker)
use a configuration script to amend all thorns' make.code.deps files
to create the tarballs when the thorns are compiled
use perl instead of C for makeblob and makemetablob
announce: maybe use <array> for parameter arrays
maybe use <bool> for booleans
maybe use <dateTime.iso8601>20100302T00:00:00</dateTime.iso8601>
for dates and times
put the output files into the build directory instead of the scratch
directory
output grid variables
register as output method
implement reductions
implement missing data types
output only if value has changed
put stuff into namespace
(move from C to C++?)
rename "file", "storage" do something more unique
Here is a suggestion for handling sockets in perl.
This is from "http://www.infocopter.com/perl/socket-server.htm".
#!/usr/bin/perl -w
use strict;
################################################
# Socket Client
# (c) retoh :)
################################################
use Socket;
my $host = 'localhost';
my $port = 7890;
my $proto = getprotobyname('tcp');
socket(my $FS, PF_INET, SOCK_STREAM, $proto);
my $sin = sockaddr_in($port, inet_aton($host));
connect($FS, $sin) || exit -1;
my $old_fh = select($FS); $| = 1; select($old_fh);
print $FS "Hello at ", scalar localtime(), "\n\n";
while(<$FS>) {
print;
}
close $FS;
|