Skip to content
Snippets Groups Projects
CNDFS.h 747 B
Newer Older
  • Learn to ignore specific revisions
  • //
    // Created by ghofrane on 5/4/22.
    //
    
    #ifndef PMC_SOG_CNDFS_H
    #define PMC_SOG_CNDFS_H
    
    chihebabid's avatar
    chihebabid committed
    #include "../ModelCheckBaseMT.h"
    
    #include <spot/tl/apcollect.hh>
    
    chihebabid's avatar
    chihebabid committed
    #include <cstdint>
    #include <thread>
    
    class CNDFS {
    
    Ghofrane Amaimi's avatar
    Ghofrane Amaimi committed
    
    private:
    
    chihebabid's avatar
    chihebabid committed
        static constexpr uint8_t MAX_THREADS=64;
        ModelCheckBaseMT * mMcl;
        spot::twa_graph_ptr mAa;
    
    chihebabid's avatar
    chihebabid committed
        uint16_t mNbTh;
    
    chihebabid's avatar
    chihebabid committed
        atomic<uint8_t> mIdThread;
        static void threadHandler(void *context);
        std::thread* mlThread[MAX_THREADS];
        std::mutex mMutex;
        void spawnThreads();
    
    chihebabid's avatar
    chihebabid committed
        CNDFS(ModelCheckBaseMT *mcl,const spot::twa_graph_ptr &af,const uint16_t& nbTh);
    
        virtual ~CNDFS();
    
    Ghofrane Amaimi's avatar
    Ghofrane Amaimi committed
        //static void DfsBlue();
    
    chihebabid's avatar
    chihebabid committed
        void computeProduct();
    
    chihebabid's avatar
    chihebabid committed
        static spot::bdd_dict_ptr* m_dict_ptr;
    
    };
    
    
    #endif //PMC_SOG_CNDFS_H