poser
A C framework for POsix SERvices
Loading...
Searching...
No Matches
PSC_Resolver Class Reference

A resolver to do a batch of reverse DNS lookups. More...

#include <poser/core/resolver.h>

Public Member Functions

PSC_ResolverPSC_Resolver_create (void)
 PSC_Resolver default constructor.
 
int PSC_Resolver_addAddr (PSC_Resolver *self, const PSC_IpAddr *addr)
 Add an address.
 
int PSC_Resolver_resolve (PSC_Resolver *self, int forceAsync)
 Start resolving.
 
PSC_EventPSC_Resolver_done (PSC_Resolver *self)
 Resolving finished.
 
const PSC_ListPSC_Resolver_entries (const PSC_Resolver *self)
 List of addresses and resolved names.
 
void PSC_Resolver_destroy (PSC_Resolver *self)
 PSC_Resolver destructor.
 

Detailed Description

A resolver to do a batch of reverse DNS lookups.

The resolver allows adding PSC_IpAddr instances and offers a method to do reverse lookups for all of them in a batch, preferably using a thread job.

Member Function Documentation

◆ PSC_Resolver_addAddr()

int PSC_Resolver_addAddr ( PSC_Resolver self,
const PSC_IpAddr addr 
)

Add an address.

Add an address to the list of addresses to be resolved. Fails if a resolver job is already running.

Parameters
selfthe PSC_Resolver
addrthe address to add
Returns
0 on success, -1 on error

◆ PSC_Resolver_create()

PSC_Resolver * PSC_Resolver_create ( void  )

PSC_Resolver default constructor.

Creates a new PSC_Resolver

Returns
a newly created PSC_Resolver

◆ PSC_Resolver_destroy()

void PSC_Resolver_destroy ( PSC_Resolver self)

PSC_Resolver destructor.

Destroys the PSC_Resolver instance. If a resolve job is currently running, this job is canceled and destructions only completes after the canceled job actually stopped. Avoid doing this, it can't be 100% reliable.

Parameters
selfthe PSC_Resolver

◆ PSC_Resolver_done()

PSC_Event * PSC_Resolver_done ( PSC_Resolver self)

Resolving finished.

This event fires when resolving is completed. Register at least one handler for this event before calling PSC_Resolver_resolve().

Parameters
selfthe PSC_Resolver
Returns
the done event

◆ PSC_Resolver_entries()

const PSC_List * PSC_Resolver_entries ( const PSC_Resolver self)

List of addresses and resolved names.

This list contains PSC_ResolverEntry instances for every PSC_IpAddr added, with the corresponding names if successfully resolved.

Parameters
selfthe PSC_Resolver
Returns
a list of PSC_ResolveEntry

◆ PSC_Resolver_resolve()

int PSC_Resolver_resolve ( PSC_Resolver self,
int  forceAsync 
)

Start resolving.

Starts batch resolving, prefers to do this on a thread job, but does it synchronously if the thread pool is not available or the job can't be enqueued. Fails if a resolver job is already running or there are no addresses added to the resolver.

Parameters
selfthe PSC_Resolver
forceAsyncif set to 1, fails when resolving can't be done on a thread job
Returns
0 on success, -1 on error

The documentation for this class was generated from the following file: