]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blobdiff - meminfo.h
Se mejora el informe.
[z.facultad/75.42/calculadora.git] / meminfo.h
index d013f92199478c21b34a00e1e88c24b0762893ea..f152d9f70adc55e42e1fe320f50e83b86b59af6a 100644 (file)
--- a/meminfo.h
+++ b/meminfo.h
 #ifndef MEMINFO_H
 #define MEMINFO_H
 
+#include <time.h>
+
 /**
- * Nodo de la lista.
+ * Información sobre la memoria.
  */
 typedef struct {
+    /** Puntero a la memoria reservada. */
     void*   pointer;
+    /** Cantidad de bytes reservados. */
     size_t  bytes;
+    /** Fecha en la que se reservó. */
     time_t  time;
+    /** Nombre del archivo de donde se reservó. */
     char*   filename;
+    /** Línea en la que se reservó. */
     size_t  fileline;
 } MemInfo;
 
-MemInfo* MemInfo_new(void* ptr, size_t bytes, char* fname, size_t fline) {
-    /* Aloco memoria. */
-    MemInfo* mi = (MemInfo*)malloc(sizeof(MemInfo));
-    /* Si la obtuve, inicializo con los datos y la hora actual. */
-    if (mi) {
-        mi->pointer  = ptr;
-        mi->bytes    = bytes;
-        mi->time     = time();
-        mi->filename = fname;
-        mi->fileline = fline;
-    }
-    /* Devuelvo el nuevo puntero. */
-    return mi;
-}
+/**
+ * Crea un nuevo MemInfo.
+ *
+ * \param ptr   Puntero a un área de memoria.
+ * \param bytes Cantidad de bytes reservados.
+ * \param fname Nombre del archivo de donde se reservó.
+ * \param fline Línea en donde se reservó.
+ *
+ * \return Puntero al nuevo MemInfo o NULL si no hay espacio en la memoria.
+ */
+MemInfo* MemInfo_new(void* ptr, size_t bytes, const char* fname, size_t fline);
+
+/**
+ * Elimina un MemInfo.
+ *
+ * \param mi MemInfo a eliminar.
+ */
+void MemInfo_delete(MemInfo* mi);
 
 #endif /* MEMINFO_H */