Author: dylan
Date: 2005-06-21 02:40:16 -0400 (Tue, 21 Jun 2005)
New Revision: 787
Added:
trunk/perl/server/lib/Haver/Server/Config.pm
Modified:
trunk/
trunk/perl/server/bin/haverd.pl
trunk/perl/server/lib/Haver/Server.pm
Log:
[EMAIL PROTECTED]: dylan | 2005-06-21 02:36:54 -0400
Okay, getting more like a proper server now.
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/havercurs-objc:43050
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:1126
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
+ 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/havercurs-objc:43050
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:1127
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
Modified: trunk/perl/server/bin/haverd.pl
===================================================================
--- trunk/perl/server/bin/haverd.pl 2005-06-21 06:40:14 UTC (rev 786)
+++ trunk/perl/server/bin/haverd.pl 2005-06-21 06:40:16 UTC (rev 787)
@@ -19,30 +19,8 @@
use strict;
use warnings;
use lib qw( lib ../core/lib );
-use Haver::Server::Entity::User;
-use Haver::Server::Entity::Channel;
-use Haver::Server::Entity::Lobby;
-use Haver::Server::Listener;
-
-
use POE;
+use Haver::Server;
-create Haver::Server::Listener (
- lobby => new Haver::Server::Entity::Lobby,
-);
-
-
-POE::Session->create(
- inline_states => {
- _start => sub {
- $_[KERNEL]->post('Listener', 'listen', {
- host => 'hardison.net',
- port => 7070,
- });
- },
- });
-
-
-
-
+create Haver::Server;
POE::Kernel->run;
Added: trunk/perl/server/lib/Haver/Server/Config.pm
===================================================================
--- trunk/perl/server/lib/Haver/Server/Config.pm 2005-06-21 06:40:14 UTC
(rev 786)
+++ trunk/perl/server/lib/Haver/Server/Config.pm 2005-06-21 06:40:16 UTC
(rev 787)
@@ -0,0 +1,91 @@
+# vim: set ts=4 sw=4 noexpandtab si ai sta tw=100:
+# This module is copyrighted, see end of file for details.
+package Haver::Server::Config;
+use strict;
+use warnings;
+
+use Haver::Config -base;
+
+our $VERSION = 0.01;
+our $File = 'haverd.yml';
+our $Merge = {
+ Interfaces => [
+ {
+ Host => 'hardison.net',
+ Port => 7070,
+ },
+ ],
+};
+
+
+sub initialize {
+ my $self = shift;
+ if (not $self->file) {
+ $self->file($File);
+ }
+ $self->load($self->file);
+ $self->merge($Merge);
+}
+
+1;
+__END__
+=head1 NAME
+
+Haver::Server::Config - description
+
+=head1 SYNOPSIS
+
+ use Haver::Server::Config;
+ # Small code example.
+
+=head1 DESCRIPTION
+
+FIXME
+
+=head1 INHERITENCE
+
+Haver::Server::Config extends blaa blaa blaa
+
+=head1 CONSTRUCTOR
+
+List required parameters for new().
+
+=head1 METHODS
+
+This class implements the following methods:
+
+=head2 method1(Z<>)
+
+...
+
+=head1 BUGS
+
+None known. Bug reports are welcome. Please use our bug tracker at
+L<http://gna.org/bugs/?func=additem&group=haver>.
+
+=head1 AUTHOR
+
+Dylan William Hardison, E<lt>[EMAIL PROTECTED]<gt>
+
+=head1 SEE ALSO
+
+L<http://www.haverdev.org/>.
+
+=head1 COPYRIGHT and LICENSE
+
+Copyright (C) 2005 by Dylan William Hardison. All Rights Reserved.
+
+This module is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This module is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this module; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
Modified: trunk/perl/server/lib/Haver/Server.pm
===================================================================
--- trunk/perl/server/lib/Haver/Server.pm 2005-06-21 06:40:14 UTC (rev
786)
+++ trunk/perl/server/lib/Haver/Server.pm 2005-06-21 06:40:16 UTC (rev
787)
@@ -20,9 +20,57 @@
use strict;
use warnings;
+use Haver::Session -base;
+use Haver::Server::Listener;
+use Haver::Server::Talker;
+use Haver::Server::Entity::User;
+use Haver::Server::Entity::Channel;
+use Haver::Server::Entity::Lobby;
+use Haver::Server::Config;
+
our $VERSION = 0.08;
+our $Alias = 'Server';
+sub states {
+ return [qw(
+ _start _stop shutdown
+ )];
+}
+sub create {
+ my $self = shift;
+ Log('debug', "Booting Haver::Server v$VERSION");
+ super;
+}
+sub _start {
+ my ($kernel, $heap, $opt) = @_[KERNEL, HEAP, ARG0];
+ $kernel->alias_set($Alias);
+ Log('debug', "$Alias starts.");
+ my $config = new Haver::Server::Config;
+ my $lobby = new Haver::Server::Entity::Lobby;
+ create Haver::Server::Listener (
+ lobby => $lobby,
+ );
+ foreach my $iface (@{ $config->get('Interfaces') }) {
+ $kernel->post('Listener', 'listen', {
+ host => $iface->{Host},
+ port => $iface->{Port},
+ }
+ );
+ }
+}
+
+sub _stop {
+ my ($kernel, $heap) = @_[KERNEL, HEAP];
+ Log('debug', "$Alias stops");
+}
+
+sub shutdown {
+ my ($kernel, $heap) = @_[KERNEL, HEAP];
+
+ $kernel->alias_remove($Alias);
+}
+
1;