summaryrefslogtreecommitdiffstats
path: root/src/CRSMStats.cpp
blob: 7add773f4eead0360889c5494a2bc79dcf139296 (plain)
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
#include "CRSMStats.hpp"

void CRSMStats::AddScenarioWish(const ClientInfo &client, const QString &scenarioFileName)
{
    Scenarios[scenarioFileName].FileName = scenarioFileName;
    ++Scenarios[scenarioFileName].Sum.WishCount;
    ++Scenarios[scenarioFileName].Wishers[client].WishCount;

    Users[client].Client = client;
    ++Users[client].ScenarioWishes[scenarioFileName].WishCount;
    ++Users[client].WishSum.WishCount;
}

void CRSMStats::AddScenarioStart(const ClientInfo &client, const QString &scenarioFileName)
{
    Scenarios[scenarioFileName].FileName = scenarioFileName;
    ++Scenarios[scenarioFileName].Sum.StartCount;
    ++Scenarios[scenarioFileName].Wishers[client].StartCount;

    Users[client].Client = client;
    ++Users[client].ScenarioWishes[scenarioFileName].StartCount;
    ++Users[client].WishSum.StartCount;
}

void CRSMStats::AddCommandResult(const ClientInfo &client, const QString &cmd, CmdResult result)
{
    Users[client].Client = client;

    if(result != UnknownCommand)
    {
        Commands[cmd].Command = cmd;
        ++Commands[cmd].Sum.UseCount;
        ++Commands[cmd].Users[client].UseCount;

        ++Users[client].CommandSum.UseCount;
        ++Users[client].Commands[cmd].UseCount;
    }
    else
    {
        FailCommands[cmd].Command = cmd;
        ++FailCommands[cmd].Sum;
        ++FailCommands[cmd].Users[client];

        ++Users[client].FailCommands[cmd];
    }

    if(result == Success)
    {
        ++Commands[cmd].Sum.SuccessCount;
        ++Commands[cmd].Users[client].SuccessCount;

        ++Users[client].CommandSum.SuccessCount;
        ++Users[client].Commands[cmd].SuccessCount;
    }
    else if(result == RightsFail)
    {
        ++Commands[cmd].Sum.RightsFailCount;
        ++Commands[cmd].Users[client].RightsFailCount;

        ++Users[client].CommandSum.RightsFailCount;
        ++Users[client].Commands[cmd].RightsFailCount;
    }
    else if(result == SyntaxFail)
    {
        ++Commands[cmd].Sum.SyntaxFailCount;
        ++Commands[cmd].Users[client].SyntaxFailCount;

        ++Users[client].CommandSum.SyntaxFailCount;
        ++Users[client].Commands[cmd].SyntaxFailCount;
    }
}