include all users messages if level was not requested in find command

This commit is contained in:
john30
2017-02-18 13:40:42 +01:00
parent c48b1add94
commit e87b4fec21
3 changed files with 11 additions and 8 deletions
+5 -4
View File
@@ -288,7 +288,7 @@ void MainLoop::run() {
}
time(&now);
if (!dataSinks.empty()) {
messages = m_messages->findAll("", "", "*", false, true, true, true, true, sinkSince, now);
messages = m_messages->findAll("", "", "*", false, true, true, true, true, true, sinkSince, now);
for (deque<Message*>::iterator it = messages.begin(); it != messages.end(); it++) {
Message* message = *it;
for (list<DataSink*>::iterator it = dataSinks.begin(); it != dataSinks.end(); it++) {
@@ -328,7 +328,7 @@ void MainLoop::run() {
}
if (listening) {
string levels = getUserLevels(user);
messages = m_messages->findAll("", "", levels, false, true, true, true, true, since, now);
messages = m_messages->findAll("", "", levels, false, true, true, true, true, true, since, now);
for (deque<Message*>::iterator it = messages.begin(); it != messages.end(); it++) {
Message* message = *it;
ostream << message->getCircuit() << " " << message->getName() << " = " << dec;
@@ -963,7 +963,7 @@ string MainLoop::executeHex(vector<string> &args) {
string MainLoop::executeFind(vector<string> &args, string levels) {
size_t argPos = 1;
bool configFormat = false, exact = false, withRead = true, withWrite = false, withPassive = true, first = true,
onlyWithData = false, hexFormat = false;
onlyWithData = false, hexFormat = false, userLevel = true;
OutputFormat verbosity = 0;
vector<column_t> columns;
string circuit;
@@ -1075,6 +1075,7 @@ string MainLoop::executeFind(vector<string> &args, string levels) {
break;
}
levels = args[argPos];
userLevel = false;
} else {
argPos = 0; // print usage
break;
@@ -1103,7 +1104,7 @@ string MainLoop::executeFind(vector<string> &args, string levels) {
" NAME NAME of the messages to find (or a part thereof without '-e')";
}
deque<Message*> messages = m_messages->findAll(
circuit, args.size() == argPos ? "" : args[argPos], levels, exact, withRead, withWrite, withPassive);
circuit, args.size() == argPos ? "" : args[argPos], levels, exact, withRead, withWrite, withPassive, userLevel);
bool found = false;
ostringstream result;
+3 -3
View File
@@ -2002,8 +2002,8 @@ Message* MessageMap::find(const string& circuit, const string& name, const strin
}
deque<Message*> MessageMap::findAll(const string& circuit, const string& name, const string& levels,
const bool completeMatch, const bool withRead, const bool withWrite,
const bool withPassive, const bool onlyAvailable,
const bool completeMatch, const bool withRead, const bool withWrite, const bool withPassive,
const bool includeEmptyLevel, const bool onlyAvailable,
const time_t since, const time_t until) {
deque<Message*> ret;
string lcircuit = circuit;
@@ -2019,7 +2019,7 @@ deque<Message*> MessageMap::findAll(const string& circuit, const string& name, c
}
for (vector<Message*>::iterator msgIt = it->second.begin(); msgIt != it->second.end(); msgIt++) {
Message* message = *msgIt;
if (checkLevel && !message->hasLevel(levels, !completeMatch)) {
if (checkLevel && !message->hasLevel(levels, includeEmptyLevel)) {
continue;
}
if (checkCircuit) {
+3 -1
View File
@@ -1320,6 +1320,8 @@ class MessageMap : public FileReader {
* @param withWrite true to include write messages (default false).
* @param withPassive true to include passive messages (default false).
* @return the found @a Message instances.
* @param includeEmptyLevel true to also include messages with no access level, false to include only messages with
* the specified level.
* @param onlyAvailable true to include only available messages (default true), false to also include messages that
* are currently not available (e.g. due to unresolved or false conditions).
* @param since the start time from which to add updates (inclusive, also removes messages with unset destination
@@ -1330,7 +1332,7 @@ class MessageMap : public FileReader {
*/
deque<Message*> findAll(const string& circuit, const string& name, const string& levels,
const bool completeMatch = true, const bool withRead = true, const bool withWrite = false,
const bool withPassive = false, const bool onlyAvailable = true,
const bool withPassive = false, const bool includeEmptyLevel = true, const bool onlyAvailable = true,
const time_t since = 0, const time_t until = 0);
/**