* -------------------------------------------------------------------------
* This file is part of the MindStudio project.
* Copyright (c) 2025 Huawei Technologies Co.,Ltd.
*
* MindStudio is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* -------------------------------------------------------------------------
*/
import { makeAutoObservable } from 'mobx';
import type { Ilinetable, JsonInstructionType } from '../components/hotMethod/defs';
export interface DirInfo {
rankId: string;
isCompare: boolean;
};
export enum InstructionSelectSource {
DEFAULT = 'default',
CACHE = 'cache',
}
export interface CacheUnit {
cachelineId?: number;
addressRange: string[][];
}
export const defaultCacheUnit = { cachelineId: -1, addressRange: [] };
export class Session {
language: 'zhCN' | 'enUS' = 'enUS';
loggedCodeLines: Ilinetable[] = [];
instrVersion: number = -1;
coreList: string[] = [];
sourceList: string[] = [];
instructions: JsonInstructionType[] = [];
parseStatus: boolean = false;
updateId: number = 0;
blockIdList: string[] = [];
theme: string = 'dark';
dirInfo: DirInfo = { rankId: '', isCompare: false };
computeAdvice?: string[];
openFind: boolean = false;
instructionSelectSource: InstructionSelectSource = InstructionSelectSource.DEFAULT;
cacheUnit: CacheUnit = defaultCacheUnit;
instructionUpdateId: number = 0;
memoryIndicator: {name?: string;x: number;y: number} = { x: 0, y: 0 };
constructor() {
makeAutoObservable(this);
}
reset(): void {
this.coreList = [];
this.sourceList = [];
this.parseStatus = false;
this.blockIdList = [];
this.instructions = [];
this.instructionSelectSource = InstructionSelectSource.DEFAULT;
this.cacheUnit = defaultCacheUnit;
}
}