package World2; # This is class level cell with no constructor or alias registration. # It has two command message handlers, one to get the name and one to set it. my $name = 'UNKNOWN' ; sub hello_cmd { return "Hello world from $name\n"; } sub name_cmd { my ( $self, $msg ) = @_ ; my $data = $msg->data() ; return unless $data ; $name = ${$data} ; return ; } =head1 Stem Cookbook - World2 =head1 NAME World2 - A minimal class level B cell with read/write data. =head1 DESCRIPTION This B class level cell is an extension of the World1 class. It still has a method named C that will return the stored name. The C method takes a message and set the $name to its data. =head2 COMMAND METHOD The following code snippet in the F class cell is the method that will receive a hello command from a remote sender. package World2; sub hello_cmd { return "Hello world!\n"; } B makes the creation of Command message handling methods very I. Any return with defined data will automatically be sent back to the sender of this command in a response type message. In the method above we return the "Hello world!\n" string which will get printed on the console. For more information on how a message is routed to its destination cell in B please see the F. =head1 THE CONFIGURATION FILE The following B configuration file is used to bring a World2 class level cell into existance in the B environment. [ class => 'Stem::Console', ], [ class => 'World2', ] The first entry is C, class level cell allows a user to manually send command messages into the B system. It is not required for this module, but it is used in this example to send messages to the World2 class and to print responses from it. The second entry loads the C class. We can now refer to this class cell as I when we want to send it a message. =head1 USAGE Execute C from the command line to run this configuration. You will be greeted with the B> prompt. It is now possible to send a message manually to I. Type the following command at the B prompt: B This is standard B Console syntax, the cell address followed by the command name. This will send a message world_cmd method in the C class cell. That method returns a value, which is converted into a response message addressed to Stem::Console (the originator of the command message), and its data will be printed on the console terminal. B<"Hello world!"> =head1 SEE ALSO F F =cut 1;