class Connector
: ModuleManager::Initializable, boost::noncopyable
{
+ SENF_LOG_CLASS_AREA();
+ SENF_LOG_DEFAULT_LEVEL(senf::log::NOTICE);
public:
Connector & peer() const; ///< Get peer connected to this connector
module::Module & module() const; ///< Get this connectors containing module
void disconnect(); ///< Disconnect connector from peer
+ enum TraceState { NO_TRACING, TRACE_IDS, TRACE_CONTENTS };
+
+ static void tracing(TraceState state);
+ static TraceState tracing();
+
protected:
Connector();
virtual ~Connector();
void connect(Connector & target);
+
+ void trace(Packet const & p, char const * label);
+ void throttleTrace(char const * label, char const * type);
private:
virtual std::type_info const & packetTypeID();
Connector * peer_;
module::Module * module_;
+ static TraceState traceState_;
+
friend class module::Module;
};
private:
virtual void v_init();
- // Called by the routing to change the remote throttling state
+ // Called by the routing to change the throttling state from forwarding routes
void notifyThrottle(); ///< Forward a throttle notification to this connector
void notifyUnthrottle(); ///< Forward an unthrottle notification to this connector
- // Internal members to emit throttling notifications
+ // Internal members to emit throttling notifications to the connected peer
void emitThrottle();
void emitUnthrottle();