Use Linux-like indentation in mptp.c
[swifty.git] / src / libswift / swift.cpp
index c4e5b3b..4bf00b6 100644 (file)
@@ -27,6 +27,7 @@ int OpenSwiftDirectory(const TCHAR* dirname, Address tracker, bool force_check_d
 void ReportCallback(int fd, short event, void *arg);
 void EndCallback(int fd, short event, void *arg);
 void RescanDirCallback(int fd, short event, void *arg);
+void TimerCallback(int fd, short event, void *arg);
 
 
 // Gateway stuff
@@ -39,7 +40,7 @@ void CmdGwUpdateDLStatesCallback();
 
 
 // Global variables
-struct event evreport, evrescan, evend;
+struct event evreport, evrescan, evend, evtimer;
 int single_fd = -1;
 bool file_enable_checkpoint = false;
 bool file_checkpointed = false;
@@ -328,6 +329,9 @@ int main (int argc, char** argv)
        evtimer_add(&evend, tint2tv(wait_time));
     }
 
+       evtimer_assign(&evtimer, Channel::evbase, TimerCallback, NULL);
+       evtimer_add(&evtimer, tint2tv(TIMER_USEC));
+
     // Enter mainloop, if daemonizing
     if (wait_time == TINT_NEVER || (long)wait_time > 0) {
                // Arno: always, for statsgw, rate control, etc.
@@ -495,11 +499,13 @@ void ReportCallback(int fd, short event, void *arg) {
                if (report_progress) {
                        fprintf(stderr,
                                "%s %lli of %lli (seq %lli) %lli dgram %lli bytes up, " \
-                               "%lli dgram %lli bytes down\n",
+                               "%lli dgram %lli bytes down mptp[send:%lli,%lli;recv:%lli,%lli]\n",
                                IsComplete(single_fd ) ? "DONE" : "done",
                                Complete(single_fd), Size(single_fd), SeqComplete(single_fd),
                                Channel::global_dgrams_up, Channel::global_raw_bytes_up,
-                               Channel::global_dgrams_down, Channel::global_raw_bytes_down );
+                               Channel::global_dgrams_down, Channel::global_raw_bytes_down,
+                               Channel::global_buffers_up, Channel::global_syscalls_up,
+                               Channel::global_buffers_down, Channel::global_syscalls_down);
                }
 
         FileTransfer *ft = FileTransfer::file(single_fd);
@@ -567,6 +573,11 @@ void ReportCallback(int fd, short event, void *arg) {
        evtimer_add(&evreport, tint2tv(TINT_SEC));
 }
 
+void TimerCallback(int fd, short event, void *arg) {
+       Channel::messageQueue.Flush();
+       evtimer_add(&evtimer, tint2tv(TIMER_USEC));
+}
+
 void EndCallback(int fd, short event, void *arg) {
        // Called when wait timer expires == fixed time daemon
     event_base_loopexit(Channel::evbase, NULL);