4.1 KiB
4.1 KiB
ビルトインBox型 API リファレンス
Nyashで利用できる全ビルトインBox型のAPI仕様書です。
📡 P2PBox - 通信ノードBox
P2P通信を行うノードを表すBox。通信世界(IntentBox)に参加してメッセージを送受信できます。
コンストラクタ
// 通信ノードを作成
local node = new P2PBox(node_id, world)
パラメータ:
node_id(String): ノードの一意識別子world(IntentBox): 参加する通信世界
メソッド
send(intent, data, target)
特定のノードにメッセージを送信します。
local result = node.send("greeting", message_data, "target_node_id")
パラメータ:
intent(String): メッセージの種類data(Box): 送信するデータtarget(String): 送信先ノードID
戻り値: StringBox("sent")
on(intent, callback)
指定したintentのメッセージを受信した際のリスナーを登録します。
node.on("chat", callback_function)
パラメータ:
intent(String): 監視するメッセージ種類callback(MethodBox): 受信時に呼ばれる関数
戻り値: StringBox("listener added")
off(intent)
指定したintentのリスナーを解除します。
node.off("chat")
パラメータ:
intent(String): 解除するメッセージ種類
戻り値: StringBox("listener removed" / "no listener found")
get_node_id()
このノードのIDを取得します。
local id = node.get_node_id()
戻り値: StringBox(ノードID)
使用例
// 通信世界を作成
local world = new IntentBox()
// 2つのノードを作成
local alice = new P2PBox("alice", world)
local bob = new P2PBox("bob", world)
// Bobがgreetingを受信するリスナー設定
bob.on("greeting", greeting_handler)
// AliceからBobにメッセージ送信
local message = new MapBox()
message.set("text", "Hello Bob!")
alice.send("greeting", message, "bob")
📨 IntentBox - 通信世界Box
P2PBoxが通信を行うための世界(ネットワーク)を表すBox。複数のノードが同一のIntentBoxを共有して通信します。
コンストラクタ
// 通信世界を作成
local world = new IntentBox()
パラメータ: なし
特徴
- ローカル通信: 同一プロセス内のP2PBox間でメッセージをやり取り
- スレッドセーフ: Arcにより並行アクセス対応
- 将来拡張: WebSocket版や分散版への拡張予定
使用例
// 1つの通信世界に複数ノードが参加
local world = new IntentBox()
local node1 = new P2PBox("server", world)
local node2 = new P2PBox("client", world)
// 同一世界内での通信が可能
node1.send("data", payload, "client")
📝 StringBox - 文字列Box
文字列データを格納・操作するBox。
コンストラクタ
local text = new StringBox("Hello")
基本メソッド
toString(): 文字列表現を取得length(): 文字列長を取得concat(other): 文字列結合substring(start, end): 部分文字列取得
🔢 IntegerBox - 整数Box
整数データを格納・操作するBox。
コンストラクタ
local num = new IntegerBox(42)
基本メソッド
toString(): 文字列表現を取得add(other): 加算subtract(other): 減算multiply(other): 乗算divide(other): 除算
📺 ConsoleBox - コンソール出力Box
コンソールへの出力を行うBox。
コンストラクタ
local console = new ConsoleBox()
メソッド
log(message): メッセージをログ出力error(message): エラーメッセージを出力
🗂️ MapBox - 連想配列Box
キー・バリューペアでデータを格納するBox。
コンストラクタ
local map = new MapBox()
メソッド
set(key, value): キー・バリューを設定get(key): 値を取得has(key): キーが存在するかチェックremove(key): キー・バリューを削除
最終更新: 2025年8月11日