1 MODULE = Atheme			PACKAGE = Atheme::ChannelRegistration
2 
3 Atheme_ChannelRegistration
4 find(SV * package, const char * name)
5 CODE:
6 	RETVAL = mychan_find(name);
7 OUTPUT:
8 	RETVAL
9 
10 const char *
11 name(Atheme_ChannelRegistration self)
12 CODE:
13 	RETVAL = self->name;
14 OUTPUT:
15 	RETVAL
16 
17 Atheme_Channel
18 chan(Atheme_ChannelRegistration self)
19 CODE:
20 	RETVAL = self->chan;
21 OUTPUT:
22 	RETVAL
23 
24 Atheme_Internal_List
25 chanacs(Atheme_ChannelRegistration self)
26 CODE:
27 	RETVAL = perl_list_create(&self->chanacs, "Atheme::ChanAcs");
28 OUTPUT:
29 	RETVAL
30 
31 void
32 drop(Atheme_ChannelRegistration self)
33 CODE:
34     hook_call_channel_drop (self);
35 
36     if (self->chan != NULL && !(self->chan->flags & CHAN_LOG)) {
37         part (self->name, chansvs.nick);
38     }
39 
40     object_unref (self);
41 
42 void
43 transfer (Atheme_ChannelRegistration self, Atheme_Sourceinfo si, Atheme_Entity user)
44 CODE:
45 	mowgli_node_t *n;
46 
47 	chanacs_t *ca;
48 
49     MOWGLI_ITER_FOREACH(n, self->chanacs.head)
50 	{
51 		ca = n->data;
52 		if (ca->entity != NULL && ca->level & CA_FOUNDER)
53 			chanacs_modify_simple(ca, CA_FLAGS, CA_FOUNDER);
54 	}
55 
56 	self->used = CURRTIME;
57 	chanacs_change_simple(self, user, NULL, CA_FOUNDER_0, 0, entity(si->smu));
58 
59     metadata_delete(self, "private:verify:founderchg:newfounder");
60 	metadata_delete(self, "private:verify:founderchg:timestamp");
61 
62 time_t
63 used_time (Atheme_ChannelRegistration self)
64 CODE:
65     RETVAL = self->used;
66 OUTPUT:
67     RETVAL
68 
69 unsigned int
70 flags (Atheme_ChannelRegistration self, unsigned int newflags = 0)
71 CODE:
72     if (items > 1)
73         self->flags = newflags;
74     RETVAL = self->flags;
75 OUTPUT:
76     RETVAL
77 
78 MODULE = Atheme			PACKAGE = Atheme::ChanAcs
79 
80 Atheme_ChannelRegistration
81 channel(Atheme_ChanAcs self)
82 CODE:
83 	RETVAL = self->mychan;
84 OUTPUT:
85 	RETVAL
86 
87 Atheme_Entity
88 entity(Atheme_ChanAcs self)
89 CODE:
90 	RETVAL = self->entity;
91 OUTPUT:
92 	RETVAL
93 
94 Atheme_Account
95 user(Atheme_ChanAcs self)
96 CODE:
97 	if (!self->entity || self->entity->type != ENT_USER)
98 		RETVAL = NULL;
99 	else
100 		RETVAL = (Atheme_Account)self->entity;
101 OUTPUT:
102 	RETVAL
103 
104 const char *
105 hostmask(Atheme_ChanAcs self)
106 CODE:
107 	RETVAL = self->host;
108 OUTPUT:
109 	RETVAL
110 
111 const char *
112 namestr(Atheme_ChanAcs self)
113 CODE:
114 	if (self->entity)
115 		RETVAL = self->entity->name;
116 	else
117 		RETVAL = self->host;
118 OUTPUT:
119 	RETVAL
120 
121 unsigned int
122 flags(Atheme_ChanAcs self)
123 CODE:
124 	RETVAL = self->level;
125 OUTPUT:
126 	RETVAL
127 
128 const char *
129 flagstr(Atheme_ChanAcs self)
130 CODE:
131 	RETVAL = bitmask_to_flags(self->level);
132 OUTPUT:
133 	RETVAL
134 
135 time_t
136 modified(Atheme_ChanAcs self)
137 CODE:
138 	RETVAL = self->tmodified;
139 OUTPUT:
140 	RETVAL
141 
142 const char *
143 datestr(Atheme_ChanAcs self)
144 CODE:
145 	RETVAL = time_ago(self->tmodified);
146 OUTPUT:
147 	RETVAL
148 
149