OurNet-BBS
view release on metacpan or search on metacpan
lib/OurNet/BBS/MAPLE2/BoardGroup.pm view on Meta::CPAN
sub shminit {
my $self = shift;
if ($^O ne 'MSWin32' and
$self->{shmid} = shmget($self->{shmkey}, $self->{maxboard} * $packsize + 16, 0)) {
tie $self->{shm}{touchtime}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxboard}*$packsize + 4, 4, 'L';
tie $self->{shm}{number}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxboard}*$packsize + 8, 4, 'L';
tie $self->{shm}{busystate}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxboard}*$packsize + 12, 4, 'L';
}
}
# Fetch key: id savemode author date title filemode body
sub refresh_meta {
my ($self, $key) = @_;
my $file = "$self->{bbsroot}/$BRD";
my $board;
lib/OurNet/BBS/MAPLE2/SessionGroup.pm view on Meta::CPAN
sub shminit {
my $self = shift;
if ($^O ne 'MSWin32' and
$self->{shmid} = shmget($self->{shmkey},
($self->{maxsession})*$packsize+36, 0)) {
tie $self->{shm}{uptime}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxsession}*$packsize, 4, 'L';
tie $self->{_hash}{number}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxsession}*$packsize+4, 4, 'L';
tie $self->{shm}{busystate}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxsession}*$packsize+8, 4, 'L';
$instances{$self} = $self;
}
}
sub refresh_meta {
my ($self, $key) = @_;
$self->shminit unless ($self->{shmid} || !$self->{shmkey});
lib/OurNet/BBS/MAPLE2/UserGroup.pm view on Meta::CPAN
# print "key: $self->{shmkey}\n";
# print "maxuser: $self->{maxuser}\n";
tie $self->{shm}{userlist}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, 0, $namesize, $self->{maxuser} * $namesize, 'Z$namesize';
tie $self->{shm}{uptime}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxuser} * $namesize, 4, 'L';
tie $self->{shm}{touchtime}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxuser} * $namesize + 4, 4, 'L';
tie $self->{_hash}{number}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxuser} * $namesize + 8, 4, 'L';
tie $self->{shm}{busystate}, 'OurNet::BBS::ShmScalar',
$self->{shmid}, $self->{maxuser} * $namesize + 12, 4, 'L';
}
}
my $name;
if ($self->{shmid}) {
# shm-based imeplementation
if ($key and $flag == HASH) {
# key fetch
return if $self->{_hash}{$key} or !$self->{maxuser};
( run in 0.240 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )