这是一个用来监控本地文件夹变化的服务
w1146869587
2021-11-09 f5e3a3a6785cd9305c476eadf329c8ae00161add
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
#include "mbwatchusermgr.h"
 
CMBWatchUserMgr::CMBWatchUserMgr()
{
    removeAll();
}
 
CMBWatchUserMgr::~CMBWatchUserMgr()
{
    removeAll();
}
 
bool CMBWatchUserMgr::add(CMBWatchUser *pUser)
{
    if( NULL == pUser )
        return false;
 
    QString login = pUser->getLogin();
    QString svrID = pUser->getSvrID();
 
    if(is(login, svrID))
        return false;
 
    {
    QMutexLocker locker(&m_mutex);
    m_vector.append(pUser);
    }
    return true;
}
 
CMBWatchUser *CMBWatchUserMgr::get(QString login, QString svrID)
{
    QMutexLocker locker(&m_mutex);
 
    login = login.trimmed();
    svrID = svrID.trimmed();
    if( login.isEmpty() || svrID.isEmpty() )
        return NULL;
 
    CMBWatchUserVector::iterator    it;
    CMBWatchUser *pUser = NULL;
 
    for( it = m_vector.begin();it != m_vector.end();it++ )
    {
        pUser = *it;
        QString tmpLogin = pUser->getLogin();
        QString tmpSvrID = pUser->getSvrID();
 
        tmpLogin = tmpLogin.trimmed();
        tmpSvrID = tmpSvrID.trimmed();
        if( tmpLogin == login && tmpSvrID == svrID )
            return pUser;
    }
    return NULL;
}
 
bool CMBWatchUserMgr::removeAll()
{
    QMutexLocker locker(&m_mutex);
 
    qDeleteAll(m_vector.begin(),m_vector.end());
 
    m_vector.clear();
 
    return true;
}
 
bool CMBWatchUserMgr::is(QString login, QString svrID)
{
    CMBWatchUser *pUser = get(login, svrID);
    if( NULL == pUser )
        return false;
 
    return true;
}
 
void CMBWatchUserMgr::getVector(CMBWatchUserVector &vector)
{
    vector.clear();
    vector = m_vector;
}