rawbusmessage
This commit is contained in:
@@ -15,11 +15,11 @@
|
||||
#include "core/plugin_system/IProtocolMapperPlugin.h"
|
||||
#include "core/models/DOMMessage.h"
|
||||
#include "core/models/EnrichedMessage.h"
|
||||
#include "core/models/RawBusMessage.h"
|
||||
#include "core/memory/LockFreeQueue.h"
|
||||
#include "core/memory/MemoryPool.h"
|
||||
#include "core/threading/MutexQueue.h"
|
||||
#include "message_bus/pipeline/DynamicRuleRegistry.h"
|
||||
#include "message_bus/pipeline/PipelineContext.h"
|
||||
#include "message_bus/pipeline/stages/1_framers/PassthroughFramer.h"
|
||||
|
||||
namespace softbus::message_bus::pipeline
|
||||
@@ -56,10 +56,10 @@ public:
|
||||
void stop();
|
||||
void drain();
|
||||
|
||||
bool enqueueIngress(PipelineContext ctx);
|
||||
bool enqueueEgress(PipelineContext ctx);
|
||||
bool enqueueIngress(softbus::core::models::RawBusMessage ctx);
|
||||
bool enqueueEgress(softbus::core::models::RawBusMessage ctx);
|
||||
|
||||
bool tryPopEgress(PipelineContext& out);
|
||||
bool tryPopEgress(softbus::core::models::RawBusMessage& out);
|
||||
void setPluginManager(std::shared_ptr<softbus::core::plugin_system::PluginManager> pluginManager);
|
||||
void setMemoryPool(std::shared_ptr<softbus::core::memory::MemoryPool> pool);
|
||||
void setRuntimeConfig(PipelineRuntimeConfig cfg);
|
||||
@@ -72,14 +72,14 @@ private:
|
||||
{
|
||||
QString endpoint;
|
||||
std::uint64_t seq{0};
|
||||
PipelineContext ctx;
|
||||
softbus::core::models::RawBusMessage ctx;
|
||||
bool pipelineOk{false};
|
||||
};
|
||||
|
||||
struct MergeState
|
||||
{
|
||||
std::uint64_t nextExpected{1};
|
||||
QHash<std::uint64_t, std::pair<PipelineContext, bool>> buffer;
|
||||
QHash<std::uint64_t, std::pair<softbus::core::models::RawBusMessage, bool>> buffer;
|
||||
};
|
||||
|
||||
void runSingleWorker();
|
||||
@@ -88,20 +88,21 @@ private:
|
||||
|
||||
void ensureEndpointFramer(const QString& endpoint);
|
||||
|
||||
void dispatchFramer(PipelineContext& chunkIn, std::vector<PipelineContext>& completeFramesOut);
|
||||
void assignFrameSequence(PipelineContext& ctx);
|
||||
bool runStages234(PipelineContext& ctx);
|
||||
void dispatchFramer(softbus::core::models::RawBusMessage& chunkIn,
|
||||
std::vector<softbus::core::models::RawBusMessage>& completeFramesOut);
|
||||
std::uint64_t assignFrameSequence(const QString& endpoint);
|
||||
bool runStages234(const softbus::core::models::RawBusMessage& ctx);
|
||||
void ingestMergeItem(MergeItem item);
|
||||
|
||||
std::vector<softbus::core::models::DOMMessage> stage2Parser(const PipelineContext& ctx);
|
||||
std::vector<softbus::core::models::DOMMessage> stage2Parser(const softbus::core::models::RawBusMessage& ctx);
|
||||
bool stage3Filter(softbus::core::models::DOMMessage& message);
|
||||
bool stage4Validator(const softbus::core::models::DOMMessage& message) const;
|
||||
softbus::core::models::EnrichedMessage applyTransformAndEnrich(
|
||||
const PipelineContext& rawCtx, softbus::core::models::DOMMessage& message) const;
|
||||
const softbus::core::models::RawBusMessage& rawCtx, softbus::core::models::DOMMessage& message) const;
|
||||
|
||||
private:
|
||||
softbus::core::memory::LockFreeQueue<PipelineContext> m_ingressQ;
|
||||
softbus::core::memory::LockFreeQueue<PipelineContext> m_egressQ;
|
||||
softbus::core::memory::LockFreeQueue<softbus::core::models::RawBusMessage> m_ingressQ;
|
||||
softbus::core::memory::LockFreeQueue<softbus::core::models::RawBusMessage> m_egressQ;
|
||||
std::atomic<bool> m_running{false};
|
||||
std::thread m_worker;
|
||||
Counters m_counters;
|
||||
@@ -121,7 +122,7 @@ private:
|
||||
std::mutex m_seqMutex;
|
||||
QHash<QString, std::uint64_t> m_nextFrameSeqByEndpoint;
|
||||
|
||||
std::unique_ptr<softbus::core::threading::MutexQueue<PipelineContext>> m_framedQ;
|
||||
std::unique_ptr<softbus::core::threading::MutexQueue<MergeItem>> m_framedQ;
|
||||
std::unique_ptr<softbus::core::threading::MutexQueue<MergeItem>> m_mergeQ;
|
||||
std::vector<std::thread> m_parseThreads;
|
||||
std::thread m_mergerThread;
|
||||
|
||||
Reference in New Issue
Block a user