UNPKG

@xmobitea/gn-server

Version:
133 lines (132 loc) 5.82 kB
import { SecretInfo } from "./../../GN-common/entity/SecretInfo"; import { OperationRequest } from "./../../GN-common/entity/operationRequest/OperationRequest"; import { OperationResponse } from "./../../GN-common/entity/operationResponse/OperationResponse"; import { IPostEventCallbackService, IPreEventCallbackService, OnPostCallbackFunction, OnPreCallbackFunction } from "./IEventCallbackService"; import * as mongoDB from "mongodb"; import { GNServer } from "../../GNServer"; import { GNServerSettingsOptions } from "@xmobitea/gn-typescript-client"; import { OperationEvent } from "../../GN-common/entity/operationEvent/OperationEvent"; import { MatchmakingTicketCanMatch } from "../handler/controller/handler/multiplayer/MatchmakingHandler"; interface DbConnection { url: string; dbName: string; options?: { [k: string]: any; }; } export interface EventCallbackCloudScriptFunction { type: string; version: string; fullScript: string; tsLastUpdate: number; childScripts: { eventName: string; script: string; hasEdit: boolean; }[]; } export interface IEventCallbackCloudScriptService { executeRequestServerDetailSystem(gameId: string, matchmakingTicketCanMatch: MatchmakingTicketCanMatch): Promise<{ success: boolean; }>; executePost(eventName: string, request: { [k: string]: any; }, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>; executeEvent(eventName: string, request: { [k: string]: any; }, operationEvent: OperationEvent): Promise<void>; executePre(eventName: string, request: { [k: string]: any; }, secretInfo: SecretInfo, operationRequest: OperationRequest): Promise<OperationResponse>; addCloudScriptFunction(eventName: string, script: string): Promise<{ success: boolean; errorMessage?: string; version?: string; }>; getAllCloudScriptFunction(): Promise<{ type: string; version: string; fullScript: string; tsLastUpdate: number; childScripts: { eventName: string; script: string; hasEdit: boolean; }[]; }[]>; } export declare class EventCallbackCloudScriptService implements IEventCallbackCloudScriptService { private static readonly ExecuteTimeoutInMs; private static readonly SystemExecuteTimeoutInMs; private static readonly OnEveryMinute; private static readonly OnEveryHour; private static readonly OnEveryDay; private cloudScriptWorkerDict; private cloudScriptWaitingResponseCallbackDict; private cloudScriptFunctionCollection; private backupCloudScriptFunctionCollection; private gnServer; private gnServerSettingsOptions; private dbConnection; private cloudScriptFunctionDict; constructor(); getAllCloudScriptFunction(): Promise<{ type: string; version: string; fullScript: string; tsLastUpdate: number; childScripts: { eventName: string; script: string; hasEdit: boolean; }[]; }[]>; init(gnServerSettingsOptions: GNServerSettingsOptions, dbConnection: DbConnection, gnServer: GNServer): void; setCloudScriptFunctionCollection(cloudScriptFunctionCollection: mongoDB.Collection<mongoDB.Document>): void; setBackupCloudScriptFunctionCollection(cloudScriptFunctionCollection: mongoDB.Collection<mongoDB.Document>): void; run(): void; private loadVersion; private executeSystem; executeRequestServerDetailSystem(gameId: string, matchmakingTicketCanMatch: MatchmakingTicketCanMatch): Promise<{ success: boolean; }>; executeEvent(eventName: string, request: { [k: string]: any; }, operationEvent: OperationEvent): Promise<void>; executePre(eventName: string, request: { [k: string]: any; }, secretInfo: SecretInfo, operationRequest: OperationRequest): Promise<OperationResponse>; executePost(eventName: string, request: { [k: string]: any; }, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>; private loadCloudScriptFunctionWorkerFromCache; addCloudScriptFunction(eventName: string, script: string): Promise<{ success: boolean; errorMessage?: string; version?: string; }>; private remoteAddCloudScriptFunction; private loadCloudScriptFunctionWorker; private loadCloudScriptWorker; } export declare class PostEventCallbackService implements IPostEventCallbackService { private eventLstDict; constructor(); private eventCallbackCollection; private cloudScriptService; subscriberEvent(eventName: string, callbackFunction: OnPostCallbackFunction): void; unSubscriberEvent(eventName: string, callbackFunction: OnPostCallbackFunction): void; setEventCallbackCollection(eventCallbackCollection: mongoDB.Collection<mongoDB.Document>): void; setCloudScriptService(cloudScriptService: IEventCallbackCloudScriptService): void; onEvent(eventName: string, request: {}, secretInfo: SecretInfo, operationRequest: OperationRequest, operationResponse: OperationResponse): Promise<void>; } export declare class PreEventCallbackService implements IPreEventCallbackService { private eventDict; private cloudScriptService; constructor(); subscriberEvent(eventName: string, callbackFunction: OnPreCallbackFunction): void; unSubscriberEvent(eventName: string): void; setCloudScriptService(cloudScriptService: IEventCallbackCloudScriptService): void; onEvent(eventName: string, request: {}, secretInfo: SecretInfo, operationRequest: OperationRequest): Promise<OperationResponse>; } export {};