chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add test for garbage collector
[elogind.git]
/
name.h
diff --git
a/name.h
b/name.h
index 3b364f00f364feec40170200e8a7a997299d45b2..52d92776f3a0401eef124c47ea12c3c2e90d2c76 100644
(file)
--- a/
name.h
+++ b/
name.h
@@
-22,6
+22,7
@@
typedef struct Snapshot Snapshot;
#include "set.h"
#include "util.h"
#include "list.h"
#include "set.h"
#include "util.h"
#include "list.h"
+#include "socket-util.h"
typedef enum NameType {
NAME_SERVICE = 0,
typedef enum NameType {
NAME_SERVICE = 0,
@@
-39,27
+40,37
@@
typedef enum NameType {
typedef enum NameState {
NAME_STUB,
NAME_LOADED,
typedef enum NameState {
NAME_STUB,
NAME_LOADED,
- NAME_FAILED
+ NAME_FAILED,
+ _NAME_STATE_MAX
} NameState;
} NameState;
-struct Meta {
- Manager *manager;
- NameType type;
- NameState state;
-
- char **names;
-
+typedef enum NameDependency {
/* Positive dependencies */
/* Positive dependencies */
- Set *requires, *soft_requires, *wants, *requisite, *soft_requisite;
- Set *required_by; /* inverse of 'requires', 'soft_requires', 'requisite' and 'soft_requisite' is 'required_by' */
+ NAME_REQUIRES,
+ NAME_SOFT_REQUIRES,
+ NAME_WANTS,
+ NAME_REQUISITE,
+ NAME_SOFT_REQUISITE,
+ NAME_REQUIRED_BY, /* inverse of 'requires' and 'requisite' is 'required_by' */
+ NAME_WANTED_BY, /* inverse of 'wants', 'soft_requires' and 'soft_requisite' is 'wanted_by' */
/* Negative dependencies */
/* Negative dependencies */
-
Set *conflicts;
/* inverse of 'conflicts' is 'conflicts' */
+
NAME_CONFLICTS,
/* inverse of 'conflicts' is 'conflicts' */
/* Order */
/* Order */
- Set *before, *after; /* inverse of before is after and vice versa */
+ NAME_BEFORE, /* inverse of before is after and vice versa */
+ NAME_AFTER,
+ _NAME_DEPENDENCY_MAX
+} NameDependency;
+
+struct Meta {
+ Manager *manager;
+ NameType type;
+ NameState state;
+
+ Set *names;
+ Set *dependencies[_NAME_DEPENDENCY_MAX];
- /* Information */
char *description;
/* If there is something to do with this name, then this is
char *description;
/* If there is something to do with this name, then this is
@@
-138,13
+149,16
@@
typedef enum SocketState {
SOCKET_STOP_PRE,
SOCKET_STOP,
SOCKET_STOP_POST,
SOCKET_STOP_PRE,
SOCKET_STOP,
SOCKET_STOP_POST,
- SOCKET_MAINTAINANCE
+ SOCKET_MAINTAINANCE,
+ _SOCKET_STATE_MAX
} SocketState;
struct Socket {
Meta meta;
SocketState state;
} SocketState;
struct Socket {
Meta meta;
SocketState state;
+
+ Address address;
int *fds;
unsigned n_fds;
int *fds;
unsigned n_fds;
@@
-260,11
+274,17
@@
DEFINE_CAST(SNAPSHOT, Snapshot, snapshot);
bool name_is_ready(Name *name);
NameType name_type_from_string(const char *n);
bool name_is_ready(Name *name);
NameType name_type_from_string(const char *n);
+bool name_is_valid(const char *n);
Name *name_new(Manager *m);
void name_free(Name *name);
int name_link(Name *name);
Name *name_new(Manager *m);
void name_free(Name *name);
int name_link(Name *name);
+int name_link_names(Name *name, bool replace);
+int name_merge(Name *name, Name *other);
+int name_sanitize(Name *n);
+int name_load(Name *name);
+const char* name_id(Name *n);
-
int name_augment(Name *n
);
+
void name_dump(Name *n, FILE *f, const char *prefix
);
#endif
#endif