00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00042 #ifndef __NUSMV_CORE_DD_VARS_HANDLER_H__
00043 #define __NUSMV_CORE_DD_VARS_HANDLER_H__
00044
00045 #include "nusmv/core/dd/dd.h"
00046 #include "nusmv/core/utils/utils.h"
00047
00054 typedef struct VarsHandler_TAG* VarsHandler_ptr;
00055
00064 typedef struct GroupInfo_TAG* GroupInfo_ptr;
00065
00072 #define VARS_HANDLER(self) \
00073 ((VarsHandler_ptr) self)
00074
00080 #define VARS_HANDLER_CHECK_INSTANCE(self) \
00081 (nusmv_assert(VARS_HANDLER(self) != VARS_HANDLER(NULL)))
00082
00083
00084
00087
00088
00089
00090
00099 VarsHandler_ptr VarsHandler_create(DDMgr_ptr dd);
00100
00109 void VarsHandler_destroy(VarsHandler_ptr self);
00110
00117 DDMgr_ptr VarsHandler_get_dd_manager(const VarsHandler_ptr self);
00118
00135 GroupInfo_ptr
00136 VarsHandler_reserve_group(VarsHandler_ptr self,
00137 int from_lev, int size, int chunk,
00138 boolean can_share, int* lev_low);
00139
00148 boolean VarsHandler_can_group(const VarsHandler_ptr self,
00149 int from_lev, int size, int chunk);
00150
00163 boolean
00164 VarsHandler_release_group(VarsHandler_ptr self, GroupInfo_ptr bid);
00165
00180 void
00181 VarsHandler_dissolve_group(VarsHandler_ptr self, GroupInfo_ptr bid);
00182
00192 void VarsHandler_update_levels(VarsHandler_ptr self);
00193
00200 void VarsHandler_print(const VarsHandler_ptr self, FILE* _file);
00201
00206 #endif