Make Name.h use externally allocated components array
diff --git a/ndn-cpp/Name.h b/ndn-cpp/Name.h
index 314d51a..a80e3d5 100644
--- a/ndn-cpp/Name.h
+++ b/ndn-cpp/Name.h
@@ -12,8 +12,8 @@
#endif
struct ndn_NameComponent {
- unsigned char *value;
- unsigned int valueLength;
+ unsigned char *value; /**< pointer to the component value */
+ unsigned int valueLength; /**< the number of bytes in value */
};
static inline void ndn_NameComponent_init(struct ndn_NameComponent *self, unsigned char *value, unsigned int valueLength)
@@ -21,18 +21,23 @@
self->value = value;
self->valueLength = valueLength;
}
-
-enum {
- ndn_Name_MAX_COMPONENTS = 100
-};
struct ndn_Name {
- struct ndn_NameComponent components[ndn_Name_MAX_COMPONENTS];
- unsigned int nComponents;
+ struct ndn_NameComponent *components; /**< pointer to the array of components. */
+ unsigned int maxComponents; /**< the number of elements in the allocated components array */
+ unsigned int nComponents; /**< the number of components in the name */
};
-static inline void ndn_Name_init(struct ndn_Name *self)
+/**
+ * Initialize an ndn_Name struct with the components array.
+ * @param self pointer to the ndn_Name struct
+ * @param components the array of ndn_NameComponent already allocated
+ * @param maxComponents the number of elements in the allocated components array
+ */
+static inline void ndn_Name_init(struct ndn_Name *self, struct ndn_NameComponent *components, unsigned int maxComponents)
{
+ self->components = components;
+ self->maxComponents = maxComponents;
self->nComponents = 0;
}
@@ -40,5 +45,5 @@
}
#endif
-#endif /* NAME_H */
+#endif