about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2017-07-30 14:15:15 -0400
committerJune McEnroe <programble@gmail.com>2017-07-30 14:15:15 -0400
commita97f4ebf9f2b976e78282928704d6d39768b8362 (patch)
treef56997d486e7511ab3eddb23c2e6d0ddee844c56
parentAssert stable struct Tile field offsets (diff)
downloadtorus-a97f4ebf9f2b976e78282928704d6d39768b8362.tar.gz
torus-a97f4ebf9f2b976e78282928704d6d39768b8362.zip
Add tile create and access timestamps
-rwxr-xr-xserver.c6
-rw-r--r--torus.h4
2 files changed, 7 insertions, 3 deletions
diff --git a/server.c b/server.c
index 7b16f33..e96d3dd 100755
--- a/server.c
+++ b/server.c
@@ -18,6 +18,7 @@ exec cc -Wall -Wextra -pedantic $@ -o server $0
 #include <sys/time.h>
 #include <sys/un.h>
 #include <sysexits.h>
+#include <time.h>
 #include <unistd.h>
 
 #include "torus.h"
@@ -37,11 +38,12 @@ static void tilesMap(void) {
 
 static struct Tile *tileGet(uint32_t tileX, uint32_t tileY) {
     struct Tile *tile = &tiles[tileY * TILE_ROWS + tileX];
-    if (!tile->present) {
+    if (!tile->create) {
         memset(tile->cells, ' ', CELLS_SIZE);
         memset(tile->colors, COLOR_WHITE, CELLS_SIZE);
-        tile->present = true;
+        tile->create = time(NULL);
     }
+    tile->access = time(NULL);
     return tile;
 }
 
diff --git a/torus.h b/torus.h
index bb012f2..968c9f6 100644
--- a/torus.h
+++ b/torus.h
@@ -2,6 +2,7 @@
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
+#include <time.h>
 
 #define ALIGNED(x) __attribute__((aligned(x)))
 
@@ -25,7 +26,8 @@ enum {
 #define CELL_INIT_Y (CELL_ROWS / 2)
 
 struct Tile {
-    bool present;
+    time_t create;
+    time_t access;
     char cells[CELL_ROWS][CELL_COLS] ALIGNED(16);
     uint8_t colors[CELL_ROWS][CELL_COLS] ALIGNED(16);
 } ALIGNED(4096);