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
00038 #ifndef __NUSMV_CORE_UTILS_TUPLE5_H__
00039 #define __NUSMV_CORE_UTILS_TUPLE5_H__
00040
00041 #include "nusmv/core/utils/utils.h"
00042
00049 typedef struct Tuple5_TAG* Tuple5_ptr;
00050
00051
00058 typedef struct Tuple5_TAG
00059 {
00060 void* first;
00061 void* second;
00062 void* third;
00063 void* forth;
00064 void* fifth;
00065 boolean frozen;
00066 } Tuple5;
00067
00074 #define TUPLE_5(self) \
00075 ((Tuple5_ptr) self)
00076
00082 #define TUPLE_5_CHECK_INSTANCE(self) \
00083 (nusmv_assert(TUPLE_5(self) != TUPLE_5(NULL)))
00084
00085
00086
00089
00090
00091
00092
00101 Tuple5_ptr Tuple5_create(void* first, void* second, void* third,
00102 void* forth, void* fifth);
00103
00113 void Tuple5_init(Tuple5_ptr self, void* first, void* second,
00114 void* third, void* forth, void* fifth);
00115
00124 void Tuple5_freeze(Tuple5_ptr self);
00125
00133 boolean Tuple5_is_freezed(const Tuple5_ptr self);
00134
00141 void* Tuple5_get_first(const Tuple5_ptr self);
00142
00149 void* Tuple5_get_second(const Tuple5_ptr self);
00150
00157 void* Tuple5_get_third(const Tuple5_ptr self);
00158
00165 void* Tuple5_get_forth(const Tuple5_ptr self);
00166
00173 void* Tuple5_get_fifth(const Tuple5_ptr self);
00174
00182 void Tuple5_set_first(Tuple5_ptr self, void* first);
00183
00191 void Tuple5_set_second(Tuple5_ptr self, void* second);
00192
00200 void Tuple5_set_third(Tuple5_ptr self, void* third);
00201
00209 void Tuple5_set_forth(Tuple5_ptr self, void* forth);
00210
00218 void Tuple5_set_fifth(Tuple5_ptr self, void* fifth);
00219
00227 void Tuple5_set_values(Tuple5_ptr self, void* first, void* second,
00228 void* third, void* forth, void* fifth);
00229
00238 void Tuple5_destroy(Tuple5_ptr self);
00239
00252 int Tuple5_compare(const Tuple5_ptr a,
00253 const Tuple5_ptr b);
00254
00264 unsigned long Tuple5_hash(const Tuple5_ptr self, int size);
00265
00270 #endif