# Problem Set API.

## Files

file | rpmps.h

| Structures and prototypes used for an "rpmps" problem set.

## Typedefs

typedef struct rpmpsi_s * | rpmpsi
| Problem set iterator.

## Functions

rpmps | rpmpsLink (rpmps ps)
| Reference a problem set instance.
int | rpmpsNumProblems (rpmps ps)
| Return number of problems in set.
rpmpsi | rpmpsInitIterator (rpmps ps)
| Initialize problem set iterator.
rpmpsi | rpmpsFreeIterator (rpmpsi psi)
| Destroy problem set iterator.
rpmProblem | rpmpsiNext (rpmpsi psi)
| Return next problem from iterator.
int | rpmpsNextIterator (rpmpsi psi)
| Return next problem set iterator index.
rpmProblem | rpmpsGetProblem (rpmpsi psi)
| Return current problem from problem set.
rpmps | rpmpsCreate (void)
| Create a problem set.
rpmps | rpmpsFree (rpmps ps)
| Destroy a problem set.
void | rpmpsPrint (FILE *fp, rpmps ps)
| Print problems to file handle.
void | rpmpsAppendProblem (rpmps ps, rpmProblem prob)
| Append a problem to current set of problems.
int | rpmpsMerge (rpmps dest, rpmps src)
| Merge problem set into another.

## Typedef Documentation

typedef struct rpmpsi_s* rpmpsi

Problem set iterator.

Definition at line 20 of file rpmps.h.

## Function Documentation

void rpmpsAppendProblem | ( | rpmps | ps,
|  | rpmProblem | prob |
| ) |  |  |

Append a problem to current set of problems.

Parameters:

  | ps | problem set
  | prob | rpmProblem

rpmps rpmpsCreate | ( | void |  | ) |

Create a problem set.

Returns:
  new problem set

rpmps rpmpsFree | ( | rpmps | ps | ) |

Destroy a problem set.

Parameters:

  | ps | problem set

Returns:
  NULL always

Referenced by checkSpec().

rpmpsi rpmpsFreeIterator | ( | rpmpsi | psi | ) |

Destroy problem set iterator.

Parameters:

  | psi | problem set iterator

Returns:
  problem set iterator (NULL)

rpmProblem rpmpsGetProblem | ( | rpmpsi | psi | ) |

Return current problem from problem set.

Parameters:

  | psi | problem set iterator

Returns:
  current rpmProblem

rpmProblem rpmpsiNext | ( | rpmpsi | psi | ) |

Return next problem from iterator.

Parameters:

  | psi | problem set iterator

Returns:
  next problem (weak ref), NULL on termination

rpmpsi rpmpsInitIterator | ( | rpmps | ps | ) |

Initialize problem set iterator.

Parameters:

  | ps | problem set

Returns:
  problem set iterator

rpmps rpmpsLink | ( | rpmps | ps | ) |

Reference a problem set instance.

Parameters:

  | ps | transaction set

Returns:
  new transaction set reference

int rpmpsMerge | ( | rpmps | dest,
|  | rpmps | src |
| ) |  |  |

Merge problem set into another.

Parameters:

  | dest | destination problem set
  | src | source problem set

Returns:
  number of problems merged

int rpmpsNextIterator | ( | rpmpsi | psi | ) |

Return next problem set iterator index.

Parameters:

  | psi | problem set iterator

Returns:
  iterator index, -1 on termination

int rpmpsNumProblems | ( | rpmps | ps | ) |

Return number of problems in set.

Parameters:

  | ps | problem set

Returns:
  number of problems

void rpmpsPrint | ( | FILE * | fp,
|  | rpmps | ps |
| ) |  |  |

Print problems to file handle.

Parameters:

  | fp | file handle (NULL uses stderr)
  | ps | problem set

Referenced by checkSpec().