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
00039 #ifndef __NUSMV_CORE_NODE_ANONYMIZERS_NODE_ANONYMIZER_BASE_H__
00040 #define __NUSMV_CORE_NODE_ANONYMIZERS_NODE_ANONYMIZER_BASE_H__
00041
00042
00043 #include "nusmv/core/utils/EnvObject.h"
00044 #include "nusmv/core/utils/defs.h"
00045 #include "nusmv/core/node/node.h"
00046 #include "nusmv/core/utils/BiMap.h"
00047
00054 typedef struct NodeAnonymizerBase_TAG* NodeAnonymizerBase_ptr;
00055
00062 #define NODE_ANONYMIZER_BASE(self) \
00063 ((NodeAnonymizerBase_ptr) self)
00064
00070 #define NODE_ANONYMIZER_BASE_CHECK_INSTANCE(self) \
00071 (nusmv_assert(NODE_ANONYMIZER_BASE(self) != NODE_ANONYMIZER_BASE(NULL)))
00072
00081 #define NODE_ANONYMIZER_DELIMITER_STR ":"
00082
00088 #define NODE_ANONYMIZER_DOT_STR "."
00089
00095 #define NODE_ANONYMIZER_SEPARATOR_STR ","
00096
00102 #define NODE_ANONYMIZER_DELIMITER_CHAR ':'
00103
00109 #define NODE_ANONYMIZER_DOT_CHAR '.'
00110
00116 #define NODE_ANONYMIZER_SEPARATOR_CHAR ','
00117
00118
00121
00122
00123
00124
00125
00134 void NodeAnonymizerBase_destroy(NodeAnonymizerBase_ptr self);
00135
00136
00137
00138
00149 int NodeAnonymizerBase_map(NodeAnonymizerBase_ptr self,
00150 node_ptr id,
00151 const char* prefix);
00152
00161 int NodeAnonymizerBase_force_map(NodeAnonymizerBase_ptr self,
00162 node_ptr original,
00163 node_ptr anonymous);
00164
00171 node_ptr NodeAnonymizerBase_map_expr(NodeAnonymizerBase_ptr self,
00172 node_ptr expr);
00173
00182 node_ptr NodeAnonymizerBase_map_back(NodeAnonymizerBase_ptr self,
00183 node_ptr expr);
00184
00191 int NodeAnonymizerBase_print_map(NodeAnonymizerBase_ptr self,
00192 FILE* stream);
00193
00208 int NodeAnonymizerBase_read_map_from_stream(NodeAnonymizerBase_ptr self,
00209 FILE* stream);
00210
00218 int NodeAnonymizer_read_map_from_bimap(NodeAnonymizerBase_ptr self,
00219 BiMap_ptr map);
00220
00227 size_t NodeAnonymizerBase_get_map_size(NodeAnonymizerBase_ptr self);
00228
00229
00230
00231
00239 boolean NodeAnonymizerBase_is_id_original(NodeAnonymizerBase_ptr self,
00240 node_ptr id);
00241
00249 boolean NodeAnonymizerBase_is_id_anonymous(NodeAnonymizerBase_ptr self,
00250 node_ptr id);
00251
00258 boolean NodeAnonymizerBase_is_map_empty(NodeAnonymizerBase_ptr self);
00259
00260
00265 #endif