projects:bbs_pm:manual:005
このページの2つのバージョン間の差分を表示します。
| projects:bbs_pm:manual:005 [2021/09/27 20:09] – 作成 - 外部編集 127.0.0.1 | projects:bbs_pm:manual:005 [2025/03/29 04:19] (現在) – naoit0 | ||
|---|---|---|---|
| 行 11: | 行 11: | ||
| ===== はじめに ===== | ===== はじめに ===== | ||
| - | ここではメインプログラムの作り方について説明します。\\ | + | |
| + | 呼び出されるハンドラに処理ルーチンを設定することで、アプリケーションサーバを作成することができます。\\ | ||
| - | 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-> | + | |
| + | # 【 ユーザがログオンしたときの処理をここに定義 】 | ||
| } | } | ||
| - | 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; | + | |
| - | | + | |
| } | } | ||
| + | |||
| + | ## 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-> | ||
| - | $bbs-> | ||
| - | $bbs-> | ||
| - | $bbs-> | ||
| - | $bbs-> | ||
| $bbs-> | $bbs-> | ||
| </ | </ | ||
| 行 59: | 行 79: | ||
| メインプログラムでは以下の4つの手順を行います。\\ | メインプログラムでは以下の4つの手順を行います。\\ | ||
| - | < | + | < |
| - | (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; | ||
| </ | </ | ||
| - | とすることでロードされ、作成したオブジェクトに対して命令を行うことでサーバアプリケーションを操作します。\\ | + | BBS.pmはメインプログラムにロードし、作成したオブジェクトに対して命令を行うことで、サーバアプリケーションの処理を行います。\\ |
| + | 各ハンドラは、BBS.pmのハンドラ関数にオーバーライドすることでハンドラが機能しますので、ロードしたら必ず、 | ||
| + | |||
| + | <code perl> | ||
| + | use base qw( BBS ); | ||
| + | # または | ||
| + | # our @ISA = qw( BBS ); | ||
| + | </ | ||
| + | |||
| + | のように定義して継承を行います。\\ | ||
| \\ | \\ | ||
projects/bbs_pm/manual/005.1632740990.txt.gz · 最終更新: 2021/09/27 20:09 by 127.0.0.1