137 lines
3.2 KiB
C++
137 lines
3.2 KiB
C++
/**
|
|
* @file
|
|
*
|
|
* @copyright
|
|
* @verbatim
|
|
Copyright @ 2017 Audi Electronics Venture GmbH. All rights reserved.
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla
|
|
Public License, v. 2.0. If a copy of the MPL was not distributed
|
|
with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
If it is not possible or desirable to put the notice in a particular file, then
|
|
You may include the notice in a location (such as a LICENSE file in a
|
|
relevant directory) where a recipient would be likely to look for such a notice.
|
|
|
|
You may add additional accurate notices of copyright ownership.
|
|
@endverbatim
|
|
*/
|
|
|
|
#include "ddlbaseunit.h"
|
|
#include "ddlvisitor_intf.h"
|
|
|
|
namespace ddl
|
|
{
|
|
//define all needed error types and values locally
|
|
_MAKE_RESULT(-5, ERR_INVALID_ARG)
|
|
_MAKE_RESULT(-37, ERR_NOT_INITIALIZED)
|
|
|
|
DDLBaseunit::DDLBaseunit() :
|
|
_name{},
|
|
_symbol{},
|
|
_description{},
|
|
_init_flag{},
|
|
_level{1}
|
|
{
|
|
}
|
|
|
|
DDLBaseunit::DDLBaseunit(const std::string& name,
|
|
const std::string& symbol,
|
|
const std::string& description,
|
|
int const creation_level) :
|
|
_name(name),
|
|
_symbol(symbol),
|
|
_description(description),
|
|
_init_flag(true),
|
|
_level(creation_level)
|
|
{
|
|
}
|
|
|
|
a_util::result::Result DDLBaseunit::create(const std::string& name,
|
|
const std::string& symbol,
|
|
const std::string& description,
|
|
int const creation_level)
|
|
{
|
|
if (name.empty())
|
|
{
|
|
return ERR_INVALID_ARG;
|
|
}
|
|
_name = name;
|
|
_symbol = symbol;
|
|
_description = description;
|
|
_init_flag = true;
|
|
_level = creation_level;
|
|
return a_util::result::SUCCESS;
|
|
}
|
|
|
|
a_util::result::Result DDLBaseunit::accept(IDDLVisitor *visitor) const
|
|
{
|
|
if (!_init_flag)
|
|
{
|
|
return ERR_NOT_INITIALIZED;
|
|
}
|
|
return visitor->visit(this);
|
|
}
|
|
|
|
a_util::result::Result DDLBaseunit::accept(IDDLChangeVisitor *visitor)
|
|
{
|
|
if (!_init_flag)
|
|
{
|
|
return ERR_NOT_INITIALIZED;
|
|
}
|
|
return visitor->visit(this);
|
|
}
|
|
|
|
bool DDLBaseunit::isInitialized() const
|
|
{
|
|
return _init_flag;
|
|
}
|
|
|
|
const std::string& DDLBaseunit::getName() const
|
|
{
|
|
return _name;
|
|
}
|
|
|
|
void DDLBaseunit::setName(const std::string& name)
|
|
{
|
|
_name = name;
|
|
}
|
|
|
|
const std::string& DDLBaseunit::getSymbol() const
|
|
{
|
|
return _symbol;
|
|
}
|
|
|
|
void DDLBaseunit::setSymbol(const std::string& symbol)
|
|
{
|
|
_symbol = symbol;
|
|
}
|
|
|
|
|
|
const std::string& DDLBaseunit::getDescription() const
|
|
{
|
|
return _description;
|
|
}
|
|
|
|
void DDLBaseunit::setDescription(const std::string& description)
|
|
{
|
|
_description = description;
|
|
}
|
|
|
|
|
|
bool DDLBaseunit::isPredefined() const
|
|
{
|
|
return _level == -1; // cMediaManager::DL_AlwaysThere
|
|
}
|
|
|
|
bool DDLBaseunit::isOverwriteable() const
|
|
{
|
|
return _level> 0;
|
|
}
|
|
|
|
int DDLBaseunit::getCreationLevel() const
|
|
{
|
|
return _level;
|
|
}
|
|
} // namespace ddl
|