]> git.saurik.com Git - apt.git/blob - apt-pkg/pkgsystem.cc
apt_preferences(5): Mention overlapping of pin matches
[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<config.h>
14
15 #include <apt-pkg/pkgsystem.h>
16 #include <apt-pkg/macros.h>
17
18 #include <cassert>
19 #include <cstring>
20 /*}}}*/
21
22 pkgSystem *_system = 0;
23 static pkgSystem *SysList[10];
24 pkgSystem **pkgSystem::GlobalList = SysList;
25 unsigned long pkgSystem::GlobalListLen = 0;
26
27 // System::pkgSystem - Constructor /*{{{*/
28 // ---------------------------------------------------------------------
29 /* Add it to the global list.. */
30 pkgSystem::pkgSystem(char const * const label, pkgVersioningSystem * const vs) :
31 Label(label), VS(vs), d(NULL)
32 {
33 assert(GlobalListLen < sizeof(SysList)/sizeof(*SysList));
34 SysList[GlobalListLen] = this;
35 ++GlobalListLen;
36 }
37 /*}}}*/
38 // System::GetSystem - Get the named system /*{{{*/
39 // ---------------------------------------------------------------------
40 /* */
41 APT_PURE pkgSystem *pkgSystem::GetSystem(const char *Label)
42 {
43 for (unsigned I = 0; I != GlobalListLen; I++)
44 if (strcmp(SysList[I]->Label,Label) == 0)
45 return SysList[I];
46 return 0;
47 }
48 /*}}}*/
49
50 pkgSystem::~pkgSystem() {}