--- trunk/lib/Frey/Server.pm 2008/06/29 20:48:35 30 +++ trunk/lib/Frey/Server.pm 2008/06/30 07:06:11 34 @@ -15,19 +15,37 @@ use vars qw( $repl $server ); +#$repl = Continuity::REPL->new; +$server = Continuity->new( + port => 16001, + path_session => 1, + cookie_session => 'sid', + callback => \&main, +); +$server->debug_level( 2 ); sub run { - $repl = Continuity::REPL->new; - $server = Continuity->new( - port => 16001, - path_session => 1, - cookie_session => 'sid', - callback => \&main, - ); - $server->debug_level( 2 ); $server->loop; } +my @callbacks; +my $callback_count; + +sub gen_link { + my ($text, $code) = @_; + $callbacks[$callback_count++] = $code; + return qq{$text}; +} + +sub process_links { + my $request = shift; + my $cb = $request->param('cb'); + if (exists $callbacks[$cb]) { + $callbacks[$cb]->($request); + delete $callbacks[$cb]; + } +} + # This is the main entrypoint. We are looking for one of three things -- a # pushstream, a sent message, or a request for the main HTML. We delegate each # of these cases, none of which will return (they all loop forever).