our $contest;
my $redis = Redis->new;
+my $pubsub = Redis->new;
sub dynsub{
no strict 'refs';
}
BEGIN {
- for my $cmd (qw/multi exec smembers get hget hset sadd srem incr hmset hsetnx/) {
- dynsub uc $cmd, sub { say "Arguments to \U$cmd: ", join ', ', @_; $redis->$cmd(@_) };
+ for my $cmd (qw/multi exec smembers get hget hdel hset sadd srem incr hmset hsetnx publish/) {
+ dynsub uc $cmd, sub { $redis->$cmd(@_) };
+ }
+
+ for my $cmd (qw/subscribe wait_for_messages/) {
+ dynsub uc $cmd, sub { $pubsub->$cmd(@_) };
}
}
sub problems () { SMEMBERS cp . 'problem' }
sub contests () { SMEMBERS cp . 'contest' }
+sub users () { SMEMBERS cp . 'user' }
sub jobcard () { GET cp . 'job' }
sub job_results (_) { decode_json HGET cp . "job.$_[0]", 'results' }
dynsub "push_$name", sub {
my $nr = INCR cp . $name;
HMSET cp . "$name.$nr", @_;
+ $nr
};
}
defhash problem => qw/name level statement/;
defhash contest => qw/start end name owner/;
-defhash job => qw/date file name private problem result result_text user/;
+defhash job => qw/date extension filesize private problem result result_text user/;
+defhash user => qw/name email town university level/;
+
+sub clean_job (_){
+ HDEL cp . "job.$_[0]", qw/result result_text results daemon/
+}
-our @EXPORT_OK = do {
+our @EXPORT = do {
no strict 'refs';
grep { $_ =~ /^[a-zA-Z]/ and exists &$_ } keys %{__PACKAGE__ . '::'};
};