summaryrefslogtreecommitdiff
path: root/random/random.h
blob: 2e31e63128031f60d05ff82a1e19911d909dae96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

#ifndef _RANDOM_H
#define _RANDOM_H

#include <glib.h>

G_BEGIN_DECLS

typedef struct _NiceRNG NiceRNG;

struct _NiceRNG {
  void (*seed) (NiceRNG *src, guint32 seed);
  void (*generate_bytes) (NiceRNG *src, guint len, gchar *buf);
  guint (*generate_int) (NiceRNG *src, guint low, guint high);
  void (*free) (NiceRNG *src);
  gpointer priv;
};

NiceRNG *
nice_rng_new (void);

void
nice_rng_seed (NiceRNG *rng, guint32 seed);

void
nice_rng_generate_bytes (NiceRNG *rng, guint len, gchar *buf);

void
nice_rng_generate_bytes_print (NiceRNG *rng, guint len, gchar *buf);

guint
nice_rng_generate_int (NiceRNG *rng, guint low, guint high);

void
nice_rng_free (NiceRNG *rng);

G_END_DECLS

#endif // _RANDOM_H