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;


Reply via email to