MiKTeX 23.10-next
A scalable TeX distribution
Loading...
Searching...
No Matches
PackageIterator.h
1/* miktex/PackageManager/PackageIterator.h: -*- C++ -*-
2
3 Copyright (C) 2001-2019 Christian Schenk
4
5 This file is part of MiKTeX Package Manager.
6
7 MiKTeX Package Manager is free software; you can redistribute it
8 and/or modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2, or
10 (at your option) any later version.
11
12 MiKTeX Package Manager is distributed in the hope that it will be
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with MiKTeX Package Manager; if not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
21
22#pragma once
23
24#if !defined(E2B06574362B414885CF42E8C46BDB28)
25#define E2B06574362B414885CF42E8C46BDB28
26
27#include "config.h"
28
29#include <miktex/Util/OptionSet>
30
31#include "PackageInfo.h"
32
33MIKTEX_PACKAGES_BEGIN_NAMESPACE;
34
36enum class PackageFilter
37{
39 Top,
42};
43
44typedef MiKTeX::Util::OptionSet<PackageFilter> PackageFilterSet;
45
47class MIKTEXNOVTABLE PackageIterator
48{
49public:
50 virtual MIKTEXTHISCALL ~PackageIterator() noexcept = 0;
51
53public:
54 virtual void MIKTEXTHISCALL Dispose() = 0;
55
59public:
60 virtual void MIKTEXTHISCALL AddFilter(PackageFilterSet filter) = 0;
61
65public:
66 virtual bool MIKTEXTHISCALL GetNext(PackageInfo& packageInfo) = 0;
67};
68
69MIKTEX_PACKAGES_END_NAMESPACE;
70
71#endif
Package information.
Instances of this class can be used to browse the package database.
Definition: PackageIterator.h:48
virtual void Dispose()=0
Releases all resources used by this object.
virtual bool GetNext(PackageInfo &packageInfo)=0
virtual void AddFilter(PackageFilterSet filter)=0
Definition: OptionSet.h:37
PackageFilter
Package filter.
Definition: PackageIterator.h:37
@ Top
Top-level package filter.
@ Obsolete
Obsolete packages.
Package record.
Definition: PackageInfo.h:34