forked from ngageoint/csm
-
Notifications
You must be signed in to change notification settings - Fork 13
/
MultiNitfIsd.h
88 lines (72 loc) · 2.37 KB
/
MultiNitfIsd.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//#############################################################################
//
// FILENAME: MultiNitfIsd.h
//
// CLASSIFICATION: Unclassified
//
// DESCRIPTION:
//
// Header for the MultiNitfIsd base class. MultiNitfIsd is encapsulated in a
// C++ class for transfer through the CSM (Plugin) interface. MultiNitfIsd
// holds a vector of csm::NitfIsds
//
// LIMITATIONS: None
//
// SOFTWARE HISTORY:
//
// Date Author Comment
// ----------- ------ -------
// 28-NOV-2018 JPK Initial Version.
// 29-NOV-2018 SCM Cleanup formatting. Use std::size_t for size.
//
// NOTES:
//
//#############################################################################
#ifndef __CSM_MULTINITFISD_H
#define __CSM_MULTINITFISD_H
#include <string>
#include <vector>
#include "csm.h"
#include "NitfIsd.h"
namespace csm
{
class CSM_EXPORT_API MultiNitfIsd : public Isd
{
public:
MultiNitfIsd() : Isd("MULTINITF", ""), theISDs() {}
//> This constructor makes an empty image support data list.
//<
explicit MultiNitfIsd(const std::vector<csm::NitfIsd>& isdList);
//> This constructor stores one or more image support data objects.
//<
const std::string& format() const { return theFormat; }
//> This method returns the format of the image support data (MULTINITF).
//<
void addIsd(const csm::NitfIsd& isd);
//> This method adds a csm::NitfIsd to the MultiNitfIsd.
//<
const std::vector<csm::NitfIsd>& isdList() const;
//> This method allows const retrieval of the entire
// vector of available csm::NitfIsd objects.
//<
std::vector<csm::NitfIsd>& isdList();
//> This method allows non-const retrieval of the
// vector of available csm::NitfIsd objects, allowing the
// vector to be modified (added to / deleted from).
//<
void clearAllIsds() { theISDs.clear(); }
//> This method removes all the ISDs added to the vector.
//<
std::size_t numberOfIsds() const {return theISDs.size();}
//> This method returns the number of available ISDs owned
// by this class.
//<
const csm::NitfIsd& isd(std::size_t index) const;
//> This method returns the csm::NitfIsd at the specified
// index.
//<
protected:
std::vector<csm::NitfIsd> theISDs;
};
} // namespace csm
#endif