-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtelepresenceAdapter.ts
31 lines (24 loc) · 1.12 KB
/
telepresenceAdapter.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import type { TelepresenceAdapter, OnlineAgent, PerspectiveExpression, TelepresenceSignalCallback, HolochainLanguageDelegate, LanguageContext } from "https://esm.sh/@perspect3vism/ad4m@0.5.0";;
import { DNA_NICK, ZOME_NAME } from "./build/dna.js";
export class TelepresenceAdapterImplementation implements TelepresenceAdapter {
hcDna: HolochainLanguageDelegate;
signalCallbacks: TelepresenceSignalCallback[] = [];
constructor(context: LanguageContext) {
this.hcDna = context.Holochain as HolochainLanguageDelegate;
}
async setOnlineStatus(status: PerspectiveExpression): Promise<void> {
await this.hcDna.call(DNA_NICK, ZOME_NAME, "set_online_status", status);
}
async getOnlineAgents(): Promise<OnlineAgent[]> {
return []
}
async sendSignal(remoteAgentDid: string, payload: PerspectiveExpression): Promise<object> {
return {};
}
async sendBroadcast(payload: PerspectiveExpression): Promise<object> {
return {};
}
async registerSignalCallback(callback: TelepresenceSignalCallback): Promise<void> {
this.signalCallbacks.push(callback);
}
}