[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r3526 - in GNUnet: . src/applications/fs/fsui
From: |
grothoff |
Subject: |
[GNUnet-SVN] r3526 - in GNUnet: . src/applications/fs/fsui |
Date: |
Sat, 21 Oct 2006 12:52:52 -0700 (PDT) |
Author: grothoff
Date: 2006-10-21 12:52:48 -0700 (Sat, 21 Oct 2006)
New Revision: 3526
Modified:
GNUnet/src/applications/fs/fsui/TODO
GNUnet/src/applications/fs/fsui/download.c
GNUnet/src/applications/fs/fsui/fsui.c
GNUnet/src/applications/fs/fsui/search.c
GNUnet/src/applications/fs/fsui/unindex.c
GNUnet/src/applications/fs/fsui/upload.c
GNUnet/todo
Log:
more FSUI stuff
Modified: GNUnet/src/applications/fs/fsui/TODO
===================================================================
--- GNUnet/src/applications/fs/fsui/TODO 2006-10-21 18:58:32 UTC (rev
3525)
+++ GNUnet/src/applications/fs/fsui/TODO 2006-10-21 19:52:48 UTC (rev
3526)
@@ -1,11 +1,3 @@
-upload.c:
-- use extractors to obtain metadata and keywords
-- better ETA calculations
-fsui.c:
-- event signaling: uninitalized fields
-- better ETA calculations for resumes
-download.c:
-- better ETA calculations
Modified: GNUnet/src/applications/fs/fsui/download.c
===================================================================
--- GNUnet/src/applications/fs/fsui/download.c 2006-10-21 18:58:32 UTC (rev
3525)
+++ GNUnet/src/applications/fs/fsui/download.c 2006-10-21 19:52:48 UTC (rev
3526)
@@ -23,9 +23,6 @@
* @brief download functions
* @author Krista Bennett
* @author Christian Grothoff
- *
- * TODO:
- * - can do better ETA computation (in case of suspend-resume)
*/
#include "platform.h"
@@ -134,23 +131,36 @@
FSUI_DownloadList * dl = cls;
FSUI_Event event;
struct ECRS_MetaData * md;
+ cron_t now;
+ cron_t run_time;
GE_ASSERT(dl->ctx->ectx,
dl->total == totalBytes);
dl->completed = completedBytes;
event.type = FSUI_download_progress;
+ event.data.DownloadProgress.dc.pos = dl;
+ event.data.DownloadProgress.dc.cctx = dl->cctx;
+ event.data.DownloadProgress.dc.ppos = dl->parent;
+ event.data.DownloadProgress.dc.pcctx = dl->parent->cctx;
+ event.data.DownloadProgress.completed = dl->completed;
event.data.DownloadProgress.total = dl->total;
- event.data.DownloadProgress.completed = dl->completed;
event.data.DownloadProgress.last_offset = lastBlockOffset;
- event.data.DownloadProgress.eta = eta; /* FIXME: we can do better in FSUI! */
+ now = get_time();
+ run_time = now - dl->startTime;
+ if ( (dl->total == 0) || (dl->completed == 0) ) {
+ eta = now;
+ } else {
+ eta = (cron_t) (dl->startTime +
+ (((double)(run_time)/(double)dl->completed))
+ * (double)dl->total);
+ if (eta < now)
+ eta = now;
+ }
+ event.data.DownloadProgress.eta = eta;
+ event.data.DownloadProgress.filename = dl->filename;
+ event.data.DownloadProgress.uri = dl->uri;
event.data.DownloadProgress.last_block = lastBlock;
event.data.DownloadProgress.last_size = lastBlockSize;
- event.data.DownloadProgress.filename = dl->filename;
- event.data.DownloadProgress.uri = dl->uri;
- event.data.DownloadProgress.dc.pos = dl;
- event.data.DownloadProgress.dc.cctx = dl->cctx;
- event.data.DownloadProgress.dc.ppos = dl->parent;
- event.data.DownloadProgress.dc.pcctx = dl->parent->cctx;
dl->ctx->ecb(dl->ctx->ecbClosure,
&event);
if ( (lastBlockOffset == 0) &&
@@ -223,24 +233,24 @@
if (ret == OK) {
dl->state = FSUI_COMPLETED;
event.type = FSUI_download_completed;
- event.data.DownloadCompleted.total = dl->total;
- event.data.DownloadCompleted.filename = dl->filename;
- event.data.DownloadCompleted.uri = dl->uri;
event.data.DownloadCompleted.dc.pos = dl;
event.data.DownloadCompleted.dc.cctx = dl->cctx;
event.data.DownloadCompleted.dc.ppos = dl->parent;
event.data.DownloadCompleted.dc.pcctx = dl->parent->cctx;
+ event.data.DownloadCompleted.total = dl->total;
+ event.data.DownloadCompleted.filename = dl->filename;
+ event.data.DownloadCompleted.uri = dl->uri;
dl->ctx->ecb(dl->ctx->ecbClosure,
&event);
} else if (dl->state == FSUI_ACTIVE) {
/* ECRS error */
dl->state = FSUI_ERROR;
event.type = FSUI_download_error;
- event.data.DownloadError.message = _("ECRS download failed (see logs)");
event.data.DownloadError.dc.pos = dl;
event.data.DownloadError.dc.cctx = dl->cctx;
event.data.DownloadError.dc.ppos = dl->parent;
event.data.DownloadError.dc.pcctx = dl->parent->cctx;
+ event.data.DownloadError.message = _("ECRS download failed (see logs)");
dl->ctx->ecb(dl->ctx->ecbClosure,
&event);
} else if (dl->state == FSUI_ABORTED) { /* aborted */
@@ -361,14 +371,14 @@
dl->cctx = NULL;
/* signal start! */
event.type = FSUI_download_started;
- event.data.DownloadStarted.filename = dl->filename;
- event.data.DownloadStarted.total = ECRS_fileSize(dl->uri);
- event.data.DownloadStarted.uri = dl->uri;
- event.data.DownloadStarted.anonymityLevel = dl->anonymityLevel;
event.data.DownloadStarted.dc.pos = dl;
event.data.DownloadStarted.dc.cctx = NULL;
event.data.DownloadStarted.dc.ppos = dl->parent;
event.data.DownloadStarted.dc.pcctx = dl->parent->cctx;
+ event.data.DownloadStarted.total = ECRS_fileSize(dl->uri);
+ event.data.DownloadStarted.filename = dl->filename;
+ event.data.DownloadStarted.uri = dl->uri;
+ event.data.DownloadStarted.anonymityLevel = dl->anonymityLevel;
dl->cctx = dl->ctx->ecb(dl->ctx->ecbClosure,
&event);
dl->next = parent->child;
Modified: GNUnet/src/applications/fs/fsui/fsui.c
===================================================================
--- GNUnet/src/applications/fs/fsui/fsui.c 2006-10-21 18:58:32 UTC (rev
3525)
+++ GNUnet/src/applications/fs/fsui/fsui.c 2006-10-21 19:52:48 UTC (rev
3526)
@@ -22,10 +22,6 @@
* @file applications/fs/fsui/fsui.c
* @brief main FSUI functions
* @author Christian Grothoff
- *
- * TODO:
- * - resume signaling: some minor fields uninitialized
- * - better ETA calculation for download resume
*/
#include "platform.h"
@@ -66,6 +62,8 @@
static void signalDownloadResume(struct FSUI_DownloadList * ret,
FSUI_Context * ctx) {
FSUI_Event event;
+ cron_t now;
+ cron_t eta;
while (ret != NULL) {
if (ret->state == FSUI_PENDING) {
@@ -74,11 +72,22 @@
event.data.DownloadResumed.dc.cctx = ret->cctx;
event.data.DownloadResumed.dc.ppos = ret->parent;
event.data.DownloadResumed.dc.pcctx = ret->parent->cctx;
- event.data.DownloadResumed.eta = get_time(); /* FIXME: can do better
here! */
+ event.data.DownloadResumed.completed = ret->completed;
event.data.DownloadResumed.total = ret->total;
- event.data.DownloadResumed.completed = ret->completed;
+ now = get_time();
+ if ( (ret->total == 0) || (ret->completed == 0) ) {
+ eta = now;
+ } else {
+ eta = (cron_t) (now - ret->runTime +
+ (((double)(ret->run_time)/(double)ret->completed))
+ * (double)ret->total);
+ if (eta < now)
+ eta = now;
+ }
+ event.data.DownloadResumed.eta = eta;
+ event.data.DownloadResumed.filename = ret->filename;
+ event.data.DownloadResumed.uri = ret->uri;
event.data.DownloadResumed.anonymityLevel = ret->anonymityLevel;
- event.data.DownloadResumed.uri = ret->uri;
ret->cctx = ctx->ecb(ctx->ecbClosure, &event);
if (ret->child != NULL)
signalDownloadResume(ret->child,
@@ -91,6 +100,8 @@
static void signalUploadResume(struct FSUI_UploadList * ret,
FSUI_Context * ctx) {
FSUI_Event event;
+ cron_t now;
+ cron_t eta;
while (ret != NULL) {
if (ret->state == FSUI_ACTIVE) {
@@ -101,8 +112,18 @@
event.data.UploadResumed.uc.pcctx = ret->parent->cctx;
event.data.UploadResumed.completed = ret->completed;
event.data.UploadResumed.total = ret->total;
+ now = get_time();
+ if ( (ret->total == 0) || (ret->completed == 0) ) {
+ eta = now;
+ } else {
+ eta = (cron_t) (ret->start_time +
+ (((double)(now -
ret->start_time)/(double)ret->completed))
+ * (double)ret->total);
+ if (eta < now)
+ eta = now;
+ }
+ event.data.UploadResumed.eta = eta;
event.data.UploadResumed.anonymityLevel = ret->shared->anonymityLevel;
- event.data.UploadResumed.eta = 0; /* FIXME: use start_time for estimate!
*/
event.data.UploadResumed.filename = ret->filename;
ret->cctx = ctx->ecb(ctx->ecbClosure, &event);
if (ret->child != NULL)
@@ -502,6 +523,7 @@
event.type = FSUI_unindex_suspended;
event.data.UnindexSuspended.uc.pos = xpos;
event.data.UnindexSuspended.uc.cctx = xpos->cctx;
+ ctx->ecb(ctx->ecbClosure, &event);
xpos = xpos->next;
}
Modified: GNUnet/src/applications/fs/fsui/search.c
===================================================================
--- GNUnet/src/applications/fs/fsui/search.c 2006-10-21 18:58:32 UTC (rev
3525)
+++ GNUnet/src/applications/fs/fsui/search.c 2006-10-21 19:52:48 UTC (rev
3526)
@@ -55,10 +55,10 @@
= ECRS_dupMetaData(fi->meta);
event.type = FSUI_search_result;
+ event.data.SearchResult.sc.pos = pos;
+ event.data.SearchResult.sc.cctx = pos->cctx;
event.data.SearchResult.fi = *fi;
event.data.SearchResult.searchURI = pos->uri;
- event.data.SearchResult.sc.pos = pos;
- event.data.SearchResult.sc.cctx = pos->cctx;
pos->ctx->ecb(pos->ctx->ecbClosure,
&event);
}
@@ -245,6 +245,8 @@
event.type = FSUI_search_started;
event.data.SearchStarted.sc.pos = pos;
event.data.SearchStarted.sc.cctx = NULL;
+ event.data.SearchStarted.searchURI = pos->uri;
+ event.data.SearchStarted.anonymityLevel = pos->anonymityLevel;
pos->cctx = pos->ctx->ecb(pos->ctx->ecbClosure,
&event);
ret = ECRS_search(pos->ctx->ectx,
Modified: GNUnet/src/applications/fs/fsui/unindex.c
===================================================================
--- GNUnet/src/applications/fs/fsui/unindex.c 2006-10-21 18:58:32 UTC (rev
3525)
+++ GNUnet/src/applications/fs/fsui/unindex.c 2006-10-21 19:52:48 UTC (rev
3526)
@@ -42,10 +42,12 @@
FSUI_Event event;
event.type = FSUI_unindex_progress;
+ event.data.UnindexProgress.uc.pos = utc;
+ event.data.UnindexProgress.uc.cctx = utc->cctx;
+ event.data.UnindexProgress.total = totalBytes;
event.data.UnindexProgress.completed = completedBytes;
- event.data.UnindexProgress.total = totalBytes;
+ event.data.UnindexProgress.eta = eta;
event.data.UnindexProgress.filename = utc->filename;
- event.data.UnindexProgress.eta = eta;
utc->ctx->ecb(utc->ctx->ecbClosure,
&event);
}
@@ -77,6 +79,7 @@
event.data.UnindexStarted.uc.pos = utc;
event.data.UnindexStarted.uc.cctx = NULL;
event.data.UnindexStarted.total = size;
+ event.data.UnindexStarted.filename = utc->filename;
utc->cctx = utc->ctx->ecb(utc->ctx->ecbClosure,
&event);
ret = ECRS_unindexFile(utc->ctx->ectx,
Modified: GNUnet/src/applications/fs/fsui/upload.c
===================================================================
--- GNUnet/src/applications/fs/fsui/upload.c 2006-10-21 18:58:32 UTC (rev
3525)
+++ GNUnet/src/applications/fs/fsui/upload.c 2006-10-21 19:52:48 UTC (rev
3526)
@@ -43,9 +43,7 @@
void * ptr) {
FSUI_UploadList * utc = ptr;
FSUI_Event event;
- cron_t now;
- now = get_time();
event.type = FSUI_upload_progress;
event.data.UploadProgress.uc.pos = utc;
event.data.UploadProgress.uc.cctx = utc->cctx;
@@ -53,8 +51,8 @@
event.data.UploadProgress.uc.pcctx = utc->parent->cctx;
event.data.UploadProgress.completed = completedBytes;
event.data.UploadProgress.total = totalBytes;
- event.data.UploadProgress.filename = utc->filename;
event.data.UploadProgress.eta = eta;
+ event.data.UploadProgress.filename = utc->filename;
utc->completed = completedBytes;
utc->shared->ctx->ecb(utc->shared->ctx->ecbClosure,
&event);
Modified: GNUnet/todo
===================================================================
--- GNUnet/todo 2006-10-21 18:58:32 UTC (rev 3525)
+++ GNUnet/todo 2006-10-21 19:52:48 UTC (rev 3526)
@@ -12,17 +12,25 @@
-0.7.1 ['06] (aka "stabilization")
+0.7.1 [10'06] (aka "stabilization")
- finish util refactoring: [RC]
* Testcases not compiling or passing:
+ dht/tools
* Missing functionality:
- + fs/fsui:
- @ better ETA calculations
- @ make sure new event fields are set for all events
+ + logger configuration
+ + factor startup code into common helper function
+ @ make sure all tools load configuration file
+ fs/fslib: error handing
+ fs/module: error handing
- + logger configuration
+ + gnunet-setup: [RC]
+ @ gtk wizard
+ @ ncurses wizard
+ @ Scheme (scm) specification of entire configuration
+- fix critical known bugs (see Mantis for updates):
+ * file/socket leak (#955) - possibly fixed
+ * Windows installer, uninstall: Remove account [Nils, RC]
+ * disk quota violations (#1128) [CG, RC]
+ * high CPU usage (quota exceeded) #1123 [CG, RC]
- More testcases: [RC]
* advertising
* ecrs_core
@@ -34,16 +42,9 @@
* make dht tests work (and write more)
* fs/fsui: recursive uploads and downloads (incl. persistence)
* fs/namespaces
-- gnunet-setup: [RC]
- * gtk wizard
- * ncurses wizard
- * Scheme (scm) specification of entire configuration
-- fix known bugs (see Mantis for updates):
- * file/socket leak (#955) - possibly fixed
- * Windows installer, uninstall: Remove account [Nils, RC]
-0.7.2 ['06]:
+0.7.2 ['07]:
- Transports:
* SMTP/HTTP (using libcurl, libmicrohttpd, libesmtp)
- Features:
@@ -59,14 +60,14 @@
current directories!) [ CG ]
* DHT: use additional optional fields (HELLOs) [ CG ]
-0.7.3 ['06] (aka "features"):
+0.7.3 ['07] (aka "features"):
- #747 (sharing stats for gnunet-gtk)
- insert meta-data under hash (md5? sha1? sha-512? GNUnet-URI?)
as keyword (to allow getting meta-data from URI only)
- Documentation:
* LJ article
-0.7.4 ['06] (aka "advanced features"):
+0.7.4 ['07] (aka "advanced features"):
- gnunet-chat [ RC ]
- Insert/Index a "shared directory" automatically [Nils]
- https://gnunet.org/drupal/?q=node/97
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r3526 - in GNUnet: . src/applications/fs/fsui,
grothoff <=