ユーザ用ツール

サイト用ツール


projects:bbs_pm:manual:005

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

projects:bbs_pm:manual:005 [2021/09/27 20:09] – 作成 - 外部編集 127.0.0.1projects:bbs_pm:manual:005 [2025/03/29 04:19] (現在) naoit0
行 11: 行 11:
 ===== はじめに ===== ===== はじめに =====
  
-ここでインプログラの作り方ついて説明します。\\+ BBS.pm はイト駆動システで、イベントが発生するとイベント連動てハンドラが呼び出されます。\\ 
 +呼び出されるハンドラに処理ルーチンを設定することで、アプリケーションサーバを作成することができます。\\
  
-BBS.pmはイベント駆動システムでイベントが発生するとイベントに連動してハンドラが呼び出されます。\\ +の章では、メインプログラムり方ついて説明します。\\
- +
-呼び出されるハンドラに処理ルーチンを設定するアプリケーションサーバを作成することができます。\\ +
- +
-BBS.pmの制約ごくわずかですので自由なコードスタイルでメインプログラム成することができますが、ひな形を使うことで簡単作成することができます。\\+
  
 +メインプログラムはひな形を使うことで簡単に作成することができますが、慣れれば、自由なコードスタイルで作成することも可能です。\\
 以下はメインプログラムのひな形です。\\ 以下はメインプログラムのひな形です。\\
  
 <code perl> <code perl>
 package App; package App;
 +
 use BBS; use BBS;
 +use base qw( BBS );
 +
 my $bbs = new BBS; my $bbs = new BBS;
  
-sub onconnect {+#================== 
 +# ● ハンドラ 
 +#================== 
 +## Logon 
 +sub logon {
   my $self = shift;   my $self = shift;
-  $self->setapphandler( sub { $self->App::appWork(@_) } );+ 
 +  # 【 ユーザがログオンしたときの処理をここに定義 】
 } }
-sub ondisconnect {+ 
 +## Logoff 
 +sub logoff {
   my $self = shift;   my $self = shift;
 +
 +  # 【 ユーザがログオフしたときの処理をここに定義 】
 } }
-sub onrecv {+ 
 +## Input 
 +sub input {
   my $self = shift;   my $self = shift;
-  my $recvdata = shift; + 
-+  # 【 ユーザから送信されたデータを受信したときの処理をここに定義 】
-sub onsend { +
-  my $self = shift; +
-  my $senddata = shift;+
 } }
 +
 +## Output
 sub output { sub output {
   my $self = shift;   my $self = shift;
-  return $senddata;+ 
 +  # 【 ユーザへのデータ送出処理をここに定義 】
 } }
 +
 +## Appwork
 sub appwork { sub appwork {
   my $self = shift;   my $self = shift;
 +
 +  # 【 アプリケーションサーバ処理(ノードからのリクエスト処理)をここに定義 】
 +}
 +
 +#==================
 +# ● 関数
 +#==================
 +## send()
 +sub onsend {
 +  my $self = shift;
 +  my $senddata = shift;
 } }
  
-$bbs->setsyshandler('onConnect',    sub { $bbs->App::onconnect(@_) }); 
-$bbs->setsyshandler('onDisconnect', sub { $bbs->App::ondisconnect(@_) }); 
-$bbs->setsyshandler('onRecv',       sub { $bbs->App::onrecv(@_) }); 
-$bbs->setsyshandler('onSend',       sub { $bbs->App::onsend(@_) }); 
-$bbs->setsyshandler('Output',       sub { $bbs->App::output(@_) }); 
 $bbs->start(8888); $bbs->start(8888);
 </code> </code>
行 59: 行 79:
 メインプログラムでは以下の4つの手順を行います。\\ メインプログラムでは以下の4つの手順を行います。\\
  
-<blockquote > +<blockquote> 
-(1) [[#bbspmのロードとオブジェクト作成|BBS.pmのロードとオブジェクトの作成]]\\+(1) [[#bbs.pmのロードとオブジェクト作成|BBS.pmのロードとオブジェクトの作成]]\\
 (2) [[#各ハンドラで実行するルーチンの定義|各ハンドラで実行するルーチンの定義]]\\ (2) [[#各ハンドラで実行するルーチンの定義|各ハンドラで実行するルーチンの定義]]\\
 (3) [[#実行するルーチンのハンドラ設定|実行するルーチンのハンドラ設定]]\\ (3) [[#実行するルーチンのハンドラ設定|実行するルーチンのハンドラ設定]]\\
行 68: 行 88:
 \\ \\
 ===== (1) BBS.pmのロードとオブジェクト作成 ===== ===== (1) BBS.pmのロードとオブジェクト作成 =====
- 
-BBS.pmはメインプログラムから 
  
 <code perl> <code perl>
 +package App;
 +
 use BBS; use BBS;
 +use base qw( BBS );
 +
 my $bbs = new BBS; my $bbs = new BBS;
 </code> </code>
  
-とすることでロードされ、作成したオブジェクトに対して命令を行うことでサーバアプリケーションを操作します。\\+BBS.pmはメインプログラムにロード、作成したオブジェクトに対して命令を行うことでサーバアプリケーションの処理行います。\\ 
 +各ハンドラは、BBS.pmのハンドラ関数にオーバーライドすることでハンドラが機能ますので、ロードしたら必ず、 
 + 
 +<code perl> 
 +use base qw( BBS ); 
 +# または 
 +# our @ISA = qw( BBS ); 
 +</code> 
 + 
 +のように定義して継承を行います。\\
  
 \\ \\
projects/bbs_pm/manual/005.1632740990.txt.gz · 最終更新: 2021/09/27 20:09 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki