Skip to content
Snippets Groups Projects
Select Git revision
  • 617dfc1b862b9dd701819706557478ff6ccfd00f
  • master default protected
  • L2SS-1914-fix_job_dispatch
  • TMSS-3170
  • TMSS-3167
  • TMSS-3161
  • TMSS-3158-Front-End-Only-Allow-Changing-Again
  • TMSS-3133
  • TMSS-3319-Fix-Templates
  • test-fix-deploy
  • TMSS-3134
  • TMSS-2872
  • defer-state
  • add-custom-monitoring-points
  • TMSS-3101-Front-End-Only
  • TMSS-984-choices
  • SDC-1400-Front-End-Only
  • TMSS-3079-PII
  • TMSS-2936
  • check-for-max-244-subbands
  • TMSS-2927---Front-End-Only-PXII
  • Before-Remove-TMSS
  • LOFAR-Release-4_4_318 protected
  • LOFAR-Release-4_4_317 protected
  • LOFAR-Release-4_4_316 protected
  • LOFAR-Release-4_4_315 protected
  • LOFAR-Release-4_4_314 protected
  • LOFAR-Release-4_4_313 protected
  • LOFAR-Release-4_4_312 protected
  • LOFAR-Release-4_4_311 protected
  • LOFAR-Release-4_4_310 protected
  • LOFAR-Release-4_4_309 protected
  • LOFAR-Release-4_4_308 protected
  • LOFAR-Release-4_4_307 protected
  • LOFAR-Release-4_4_306 protected
  • LOFAR-Release-4_4_304 protected
  • LOFAR-Release-4_4_303 protected
  • LOFAR-Release-4_4_302 protected
  • LOFAR-Release-4_4_301 protected
  • LOFAR-Release-4_4_300 protected
  • LOFAR-Release-4_4_299 protected
41 results

feedback_handling.py

Blame
  • AttributeName.cpp 11.32 KiB
    /* Copyright (C) : 2014-2019
       European Synchrotron Radiation Facility
       BP 220, Grenoble 38043, FRANCE
    
       This file is part of libhdb++timescale.
    
       libhdb++timescale is free software: you can redistribute it and/or modify
       it under the terms of the Lesser GNU General Public License as published by
       the Free Software Foundation, either version 3 of the License, or
       (at your option) any later version.
    
       libhdb++timescale is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the Lesser
       GNU General Public License for more details.
    
       You should have received a copy of the Lesser GNU General Public License
       along with libhdb++timescale.  If not, see <http://www.gnu.org/licenses/>. */
    
    #include "AttributeName.hpp"
    
    #include "LibUtils.hpp"
    
    #include <netdb.h>
    
    using namespace std;
    
    namespace hdbpp_internal
    {
    //=============================================================================
    //=============================================================================
    AttributeName::AttributeName(const std::string &fqdn_attr_name)
    {
        set(fqdn_attr_name);
    }
    
    //=============================================================================
    //=============================================================================
    void AttributeName::set(const std::string &fqdn_attr_name)
    {
        // clear the cache and set the name
        clear();
        _fqdn_attr_name = fqdn_attr_name;
    }
    
    //=============================================================================
    //=============================================================================
    void AttributeName::clear() noexcept
    {
        _fqdn_attr_name.clear();
        _full_attribute_name_cache.clear();
        _tango_host_cache.clear();
        _tango_host_with_domain_cache.clear();
        _domain_cache.clear();
        _family_cache.clear();
        _member_cache.clear();
        _attribute_name_cache.clear();
    }
    
    //=============================================================================
    //=============================================================================
    const string &AttributeName::tangoHost()
    {
        validate();
    
        if (_tango_host_cache.empty())
        {
            // if tango:// exists on the string, strip it off by moving the start in 8 characters
            auto start = _fqdn_attr_name.find("tango://") == string::npos ? 0 : 8;
            auto end = _fqdn_attr_name.find('/', start);