/[cvs]/nfo/perl/libs/OEF/Component/WebService/RpcXml.pm
ViewVC logotype

Diff of /nfo/perl/libs/OEF/Component/WebService/RpcXml.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by joko, Fri Apr 4 17:28:59 2003 UTC revision 1.5 by joko, Tue Jul 1 18:11:15 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ##  ------------------------------------------------------------------------  ##  ------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.5  2003/07/01 18:11:15  joko
6    ##  fixed: renamed package name according to new filenames
7    ##
8    ##  Revision 1.4  2003/06/06 03:24:14  joko
9    ##  + SymbolAliasing
10    ##
11  ##  Revision 1.3  2003/04/04 17:28:59  joko  ##  Revision 1.3  2003/04/04 17:28:59  joko
12  ##  minor update: commented hardcoded stuff  ##  minor update: commented hardcoded stuff
13  ##  ##
# Line 14  Line 20 
20  ##  ------------------------------------------------------------------------  ##  ------------------------------------------------------------------------
21    
22    
23  package OEF::Component::WebService;  package OEF::Component::WebService::RpcXml;
24    
25  use strict;  use strict;
26  use warnings;  use warnings;
# Line 26  use Data::Dumper; Line 32  use Data::Dumper;
32  use RPC::XML;  use RPC::XML;
33  use RPC::XML::SessionServer;  use RPC::XML::SessionServer;
34  use RPC::XML::Procedure;  use RPC::XML::Procedure;
35    use Data::Mungle::Code::Symbol qw( alias_simple );
36    
37  # this is a global counter for giving unnamed webservices a unique id  # this is a global counter for giving unnamed webservices a unique id
38  our $instance_counter;  our $instance_counter;
# Line 59  sub start { Line 66  sub start {
66      );      );
67            
68    # API    # API
69      # load api module    
70        # 1. load api module
71      my $api = DesignPattern::Object->fromPackage($self->{api_module}) or die("Could not load Api-Module '$self->{api_module}'.");      my $api = DesignPattern::Object->fromPackage($self->{api_module}) or die("Could not load Api-Module '$self->{api_module}'.");
72      # build complete bunch of api declaration metadata handling recursive plugin declaration and stuff ...      # build complete bunch of api declaration metadata handling recursive plugin declaration and stuff ...
73      #$api->build([qw( OEF::YAA::API::Jobs )]);      #$api->build([qw( OEF::YAA::API::Jobs )]);
74      $api->build($self->{api_submodules});      $api->build($self->{api_submodules});
75      # get it!      
76        # 2. query it for to-be-published methods ...
77      my $procs = $api->getApiMetadata() or die("Could not load Api-Declarations from '$self->{api_module}'.");      my $procs = $api->getApiMetadata() or die("Could not load Api-Declarations from '$self->{api_module}'.");
78      # ... and propagate metadata for each method to daemon instance which is not yet running      # ... and propagate metadata for each method to daemon instance which is not yet running
79      foreach my $proc (@{$procs}) {      foreach my $proc (@{$procs}) {
80        $self->{_daemon}->add_method($proc);        $self->{_daemon}->add_method($proc);
81      }      }
82        
83        # 3. SymbolAliasing: query it for to-be-established symbols ...
84        my $symbols;
85        $symbols = $api->getSymbolMetadata() if $api->can("getSymbolMetadata");
86        # ... and vivify them each pointing to a reference.
87        foreach my $symbol (@{$symbols}) {
88          $symbol->{slot} = $self->{_daemon};
89          alias_simple($symbol);
90        }
91    
92    # run service / activate instance    # run service / activate instance
93      # Never returns...      # Never returns...

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.5

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed