## 4.12 The class `PEL_SuspFSetVar`

`PEL_SuspFSetVar` [constructor]

  > `PEL_SuspFSetVar(void);`

  Constructs an uninitialized library finite set variable.

`PEL_SuspFSetVar` [constructor]

  > > `PEL_SuspFSetVar(PEL_FSetProfile &fsetp,
  > > OZ_FSetConstraint &fset,
  > > PEL_FSetEventLists &fsetel,
  > > PEL_PropQueue &pq,
  > > PEL_PropFnctTable &pft,
  > > int first = 1);`

  Constructs an initialized library finite set variable which is directly connected with the corresponding variable in the constraint store.

`PEL_SuspFSetVar` [constructor]

  > > `PEL_SuspFSetVar(OZ_FSetConstraint &fsetl,
  > > PEL_FSetEventLists &fsetel,
  > > PEL_PropQueue &pq,
  > > PEL_PropFnctTable &pft);`

  Constructs an initialized library finite set variable which is not directly connected with the corresponding variable in the constraint store. This constructor is used if the library variable is subordinated to the store variable, e.g. when implementing a clause of a disjunction.

`init` [member function]

  > > `PEL_SuspFSetVar * init(PEL_FSetProfile &fsetp,
  > > OZ_FSetConstraint &fset,
  > > PEL_FSetEventLists &fsetel,
  > > PEL_PropQueue &pq,
  > > PEL_PropFnctTable &pft,
  > > int first = 1);`

  This initialization function is associated with the constructor for the directly connected library variable and returns a pointer the library variable.

`init` [member function]

  > > `PEL_SuspFSetVar * init(OZ_FSetConstraint &fsetl,
  > > PEL_FSetEventLists &fsetel,
  > > PEL_PropQueue &pq,
  > > PEL_PropFnctTable &pft);`

  This initialization function is associated with the constructor for the not directly connected library variable and returns a pointer the library variable.

`propagate_to` [member function]

  > `int propagate_to(OZ_FSetConstraint &fset, int first = 0);`

  The constraint `fset` is propagated to the library variable and `wakeup` is called if necessary. The function returns 0 in case propagation fails. Otherwise it returns 1.

`wakeup` [member function]

  > `virtual int wakeup(int first = 0);`

  Causes propagation functions to be scheduled for rerun according to the constraints imposed on this variable since the last invocation of this function. This function returns 1 if variable denotes a single value and else 0.

`operator *` [operator member function]

  > `OZ_FSetConstraint &operator * (void);`

  Returns the finite set constraint associated with this variable.

`operator ->` [operator member function]

  > `OZ_FSetConstraint * operator -> (void);`

  Returns the pointer to the finite set constraint associated with this variable.