]> git.saurik.com Git - apt.git/blob - apt-pkg/pkgsystem.cc
* merged from main
[apt.git] / apt-pkg / pkgsystem.cc
1 // -*- mode: cpp; mode: fold -*-
2 // Description /*{{{*/
3 // $Id: pkgsystem.cc,v 1.3 2004/02/27 00:43:16 mdz Exp $
4 /* ######################################################################
5
6 System - Abstraction for running on different systems.
7
8 Basic general structure..
9
10 ##################################################################### */
11 /*}}}*/
12 // Include Files /*{{{*/
13 #include <apt-pkg/pkgsystem.h>
14 #include <apt-pkg/policy.h>
15 #include <cassert>
16 /*}}}*/
17
18 pkgSystem *_system = 0;
19 static pkgSystem *SysList[10];
20 pkgSystem **pkgSystem::GlobalList = SysList;
21 unsigned long pkgSystem::GlobalListLen = 0;
22
23 // System::pkgSystem - Constructor /*{{{*/
24 // ---------------------------------------------------------------------
25 /* Add it to the global list.. */
26 pkgSystem::pkgSystem()
27 {
28 assert(GlobalListLen < sizeof(SysList)/sizeof(*SysList));
29 SysList[GlobalListLen] = this;
30 GlobalListLen++;
31 }
32 /*}}}*/
33 // System::GetSystem - Get the named system /*{{{*/
34 // ---------------------------------------------------------------------
35 /* */
36 pkgSystem *pkgSystem::GetSystem(const char *Label)
37 {
38 for (unsigned I = 0; I != GlobalListLen; I++)
39 if (strcmp(SysList[I]->Label,Label) == 0)
40 return SysList[I];
41 return 0;
42 }
43 /*}}}*/