File Coverage

blib/lib/Net/Lyskom/Conference.pm
Criterion Covered Total %
statement 64 129 49.6
branch 1 4 25.0
condition n/a
subroutine 9 32 28.1
pod 23 25 92.0
total 97 190 51.0


line stmt bran cond sub pod time code
1             package Net::Lyskom::Conference;
2 1     1   6 use base qw{Net::Lyskom::Object};
  1         2  
  1         105  
3 1     1   6 use strict;
  1         1  
  1         31  
4 1     1   5 use warnings;
  1         2  
  1         35  
5              
6 1     1   5 use Net::Lyskom::Util qw{:all};
  1         1  
  1         147  
7 1     1   6 use Net::Lyskom::Time;
  1         1  
  1         23  
8 1     1   5 use Net::Lyskom::AuxItem;
  1         2  
  1         1190  
9              
10             =head1 NAME
11              
12             Net::Lyskom::Conference - object that holds information on a conference
13              
14             =head1 SYNOPSIS
15              
16             print "This conference is called ",$obj->name;
17              
18              
19             =head1 DESCRIPTION
20              
21             All methods are read-only and take no arguments. Unless noted otherwise,
22             they return simple scalars.
23              
24             =head2 Methods
25              
26             =over
27              
28             =item ->name()
29              
30             =item ->creation_time()
31              
32             Returns a L object;
33              
34             =item ->last_written()
35              
36             Returns a L object;
37              
38             =item ->creator()
39              
40             =item ->presentation()
41              
42             =item ->supervisor()
43              
44             =item ->permitted_submitters()
45              
46             =item ->super_conf()
47              
48             =item ->msg_of_day()
49              
50             =item ->nice()
51              
52             =item ->keep_commented()
53              
54             =item ->no_of_members()
55              
56             =item ->first_local_no()
57              
58             =item ->no_of_texts()
59              
60             =item ->expire()
61              
62             =item ->aux_items()
63              
64             Returns a list of L objects.
65              
66             =item ->rd_prot()
67              
68             =item ->original()
69              
70             =item ->secret()
71              
72             =item ->letterbox()
73              
74             =item ->allow_anonymous()
75              
76             =item ->forbid_secret()
77              
78             =item ->highest_local_no()
79              
80             =back
81              
82             =cut
83              
84             # Accessors
85              
86 1     1 1 3 sub name {my $s = shift; return $s->{name}}
  1         8  
87 0     0 1 0 sub creation_time {my $s = shift; return $s->{creation_time}}
  0         0  
88 0     0 1 0 sub last_written {my $s = shift; return $s->{last_written}}
  0         0  
89 0     0 1 0 sub creator {my $s = shift; return $s->{creator}}
  0         0  
90 0     0 1 0 sub presentation {my $s = shift; return $s->{presentation}}
  0         0  
91 0     0 1 0 sub supervisor {my $s = shift; return $s->{supervisor}}
  0         0  
92 0     0 1 0 sub permitted_submitters {my $s = shift; return $s->{permitted_submitters}}
  0         0  
93 0     0 1 0 sub super_conf {my $s = shift; return $s->{super_conf}}
  0         0  
94 0     0 1 0 sub msg_of_day {my $s = shift; return $s->{msg_of_day}}
  0         0  
95 0     0 1 0 sub nice {my $s = shift; return $s->{nice}}
  0         0  
96 0     0 1 0 sub keep_commented {my $s = shift; return $s->{keep_commented}}
  0         0  
97 0     0 1 0 sub no_of_members {my $s = shift; return $s->{no_of_members}}
  0         0  
98 0     0 1 0 sub first_local_no {my $s = shift; return $s->{first_local_no}}
  0         0  
99 0     0 1 0 sub no_of_texts {my $s = shift; return $s->{no_of_texts}}
  0         0  
100 0     0 1 0 sub expire {my $s = shift; return $s->{expire}}
  0         0  
101 0     0 1 0 sub aux_items {my $s = shift; return @{$s->{aux_items}}}
  0         0  
  0         0  
102              
103 0     0 1 0 sub rd_prot {my $s = shift; return $s->{rd_prot}}
  0         0  
104 0     0 1 0 sub original {my $s = shift; return $s->{original}}
  0         0  
105 0     0 1 0 sub secret {my $s = shift; return $s->{secret}}
  0         0  
106 0     0 1 0 sub letterbox {my $s = shift; return $s->{letterbox}}
  0         0  
107 0     0 1 0 sub allow_anonymous {my $s = shift; return $s->{allow_anonymous}}
  0         0  
108 0     0 1 0 sub forbid_secret {my $s = shift; return $s->{forbid_secret}}
  0         0  
109 0     0 1 0 sub highest_local_no {my $s = shift; return $s->{highest_local_no}}
  0         0  
110              
111             sub new_from_stream {
112 1     1 0 4 my $s = {};
113 1         3 my $class = shift;
114              
115 1 50       5 $class = ref($class) if ref($class);
116 1         3 bless $s,$class;
117              
118 1         2 $s->{name} = shift @{$_[0]};
  1         16  
119 1         9 my $type = shift @{$_[0]};
  1         3  
120 1         12 $s->{creation_time} = Net::Lyskom::Time->new_from_stream($_[0]);
121 1         61 $s->{last_written} = Net::Lyskom::Time->new_from_stream($_[0]);
122 1         2 $s->{creator} = shift @{$_[0]};
  1         118  
123 1         3 $s->{presentation} = shift @{$_[0]};
  1         5  
124 1         2 $s->{supervisor} = shift @{$_[0]};
  1         4  
125 1         2 $s->{permitted_submitters} = shift @{$_[0]};
  1         3  
126 1         1 $s->{super_conf} = shift @{$_[0]};
  1         4  
127 1         2 $s->{msg_of_day} = shift @{$_[0]};
  1         4  
128 1         2 $s->{nice} = shift @{$_[0]};
  1         2  
129 1         2 $s->{keep_commented} = shift @{$_[0]};
  1         3  
130 1         2 $s->{no_of_members} = shift @{$_[0]};
  1         3  
131 1         3 $s->{first_local_no} = shift @{$_[0]};
  1         4  
132 1         1 $s->{no_of_texts} = shift @{$_[0]};
  1         3  
133 1         2 $s->{expire} = shift @{$_[0]};
  1         3  
134 1     2   14 $s->{aux_items} = [parse_array_stream(sub{Net::Lyskom::AuxItem->new_from_stream(@_)},$_[0])];
  2         16  
135              
136 1         11 my ($rd_prot,
137             $original,
138             $secret,
139             $letterbox,
140             $allow_anonymous,
141             $forbid_secret,
142             undef,
143             undef) = $type =~ /./g;
144 1         6 $s->{rd_prot} = $rd_prot == 1;
145 1         3 $s->{original} = $original == 1;
146 1         2 $s->{secret} = $secret == 1;
147 1         2 $s->{letterbox} = $letterbox == 1;
148 1         11 $s->{allow_anonymous} = $allow_anonymous == 1;
149 1         2 $s->{forbid_secret} = $forbid_secret == 1;
150              
151 1         7 return $s;
152             }
153              
154             sub new_from_ustream {
155 0     0 0   my $s = {};
156 0           my $class = shift;
157              
158 0 0         $class = ref($class) if ref($class);
159 0           bless $s,$class;
160              
161 0           $s->{name} = shift @{$_[0]};
  0            
162 0           my $type = shift @{$_[0]};
  0            
163 0           $s->{highest_local_no} = shift @{$_[0]};
  0            
164 0           $s->{nice} = shift @{$_[0]};
  0            
165              
166 0           my ($rd_prot,
167             $original,
168             $secret,
169             $letterbox,
170             $allow_anonymous,
171             $forbid_secret ) = $type =~ /./g;
172 0           $s->{rd_prot} = $rd_prot == 1;
173 0           $s->{original} = $original == 1;
174 0           $s->{secret} = $secret == 1;
175 0           $s->{letterbox} = $letterbox == 1;
176 0           $s->{allow_anonymous} = $allow_anonymous == 1;
177 0           $s->{forbid_secret} = $forbid_secret == 1;
178              
179 0           return $s;
180             }
181              
182             1;