ATLAS Offline Software
Loading...
Searching...
No Matches
MuCalCircClient.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include <string>
6
7#include "circ/Circ.h"
8#include "circ/Circservice.h"
9
10#include "MuCalDecode/CalibEvent.h"
11#include "MuCalDecode/CalibUti.h"
12
13#include "MuCalCircClient.h"
14
15TrigL2MuonSA::MuCalCircClient::MuCalCircClient (unsigned short port, std::string &buffer_name, unsigned int buffer_size)
16 : m_port (port), m_bufferName (buffer_name), m_bufferSize (buffer_size)
17{
18
19 std::vector<char> writable(m_bufferName.begin(), m_bufferName.end());
20 writable.push_back('\0');
21
22 // char *name = const_cast <char *> (m_bufferName.c_str());
23 if ( ( m_cid = CircOpenCircConnection_t (m_port, &*writable.begin(), m_bufferSize) ) < 0)
24 {
26 throw e;
27 }
28}
29
31{
32 std::vector<char> writable(m_bufferName.begin(), m_bufferName.end());
33 writable.push_back('\0');
34 if (m_cid >=0 )
35 CircCloseCircConnection_t (m_port, &*writable.begin() , m_cid);
36}
37
38bool TrigL2MuonSA::MuCalCircClient::dumpToCirc (LVL2_MUON_CALIBRATION::CalibEvent &event) const
39{
40 char *ptr;
41 bool success = false;
42 uint16_t event_size = event.size ();
43
44 if (m_cid>=0){
45 if ((ptr = CircReserve_t (m_cid, event_size )) != (char *) -1)
46 {
47 uint8_t *buff = reinterpret_cast <uint8_t *> (ptr);
48 int bufsize = event.dumpWords (buff, event_size);
49
50 (void) CircValidate_t (m_cid, ptr, bufsize);
51 success = true;
52 }
53 }
54 return success;
55}
MuCalCircClient(unsigned short port, std::string &buffer_name, unsigned int buffer_size)
bool dumpToCirc(LVL2_MUON_CALIBRATION::CalibEvent &event) const