/*
Copyright (c) 2025-2025 Huawei Technologies Co., Ltd.

sysHAX-adapter 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.
Created: 2026-1-31
Desc: CPU inference model base
*/

#ifndef MODEL_H
#define MODEL_H

#include <pybind11/pybind11.h>
#include <pybind11/stl.h>


#include "model_weight_base.h"

namespace py = pybind11;

namespace cpu_inference {

class Model{
public:
    virtual void load_model( ModelWeightBase* model_weight) = 0;
    virtual void forward( torch::Tensor& expert_output, const torch::Tensor& hidden_states, 
    const torch::Tensor& router_logits, int64_t layer_id) = 0;
};

};

#endif