48 LOG4CPLUS_INFO(
buLogger_,
"BU registered to BUFU interface!");
50 LOG4CPLUS_INFO(
buLogger_,
"BU and FU : DIRECTLY CONNECTED!");
68 LOG4CPLUS_INFO(
fuLogger_,
"FU registered to BUFU interface!");
70 LOG4CPLUS_INFO(
buLogger_,
"BU and FU : DIRECTLY CONNECTED!");
80 xdaq::ApplicationDescriptor* fuAppDesc) {
88 std::cout <<
"ALLOCATE FU->BU message sent directly!" << std::endl;
98 std::cout <<
"ALLOCATE FU->BU message sent through I2O!" << std::endl;
113 std::cout <<
"DISCARD FU->BU message sent directly!" << std::endl;
123 std::cout <<
"DISCARD FU->BU message sent through I2O!" << std::endl;
131 toolbox::mem::Reference* bufRef) {
139 std::cout <<
"TAKE BU->FU message sent directly!" << std::endl;
148 std::cout <<
"TAKE BU->FU message sent through I2O!" << std::endl;
156 bu_(0), fu_(0), buConn_(
false), fuConn_(
false) {
virtual void postI2OFrame(xdaq::ApplicationDescriptor *fuAppDesc, toolbox::mem::Reference *bufRef)=0
bool registerFU(BaseFU *fu, Logger log)
register the FU to the interface
BUFUInterface()
private constructor
virtual void DIRECT_BU_DISCARD(UInt_t buResourceId)=0
DISCARD called by the BUFU Interface when BU and FU are in the same process.
bool buConn_
flags for BU, FU connection
virtual void I2O_FU_TAKE_Callback(toolbox::mem::Reference *bufRef)=0
function to be performed upon receiving a TAKE from the BU
virtual void buildAndSendAllocate(const UIntVec_t &fuResourceIds)=0
called by the BUFU Interface to trigger an I2O ALLOCATE message being built and sent ...
BaseFU * fu_
pointer to connected ResourceBroker(FU), using BaseFU interface
bool registerBU(BaseBU *bu, Logger log)
register the BU to the interface
virtual void buildAndSendDiscard(UInt_t buResourceId)=0
called by the BUFU Interface to trigger an I2O DISCARD message being built and sent ...
void allocate(const UIntVec_t &fuResourceIds, xdaq::ApplicationDescriptor *fuAppDesc)
BaseBU * bu_
pointer to connected BU, using BaseBU interface
static BUFUInterface * instance_
pointer to unique instance
bool directConnection() const
checks if both BU and FU are connected to the interface
void take(xdaq::ApplicationDescriptor *fuAppDesc, toolbox::mem::Reference *bufRef)
BU->FU TAKE.
static BUFUInterface * forceNewInstance()
virtual void DIRECT_BU_ALLOCATE(const UIntVec_t &fuResourceIds, xdaq::ApplicationDescriptor *fuAppDesc)=0
ALLOCATE called by the BUFU Interface when BU and FU are in the same process.
void discard(UInt_t buResourceId)
FU->BU DISCARD.
static BUFUInterface * instance()
returns a pointer to a singleton instance of the interface
std::vector< UInt_t > UIntVec_t