ChimeraTK-DeviceAccess 03.25.00
Loading...
Searching...
No Matches
Utilities.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Deutsches Elektronen-Synchrotron DESY, MSK, ChimeraTK Project <chimeratk-support@desy.de>
2// SPDX-License-Identifier: LGPL-3.0-or-later
3#pragma once
4
5#include "DeviceInfoMap.h"
6#include "Exception.h"
7
8#include <list>
9#include <map>
10
11namespace ChimeraTK {
12
17 std::string getDMapFilePath();
18
26 void setDMapFilePath(std::string dmapFilePath);
27
32 std::string backendType;
33 std::string address;
34 std::map<std::string, std::string> parameters;
35 };
36
40 struct Sdm {
41 double sdmVersion{0.1};
42 std::string host;
43 std::string interface;
44 std::string instance;
45 std::string protocol;
46 std::list<std::string> parameters;
47 };
48
49 namespace Utilities {
50
53 DeviceDescriptor parseDeviceDesciptor(std::string cddString);
54
58 bool isDeviceDescriptor(std::string theString);
59
61 Sdm parseSdm(const std::string& sdmString);
62
65 Sdm parseDeviceString(const std::string& deviceString);
66
69 std::size_t shmDummyInstanceIdHash(
70 const std::string& address, const std::map<std::string, std::string>& parameters);
71
73 std::string createShmName(std::size_t instanceIdHash, const std::string& mapFileName, const std::string& userName);
74
78 bool isSdm(const std::string& theString);
79
82 size_t countOccurence(std::string theString, char delimiter);
83
86 DeviceInfoMap::DeviceInfo aliasLookUp(const std::string& aliasName, const std::string& dmapFilePath);
87
90 std::vector<std::string> getAliasList();
91
94 void printStackTrace();
95
96 } // namespace Utilities
97
98} /* namespace ChimeraTK */
Stores information about one device.
DeviceDescriptor parseDeviceDesciptor(std::string cddString)
Parse a ChimeraTK device descriptor (CDD) and return the information in the DeviceDescriptor struct.
Definition Utilities.cpp:49
std::vector< std::string > getAliasList()
Returns the list of device aliases from the DMap file set using BackendFactory::setDMapFilePath.
void printStackTrace()
Print a call stack trace (but continue executing the process normally).
DeviceInfoMap::DeviceInfo aliasLookUp(const std::string &aliasName, const std::string &dmapFilePath)
Search for an alias in a given DMap file and return the DeviceInfo entry.
std::size_t shmDummyInstanceIdHash(const std::string &address, const std::map< std::string, std::string > &parameters)
Generates shm dummy instanceId hash from address and parameter map, Intended for use with parseDevice...
bool isSdm(const std::string &theString)
Check wehter the given string seems to be an SDM.
Definition Utilities.cpp:30
size_t countOccurence(std::string theString, char delimiter)
Check if the given string only contains alphanumeric characters.
Definition Utilities.cpp:23
Sdm parseDeviceString(const std::string &deviceString)
Parse an old-style device string (either path to device node or map file name for dummies)
Sdm parseSdm(const std::string &sdmString)
Parse an SDM URI and return the device information in the Sdm struct.
std::string createShmName(std::size_t instanceIdHash, const std::string &mapFileName, const std::string &userName)
Generates shm dummy name from parameter hashes.
bool isDeviceDescriptor(std::string theString)
Check whether the given string seems to be a CDD.
Definition Utilities.cpp:39
std::string getDMapFilePath()
Returns the dmap file name which the library currently uses for looking up device(alias) names.
void setDMapFilePath(std::string dmapFilePath)
Set the location of the dmap file.
This structure holds the information of an ChimeraTK device descriptor.
Definition Utilities.h:31
std::map< std::string, std::string > parameters
Definition Utilities.h:34
This structure holds the information of an SDM.
Definition Utilities.h:40
double sdmVersion
Definition Utilities.h:41
std::list< std::string > parameters
Definition Utilities.h:46
std::string host
Definition Utilities.h:42
std::string interface
Definition Utilities.h:43
std::string instance
Definition Utilities.h:44
std::string protocol
Definition Utilities.h:45