//
// Created by tuhuiyan on 2025/12/8.
//

#pragma once

#include "xlt_api.h"
using namespace x1;

class MyQuoteSpi:public EFHQuoteSpi {
public:
    void on_start_quote(uint64_t session_id,
                        xlt_error_info_t *error_info) override;

    void on_sse_l1_index(const sse_l1_index_t* sse_l1_index) override;
    void on_sse_l1_snapshot(const sse_l1_snapshot_t* sse_l1_snapshot) override;
    void on_szse_l1_index(const szse_l1_index_t* szse_l1_index) override;
    void on_szse_l1_snapshot(const szse_l1_snapshot_t* szse_l1_snapshot) override;
    void on_szse_l1_snapshot_bond(const szse_l1_snapshot_bond_t* szse_l1_snapshot_bond) override;
    void on_report_efh_sse_lev2_snap(const sse_hpf_lev2* p_snap) override;
    void on_report_efh_sse_lev2_idx(const sse_hpf_idx* p_idx) override;
    void on_report_efh_sse_lev2_bond_snap(const sse_hpf_bond_snap* p_bond_snap) override;
    void on_report_efh_sse_lev2_bond_tick(const sse_hpf_bond_tick* p_bond_tick) override;
    void on_report_efh_sse_lev2_tick_merge(const sse_hpf_tick_merge* p_tick) override;

    void on_report_efh_sze_lev2_snap(const sze_hpf_lev2* p_snap) override;

    void on_report_efh_sze_lev2_tick(int msg_type, const sze_hpf_order* p_order, const sze_hpf_exe* p_exe) override;

    void on_report_efh_sze_lev2_idx(const sze_hpf_idx* p_idx) override;

    void on_report_efh_sze_lev2_bond_snap(const sze_hpf_bond_snap* p_bond_snap) override;

    void on_report_efh_sze_lev2_bond_tick(int msg_type, const sze_hpf_bond_order* p_order, const sze_hpf_bond_exe* p_exe) override;
};
