- Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCDBRecordsArray.cpp
More file actions
Latest commit
81 lines (64 loc) · 1.88 KB
/
Copy pathCDBRecordsArray.cpp
File metadata and controls
81 lines (64 loc) · 1.88 KB
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
/*
Copyright [2010] [Richard Bross]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include"CDBRecordsArray.h"
CDBRecordsArray::CDBRecordsArray()
{
bIsLocked = false;
fTotalElapsed = 0.0f;
}
CDBRecordsArray::CDBRecordsArray(const CDBRecordsArray& orig)
{
cDBMutex.Lock();
vDBRecords = orig.vDBRecords;
fTotalElapsed = orig.fTotalElapsed;
cDBMutex.Unlock();
}
CDBRecordsArray::~CDBRecordsArray()
{
}
// Add to DB record array
voidCDBRecordsArray::DBRecordAdd(constchar *pRecord, floatfElapsed)
{
cDBMutex.Lock();
vDBRecords.push_back(pRecord);
fTotalElapsed += fElapsed;
cDBMutex.Unlock();
}
//! Add a whole array of records
voidCDBRecordsArray::DBRecordAdd(VEC_DB_RECORDS &vRec, floatfElapsed)
{
cDBMutex.Lock();
vDBRecords.insert(vDBRecords.end(), vRec.begin(), vRec.end());
fTotalElapsed += fElapsed;
cDBMutex.Unlock();
}
// Get DB record array - locks the array
VEC_DB_RECORDS *CDBRecordsArray::LockDBRecords()
{
cDBMutex.Lock();
bIsLocked = true;
return &vDBRecords;
}
// Release DB record array - must be called after "GetRecordArray"
voidCDBRecordsArray::UnlockDBRecords()
{
cDBMutex.Unlock();
bIsLocked = false;
}
// Warning - MUST BE LOCKED FIRST
boolCDBRecordsArray::ClearDBRecords()
{ // Make sure at least someone has a lock on it
if (bIsLocked)
vDBRecords.clear();
return (bIsLocked);
}