void zfile_restat (zfile_t *self) { assert (self); struct stat stat_buf; char *real_name = self->link? self->link: self->fullname; if (stat (real_name, &stat_buf) == 0) { self->cursize = stat_buf.st_size; self->modified = stat_buf.st_mtime; self->mode = zsys_file_mode (real_name); self->stable = zsys_file_stable (real_name); } else { if(self->handle) { long cpos = ftell(self->handle); fseek(self->handle, 0L, SEEK_END); self->cursize = ftell(self->handle); fseek(self->handle, cpos, SEEK_SET); } else { self->cursize = 0; } self->modified = 0; self->mode = 0; self->stable = false; } zdigest_destroy (&self->digest); }
void zfile_destroy (zfile_t **self_p) { assert (self_p); if (*self_p) { zfile_t *self = *self_p; zdigest_destroy (&self->digest); if (self->handle) fclose (self->handle); free (self->fullname); free (self->link); free (self); *self_p = NULL; } }
const char * hydra_post_ident (hydra_post_t *self) { assert (self); zdigest_t *digest = zdigest_new (); if (digest) { char *digest_text = zsys_sprintf ("%s:%s:%s:%s:%s", self->subject, self->timestamp, self->parent_id, self->mime_type? self->mime_type: "", self->digest); zdigest_update (digest, (byte *) digest_text, strlen (digest_text)); assert (strlen (zdigest_string (digest)) == ID_SIZE); strcpy (self->ident, zdigest_string (digest)); zstr_free (&digest_text); zdigest_destroy (&digest); } return self->ident; }
void zfile_destroy (zfile_t **self_p) { assert (self_p); if (*self_p) { zfile_t *self = *self_p; zdigest_destroy (&self->digest); if (self->remove_on_destroy) zfile_remove (self); zfile_close (self); freen (self->fullname); freen (self->curline); freen (self->link); freen (self); *self_p = NULL; } }
void zfile_restat (zfile_t *self) { assert (self); struct stat stat_buf; char *real_name = self->link? self->link: self->fullname; if (stat (real_name, &stat_buf) == 0) { self->cursize = stat_buf.st_size; self->modified = stat_buf.st_mtime; self->mode = zsys_file_mode (real_name); self->stable = zsys_file_stable (real_name); } else { self->cursize = 0; self->modified = 0; self->mode = 0; self->stable = false; } zdigest_destroy (&self->digest); }
/// // Destroy a digest object void QmlZdigestAttached::destruct (QmlZdigest *qmlSelf) { zdigest_destroy (&qmlSelf->self); };