summaryrefslogtreecommitdiffstats
path: root/WWW/Library/Implementation/HTAtom.h
diff options
context:
space:
mode:
Diffstat (limited to 'WWW/Library/Implementation/HTAtom.h')
-rw-r--r--WWW/Library/Implementation/HTAtom.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/WWW/Library/Implementation/HTAtom.h b/WWW/Library/Implementation/HTAtom.h
new file mode 100644
index 0000000..0d787bc
--- /dev/null
+++ b/WWW/Library/Implementation/HTAtom.h
@@ -0,0 +1,53 @@
+/* */
+
+/* Atoms: Names to numbers HTAtom.h
+ * =======================
+ *
+ * Atoms are names which are given representative pointer values
+ * so that they can be stored more efficiently, and compaisons
+ * for equality done more efficiently.
+ *
+ * HTAtom_for(string) returns a representative value such that it
+ * will always (within one run of the program) return the same
+ * value for the same given string.
+ *
+ * Authors:
+ * TBL Tim Berners-Lee, WorldWideWeb project, CERN
+ *
+ * (c) Copyright CERN 1991 - See Copyright.html
+ *
+ */
+
+#ifndef HTATOM_H
+#define HTATOM_H
+
+#include <HTList.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+ typedef struct _HTAtom HTAtom;
+
+ struct _HTAtom {
+ HTAtom *next;
+ char *name;
+ }; /* struct _HTAtom */
+
+ extern HTAtom *HTAtom_for(const char *string);
+
+#define HTAtom_name(a) ((a)->name)
+
+/*
+
+The HTFormat type
+
+ We use the HTAtom object for holding representations. This allows faster manipulation
+ (comparison and copying) that if we stayed with strings.
+
+ */
+ typedef HTAtom *HTFormat;
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* HTATOM_H */