322
G_warning(_("Invalid timestamp file for %s map %s in mapset %s"),
340
G_warning(_("Invalid timestamp file for %s map <%s@%s>"),
323
341
maptype, name, mapset);
327
#define RAST_MISC "cell_misc"
328
#define VECT_MISC "dig_misc"
329
#define GRID3 "grid3"
333
* \brief Read timestamp from raster map
337
* 0 or negative on error.
339
* \param name map name
340
* \param mapset mapset the map lives in
341
* \param ts TimeStamp struct to populate
346
\brief Check if timestamp for raster map exists
349
\param mapset mapset name
352
\return 0 no timestamp present
354
int G_has_raster_timestamp(const char *name, const char *mapset)
356
if (!G_find_file2_misc(RAST_MISC, "timestamp", name, mapset))
363
\brief Read timestamp from raster map
366
\param mapset mapset the map lives in
367
\param[out] ts TimeStamp struct to populate
370
\return 0 or negative on error
344
372
int G_read_raster_timestamp(const char *name, const char *mapset,
345
373
struct TimeStamp *ts)
347
375
return read_timestamp("raster", RAST_MISC, name, mapset, ts);
354
* Only timestamp files in current mapset can be removed
379
\brief Write timestamp of raster map
382
\param[out] ts TimeStamp struct to populate
385
\return -1 error - can't create timestamp file
386
\return -2 error - invalid datetime in ts
389
int G_write_raster_timestamp(const char *name, const struct TimeStamp *ts)
391
return write_timestamp("raster", RAST_MISC, name, ts);
395
\brief Remove timestamp from raster map
397
Only timestamp files in current mapset can be removed.
363
405
int G_remove_raster_timestamp(const char *name)
365
407
return G_remove_misc(RAST_MISC, "timestamp", name);
371
* \brief Read vector timestamp
373
* Is this used anymore with the new GRASS 6 vector engine???
375
* Returns 1 on success. 0 or negative on error.
382
int G_read_vector_timestamp(const char *name, const char *mapset,
383
struct TimeStamp *ts)
385
return read_timestamp("vector", VECT_MISC, name, mapset, ts);
393
* Is this used anymore with the new GRASS 6 vector engine???
395
* Only timestamp files in current mapset can be removed
404
int G_remove_vector_timestamp(const char *name)
406
return G_remove_misc(VECT_MISC, "timestamp", name);
411
* \brief read grid3 timestamp
413
* Returns 1 on success. 0 or
421
int G_read_grid3_timestamp(const char *name, const char *mapset,
411
\brief Check if timestamp for vector map exists
414
\param layer The layer names, in case of NULL, layer one is assumed
415
\param mapset mapset name
418
\return 0 no timestamp present
420
int G_has_vector_timestamp(const char *name, const char *layer, const char *mapset)
423
char path[GPATH_MAX + GNAME_MAX];
427
G_snprintf(ele, GNAME_MAX, "%s_%s", GV_TIMESTAMP_ELEMENT, layer);
429
G_snprintf(ele, GNAME_MAX, "%s_1", GV_TIMESTAMP_ELEMENT);
431
G_snprintf(dir, GPATH_MAX, "%s/%s", GV_DIRECTORY, name);
432
G_file_name(path, dir, ele, mapset);
434
G_debug(1, "Check for timestamp <%s>", path);
436
if (access(path, R_OK) != 0)
443
\brief Read timestamp from vector map
446
\param layer The layer names, in case of NULL, layer one is assumed
447
\param mapset mapset name
448
\param[out] ts TimeStamp struct to populate
451
\return 0 no timestamp present
452
\return -1 Unable to open file
453
\return -2 invalid time stamp
455
int G_read_vector_timestamp(const char *name, const char *layer,
456
const char *mapset, struct TimeStamp *ts)
463
/* In case no timestamp file is present return 0 */
464
if (G_has_vector_timestamp(name, layer, mapset) != 1)
468
G_snprintf(ele, GNAME_MAX, "%s_%s", GV_TIMESTAMP_ELEMENT, layer);
470
G_snprintf(ele, GNAME_MAX, "%s_1", GV_TIMESTAMP_ELEMENT);
472
G_snprintf(dir, GPATH_MAX, "%s/%s", GV_DIRECTORY, name);
474
G_debug(1, "Read timestamp <%s/%s>", dir, ele);
476
fd = G_fopen_old(dir, ele, mapset);
479
G_warning(_("Unable to open timestamp file for vector map <%s@%s>"),
484
stat = G__read_timestamp(fd, ts);
488
G_warning(_("Invalid timestamp file for vector map <%s@%s>"),
494
\brief Write timestamp of vector map
497
\param layer The layer names, in case of NULL, layer one is assumed
498
\param[out] ts TimeStamp struct to populate
501
\return -1 error - can't create timestamp file
502
\return -2 error - invalid datetime in ts
505
int G_write_vector_timestamp(const char *name, const char *layer, const struct TimeStamp *ts)
513
G_snprintf(ele, GNAME_MAX, "%s_%s", GV_TIMESTAMP_ELEMENT, layer);
515
G_snprintf(ele, GNAME_MAX, "%s_1", GV_TIMESTAMP_ELEMENT);
517
G_snprintf(dir, GPATH_MAX, "%s/%s", GV_DIRECTORY, name);
519
G_debug(1, "Write timestamp <%s/%s>", dir, ele);
521
fd = G_fopen_new(dir, ele);
524
G_warning(_("Unable to create timestamp file for vector map <%s@%s>"),
529
stat = G_write_timestamp(fd, ts);
533
G_warning(_("Invalid timestamp specified for vector map <%s@%s>"),
539
\brief Remove timestamp from vector map
541
Only timestamp files in current mapset can be removed.
544
\param layer The layer names, in case of NULL, layer one is assumed
548
\return -1 on failure
550
int G_remove_vector_timestamp(const char *name, const char *layer)
556
G_snprintf(ele, GNAME_MAX, "%s_%s", GV_TIMESTAMP_ELEMENT, layer);
558
G_snprintf(ele, GNAME_MAX, "%s_1", GV_TIMESTAMP_ELEMENT);
560
G_snprintf(dir, GPATH_MAX, "%s/%s", GV_DIRECTORY, name);
561
return G_remove(dir, ele);
565
\brief Check if timestamp for 3D raster map exists
568
\param mapset mapset name
571
\return 0 no timestamp present
573
int G_has_raster3d_timestamp(const char *name, const char *mapset)
575
if (!G_find_file2_misc(GRID3, "timestamp", name, mapset))
582
\brief Read timestamp from 3D raster map
585
\param mapset mapset name
586
\param[out] ts TimeStamp struct to populate
589
\return 0 or negative on error
591
int G_read_raster3d_timestamp(const char *name, const char *mapset,
422
592
struct TimeStamp *ts)
424
return read_timestamp("grid3", GRID3, name, mapset, ts);
594
return read_timestamp("raster3d", GRID3, name, mapset, ts);
429
* \brief remove grid3 timestamp
431
* Only timestamp files in current mapset can be removed
598
\brief Write timestamp of 3D raster map
601
\param[out] ts TimeStamp struct to populate
604
\return -1 error - can't create timestamp file
605
\return -2 error - invalid datetime in ts
440
int G_remove_grid3_timestamp(const char *name)
608
int G_write_raster3d_timestamp(const char *name, const struct TimeStamp *ts)
610
return write_timestamp("raster3d", GRID3, name, ts);
614
\brief Remove timestamp from 3D raster map
616
Only timestamp files in current mapset can be removed.
622
\return -1 on failure
624
int G_remove_raster3d_timestamp(const char *name)
442
626
return G_remove_misc(GRID3, "timestamp", name);
452
* -1 error - can't create timestamp file
453
* -2 error - invalid datetime in ts
459
int G_write_raster_timestamp(const char *name, const struct TimeStamp *ts)
461
return write_timestamp("raster", RAST_MISC, name, ts);
471
* -1 error - can't create timestamp file
472
* -2 error - invalid datetime in ts
478
int G_write_vector_timestamp(const char *name, const struct TimeStamp *ts)
480
return write_timestamp("vector", VECT_MISC, name, ts);
485
* \brief write grid3 timestamp
489
* -1 error - can't create timestamp file
490
* -2 error - invalid datetime in ts
496
int G_write_grid3_timestamp(const char *name, const struct TimeStamp *ts)
498
return write_timestamp("grid3", GRID3, name, ts);