build: fixed to compile for mac and linux again
* removed direct usage of MessageListener from lib parser
This commit is contained in:
@@ -298,6 +298,8 @@ add_files(
|
||||
|
||||
utility/messaging/Message.h
|
||||
utility/messaging/MessageBase.h
|
||||
utility/messaging/MessageInterruptTasksCounter.cpp
|
||||
utility/messaging/MessageInterruptTasksCounter.h
|
||||
utility/messaging/MessageListener.h
|
||||
utility/messaging/MessageListenerBase.cpp
|
||||
utility/messaging/MessageListenerBase.h
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#include "utility/messaging/MessageInterruptTasksCounter.h"
|
||||
|
||||
#include "utility/messaging/type/MessageInterruptTasks.h"
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
|
||||
MessageInterruptTasksCounter::MessageInterruptTasksCounter()
|
||||
: m_count(0)
|
||||
{
|
||||
class InterruptListener: public MessageListener<MessageInterruptTasks>
|
||||
{
|
||||
public:
|
||||
InterruptListener(size_t& counter)
|
||||
: m_counter(counter)
|
||||
{}
|
||||
|
||||
private:
|
||||
virtual void handleMessage(MessageInterruptTasks* message)
|
||||
{
|
||||
m_counter++;
|
||||
}
|
||||
|
||||
size_t& m_counter;
|
||||
};
|
||||
|
||||
m_listener = std::make_shared<InterruptListener>(m_count);
|
||||
}
|
||||
|
||||
MessageInterruptTasksCounter::~MessageInterruptTasksCounter()
|
||||
{
|
||||
}
|
||||
|
||||
void MessageInterruptTasksCounter::reset()
|
||||
{
|
||||
m_count = 0;
|
||||
}
|
||||
|
||||
size_t MessageInterruptTasksCounter::getCount() const
|
||||
{
|
||||
return m_count;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef MESSAGE_INTERRUPT_TASKS_COUNTER_H
|
||||
#define MESSAGE_INTERRUPT_TASKS_COUNTER_H
|
||||
|
||||
#include <memory>
|
||||
|
||||
class MessageListenerBase;
|
||||
|
||||
class MessageInterruptTasksCounter
|
||||
{
|
||||
public:
|
||||
MessageInterruptTasksCounter();
|
||||
virtual ~MessageInterruptTasksCounter();
|
||||
|
||||
void reset();
|
||||
size_t getCount() const;
|
||||
|
||||
private:
|
||||
std::shared_ptr<MessageListenerBase> m_listener;
|
||||
|
||||
size_t m_count;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_INTERRUPT_TASKS_COUNTER_H
|
||||
@@ -37,7 +37,6 @@ ASTVisitor::ASTVisitor(clang::ASTContext* context, clang::Preprocessor* preproce
|
||||
, m_childContext(0)
|
||||
, m_typeContext(RT_Reference)
|
||||
, m_contextAccess(ACCESS_NONE)
|
||||
, m_continue(true)
|
||||
{
|
||||
m_declNameCache = std::make_shared<DeclNameCache>([](const clang::NamedDecl* decl) -> NameHierarchy
|
||||
{
|
||||
@@ -912,7 +911,7 @@ bool ASTVisitor::VisitDecl(clang::Decl *d)
|
||||
}
|
||||
}
|
||||
|
||||
return m_continue;
|
||||
return (m_interruptCounter.getCount() == 0);
|
||||
}
|
||||
|
||||
//#include "data/parser/ParseFunction.h"
|
||||
@@ -1687,8 +1686,3 @@ NameHierarchy ASTVisitor::getContextName() const
|
||||
}
|
||||
return NameHierarchy("global");
|
||||
}
|
||||
|
||||
void ASTVisitor::handleMessage(MessageInterruptTasks* message)
|
||||
{
|
||||
m_continue = false;
|
||||
}
|
||||
|
||||
@@ -11,13 +11,11 @@
|
||||
#include "data/parser/ParserClient.h"
|
||||
#include "data/parser/SymbolKind.h"
|
||||
#include "utility/file/FileRegister.h"
|
||||
#include "utility/messaging/MessageInterruptTasksCounter.h"
|
||||
#include "utility/Cache.h"
|
||||
#include "utility/messaging/type/MessageInterruptTasks.h"
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
|
||||
class ASTVisitor
|
||||
: clang::RecursiveASTVisitor<ASTVisitor>
|
||||
, MessageListener<MessageInterruptTasks>
|
||||
{
|
||||
public:
|
||||
typedef Cache<const clang::NamedDecl*, NameHierarchy> DeclNameCache;
|
||||
@@ -228,8 +226,6 @@ private:
|
||||
|
||||
NameHierarchy getContextName() const;
|
||||
|
||||
virtual void handleMessage(MessageInterruptTasks* message);
|
||||
|
||||
struct FileIdHash {
|
||||
size_t operator()(clang::FileID fileID) const {
|
||||
return fileID.getHashValue();
|
||||
@@ -246,7 +242,7 @@ private:
|
||||
std::shared_ptr<TypeNameCache> m_typeNameCache;
|
||||
|
||||
AccessKind m_contextAccess;
|
||||
bool m_continue;
|
||||
MessageInterruptTasksCounter m_interruptCounter;
|
||||
};
|
||||
|
||||
#endif // AST_VISITOR_H
|
||||
|
||||
Reference in New Issue
Block a user