// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: acquire.cc,v 1.40 1999/10/18 00:37:35 jgg Exp $
+// $Id: acquire.cc,v 1.47 2001/02/20 07:03:17 jgg Exp $
/* ######################################################################
Acquire - File Acquiration
#include <apt-pkg/error.h>
#include <apt-pkg/strutl.h>
+#include <apti18n.h>
+
#include <dirent.h>
#include <sys/time.h>
#include <errno.h>
+#include <sys/stat.h>
/*}}}*/
// Acquire::pkgAcquire - Constructor /*{{{*/
QueueMode = QueueAccess;
Debug = _config->FindB("Debug::pkgAcquire",false);
+
+ // This is really a stupid place for this
+ struct stat St;
+ if (stat((_config->FindDir("Dir::State::lists") + "partial/").c_str(),&St) != 0 ||
+ S_ISDIR(St.st_mode) == 0)
+ _error->Error(_("Lists directory %spartial is missing."),
+ _config->FindDir("Dir::State::lists").c_str());
+ if (stat((_config->FindDir("Dir::Cache::Archives") + "partial/").c_str(),&St) != 0 ||
+ S_ISDIR(St.st_mode) == 0)
+ _error->Error(_("Archive directory %spartial is missing."),
+ _config->FindDir("Dir::Cache::Archives").c_str());
}
/*}}}*/
// Acquire::~pkgAcquire - Destructor /*{{{*/
/* Free our memory, clean up the queues (destroy the workers) */
pkgAcquire::~pkgAcquire()
{
+ Shutdown();
+
while (Configs != 0)
{
MethodConfig *Jnk = Configs;
Configs = Configs->Next;
delete Jnk;
}
-
- Shutdown();
}
/*}}}*/
// Acquire::Shutdown - Clean out the acquire object /*{{{*/
/* Remove an item from the acquire list. This is usually not used.. */
void pkgAcquire::Remove(Item *Itm)
{
+ Dequeue(Itm);
+
for (vector<Item *>::iterator I = Items.begin(); I < Items.end(); I++)
{
if (*I == Itm)
{
DIR *D = opendir(Dir.c_str());
if (D == 0)
- return _error->Errno("opendir","Unable to read %s",Dir.c_str());
+ return _error->Errno("opendir",_("Unable to read %s"),Dir.c_str());
string StartDir = SafeGetCWD();
if (chdir(Dir.c_str()) != 0)
{
closedir(D);
- return _error->Errno("chdir","Unable to change to ",Dir.c_str());
+ return _error->Errno("chdir",_("Unable to change to %s"),Dir.c_str());
}
for (struct dirent *Dir = readdir(D); Dir != 0; Dir = readdir(D))
// Acquire::TotalNeeded - Number of bytes to fetch /*{{{*/
// ---------------------------------------------------------------------
/* This is the total number of bytes needed */
-unsigned long pkgAcquire::TotalNeeded()
+double pkgAcquire::TotalNeeded()
{
- unsigned long Total = 0;
+ double Total = 0;
for (pkgAcquire::Item **I = ItemsBegin(); I != ItemsEnd(); I++)
Total += (*I)->FileSize;
return Total;
// Acquire::FetchNeeded - Number of bytes needed to get /*{{{*/
// ---------------------------------------------------------------------
/* This is the number of bytes that is not local */
-unsigned long pkgAcquire::FetchNeeded()
+double pkgAcquire::FetchNeeded()
{
- unsigned long Total = 0;
+ double Total = 0;
for (pkgAcquire::Item **I = ItemsBegin(); I != ItemsEnd(); I++)
if ((*I)->Local == false)
Total += (*I)->FileSize;
// Acquire::PartialPresent - Number of partial bytes we already have /*{{{*/
// ---------------------------------------------------------------------
/* This is the number of bytes that is not local */
-unsigned long pkgAcquire::PartialPresent()
+double pkgAcquire::PartialPresent()
{
- unsigned long Total = 0;
+ double Total = 0;
for (pkgAcquire::Item **I = ItemsBegin(); I != ItemsEnd(); I++)
if ((*I)->Local == false)
Total += (*I)->PartialSize;
Pipeline = false;
SendConfig = false;
LocalOnly = false;
+ Removable = false;
Next = 0;
}
/*}}}*/
// AcquireStatus::pkgAcquireStatus - Constructor /*{{{*/
// ---------------------------------------------------------------------
/* */
-pkgAcquireStatus::pkgAcquireStatus()
+pkgAcquireStatus::pkgAcquireStatus() : Update(true), MorePulses(false)
{
Start();
}
// Totally ignore local items
if ((*I)->Local == true)
continue;
-
+
TotalBytes += (*I)->FileSize;
if ((*I)->Complete == true)
CurrentBytes += (*I)->FileSize;