int pakfire_solution_create(pakfire_solution** solution,
pakfire_ctx* ctx, pakfire_problem* problem, Id id) {
- pakfire_solution* s = calloc(1, sizeof(*s));
- if (!s)
+ pakfire_solution* self = NULL;
+
+ // Allocate some memory
+ self = calloc(1, sizeof(*self));
+ if (!self)
return -errno;
// Store a reference to the context
- s->ctx = pakfire_ctx_ref(ctx);
+ self->ctx = pakfire_ctx_ref(ctx);
// Initialize the ref counter
- s->nrefs = 1;
+ self->nrefs = 1;
// Store a reference to the problem
- s->problem = pakfire_problem_ref(problem);
+ self->problem = pakfire_problem_ref(problem);
// Store the ID
- s->id = id;
+ self->id = id;
- *solution = s;
+ *solution = self;
return 0;
}
-pakfire_solution* pakfire_solution_ref(pakfire_solution* solution) {
- solution->nrefs++;
+pakfire_solution* pakfire_solution_ref(pakfire_solution* self) {
+ self->nrefs++;
- return solution;
+ return self;
}
-static void pakfire_solution_free(pakfire_solution* solution) {
- pakfire_problem_unref(solution->problem);
+static void pakfire_solution_free(pakfire_solution* self) {
+ pakfire_problem_unref(self->problem);
- if (solution->string)
- free(solution->string);
- if (solution->ctx)
- pakfire_ctx_unref(solution->ctx);
- free(solution);
+ if (self->string)
+ free(self->string);
+ if (self->ctx)
+ pakfire_ctx_unref(self->ctx);
+ free(self);
}
-pakfire_solution* pakfire_solution_unref(pakfire_solution* solution) {
- if (!solution)
- return NULL;
-
- if (--solution->nrefs > 0)
- return solution;
+pakfire_solution* pakfire_solution_unref(pakfire_solution* self) {
+ if (--self->nrefs > 0)
+ return self;
- pakfire_solution_free(solution);
+ pakfire_solution_free(self);
return NULL;
}
-pakfire_problem* pakfire_solution_get_problem(pakfire_solution* solution) {
- return pakfire_problem_ref(solution->problem);
+pakfire_problem* pakfire_solution_get_problem(pakfire_solution* self) {
+ return pakfire_problem_ref(self->problem);
}
-Id pakfire_solution_get_id(pakfire_solution* solution) {
- return solution->id;
+Id pakfire_solution_get_id(pakfire_solution* self) {
+ return self->id;
}
-static char* pakfire_solution_make_string(pakfire_solution* solution) {
- pakfire_transaction* transaction = pakfire_problem_get_transaction(solution->problem);
+static char* pakfire_solution_make_string(pakfire_solution* self) {
+ pakfire_transaction* transaction = pakfire_problem_get_transaction(self->problem);
Solver* solver = pakfire_transaction_get_solver(transaction);
Pool* pool = solver->pool;
// Fetch the problem ID
- Id problem_id = pakfire_problem_get_id(solution->problem);
+ Id problem_id = pakfire_problem_get_id(self->problem);
// How many elements do we have?
- unsigned int count = solver_solutionelement_count(solver, problem_id, solution->id);
+ unsigned int count = solver_solutionelement_count(solver, problem_id, self->id);
if (!count) {
pakfire_transaction_unref(transaction);
return NULL;
int r;
for (unsigned int i = 0; i < count; i++) {
- e = solver_next_solutionelement(solver, problem_id, solution->id, e, &p, &rp);
+ e = solver_next_solutionelement(solver, problem_id, self->id, e, &p, &rp);
if (!e)
break;
return s;
}
-const char* pakfire_solution_to_string(pakfire_solution* solution) {
- if (!solution->string)
- solution->string = pakfire_solution_make_string(solution);
+const char* pakfire_solution_to_string(pakfire_solution* self) {
+ if (!self->string)
+ self->string = pakfire_solution_make_string(self);
- return solution->string;
+ return self->string;
}
int pakfire_solution_create(pakfire_solution** solution,
pakfire_ctx* ctx, pakfire_problem* problem, Id id);
-pakfire_solution* pakfire_solution_ref(pakfire_solution* solution);
-pakfire_solution* pakfire_solution_unref(pakfire_solution* solution);
+pakfire_solution* pakfire_solution_ref(pakfire_solution* self);
+pakfire_solution* pakfire_solution_unref(pakfire_solution* self);
-const char* pakfire_solution_to_string(pakfire_solution* solution);
+const char* pakfire_solution_to_string(pakfire_solution* self);
-pakfire_problem* pakfire_solution_get_problem(pakfire_solution* solution);
-Id pakfire_solution_get_id(pakfire_solution* solution);
+pakfire_problem* pakfire_solution_get_problem(pakfire_solution* self);
+Id pakfire_solution_get_id(pakfire_solution* self);
#endif /* PAKFIRE_SOLUTION_H */