blob: 0324821c721457d45b08a14acfef3041f48796b5 (
plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
$OpenBSD: OpenBSD::PackingElement.pod,v 1.1 2005/02/28 13:08:41 espie Exp $
=head1 NAME
OpenBSD::PackingElement - C<pkg_add(1)> packing-elements object hierarchy
=head1 SYNOPSIS
package OpenBSD::PackingElement;
sub method
{
}
package OpenBSD::PackingElement::Depend;
sub method
{
my ($self, $args) = @_;
# do something
}
package main;
use OpenBSD::PackingList;
$plist = OpenBSD::PackingList->fromfile($filename);
$plist->visit('method', @args);
=head1 DESCRIPTION
C<OpenBSD::PackingElement> is the base class for all elements in a
packing-list (see L<OpenBSD::PackingList>).
Manipulation of packing-lists mostly occurs through visitor patterns
such as C<OpenBSD::PackingList::visit>: client code defines a method for
each relevant class in the hierarchy and calls C<$plist-E<gt>visit('method')>
to perform the processing.
=over 4
=item ::Meta
base class for all meta information that can be reordered at will.
=over 4
=item ::Unique
meta information with uniqueness properties.
=over 4
=item ::ExtraInfo
=item ::Name
=back
=item ::Depend
all dependency information.
=over 4
=item ::PkgDep
deprecated
=item ::NewDepend
deprecated
=item ::LibDepend
deprecated
=item ::Wantlib
=item ::Dependency
=back
=item ::Conflict
=over 4
=item ::PkgConflict
deprecated
=item ::Conflict
=back
=back
=item ::Annotation
=item ::Object
somewhat concrete elements in packing-lists.
=over 4
=item ::FileObject
objects with a filename.
=over 4
=item ::FileBase
abstract class for files.
=item ::DirlikeObject
abstract class for directories.
=back
=item ::Action
stuff that performs some action during addition/removal of package.
=item ::State
annotation-like stuff that can't be easily moved around because it influences
surrounding objects.
=back
=back
=head1 CAVEATS
Some aspects of this API are likely to change in the future, although the
basic class hierarchy is now more or less worked out.
|