Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
platform
Labels
IModelRepository.h
1
// Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2
3
#pragma once
4
5
#include "Types.h"
6
7
#include <vector>
8
#include <map>
9
10
namespace
Eegeo
11
{
12
namespace
Labels
13
{
14
template
<
typename
TRepository>
15
class
IModelRepositoryObserver
;
16
17
template
<
typename
TKey,
typename
TValue,
typename
TIterator>
18
class
IModelRepository
19
{
20
public
:
21
typedef
IModelRepository<TKey, TValue, TIterator>
ThisType
;
22
typedef
TKey KeyType;
23
typedef
TValue ItemType;
24
typedef
TIterator IteratorType;
25
typedef
IModelRepositoryObserver<ThisType>
ObserverType
;
26
public
:
27
virtual
~
IModelRepository
() {;}
28
29
virtual
int
Size()
const
= 0;
30
31
virtual
bool
Contains(
const
KeyType& key)
const
= 0;
32
33
virtual
ItemType Get(
const
KeyType& key)
const
= 0;
34
35
virtual
void
Add(
const
KeyType& key,
const
ItemType& value) = 0;
36
37
virtual
void
Remove(
const
KeyType& key) = 0;
38
39
virtual
void
Clear() = 0;
40
41
virtual
void
AllKeys(std::vector<KeyType>& out_allKeys)
const
= 0;
42
43
virtual
void
AllItems(std::vector<ItemType>& out_allItems)
const
= 0;
44
45
virtual
IteratorType Begin()
const
= 0;
46
47
virtual
IteratorType End()
const
= 0;
48
49
virtual
void
AddObserver(
ObserverType
& observer) = 0;
50
51
virtual
void
RemoveObserver(
ObserverType
& observer) = 0;
52
};
53
}
54
}
Generated on Sat Jun 10 2023 02:00:31 for eeGeo Platform SDK by
1.8.3.1