+# add a user to this node
+# returns Route::User if it is a new user;
+sub add_node
+{
+ my ($self, $nref) = @_;
+ my $r = $self->is_empty('nodes');
+ $self->_addlist('nodes', $nref);
+ $nref->_addlist('users', $self);
+ $nref->{usercount} = scalar @{$nref->{users}};
+ return $r ? ($self) : ();
+}
+
+# delete a user from this node
+sub del_user
+{
+ my ($self, $nref) = @_;
+
+ $self->_dellist('nodes', $nref);
+ $nref->_dellist('users', $self);
+ $nref->{usercount} = scalar @{$nref->{users}};
+ return $self->is_empty('nodes') ? ($self) : ();
+}
+
+sub nodes
+{
+ my $self = shift;
+ return @{$self->{nodes}};
+}
+
+#
+# pc59 entity encoding and decoding
+#
+sub enc_pc59
+{
+ my $self = shift;
+ my $sort = shift || 'U';
+ my $out = "$sort$self->{flags}$self->{call}";
+ return $out;
+}
+