diff options
author | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2020-08-24 21:58:42 +0900 |
---|---|---|
committer | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2020-08-24 21:58:42 +0900 |
commit | 2b4ae7fde370bc3316ab30cc38b74d23e785b360 (patch) | |
tree | 41b6eb70b3419c2fbd192ed133c5890a985eddec /src/core/model/RBAContent.hpp | |
parent | 6694a4d2952ebd171564932200cac00d6e5792f4 (diff) |
First commitjellyfish_9.99.4jellyfish/9.99.49.99.4
Signed-off-by: Kenji Hosokawa <khosokawa@jp.adit-jv.com>
Change-Id: I381abb0a6521f5349768a76ef7ceecbce4b2d701
Diffstat (limited to 'src/core/model/RBAContent.hpp')
-rw-r--r-- | src/core/model/RBAContent.hpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src/core/model/RBAContent.hpp b/src/core/model/RBAContent.hpp new file mode 100644 index 0000000..17e912c --- /dev/null +++ b/src/core/model/RBAContent.hpp @@ -0,0 +1,87 @@ +/** + * Copyright (c) 2019 DENSO CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Content class header + */ + +#ifndef RBACONTENT_HPP +#define RBACONTENT_HPP + +#include <memory> +#include <set> +#include "RBAAbstractContent.hpp" +#include "RBAAllocatableSet.hpp" +#include "RBAContentLoserType.hpp" + +namespace rba +{ + +class RBAArbitrator; +class RBAAllocatable; +class RBAContentState; +class RBAResultImpl; +class RBAResultSet; +class RBAExpression; +class RBASize; + +class DLL_EXPORT RBAContent : public RBAAbstractContent +{ +public: + explicit RBAContent(const std::string& name=""); + RBAContent(const RBAContent&)=delete; + RBAContent(const RBAContent&&)=delete; + RBAContent& operator=(const RBAContent&)=delete; + RBAContent& operator=(const RBAContent&&)=delete; + virtual ~RBAContent()=default; + +public: + virtual bool isViewContent() const; + virtual bool isSoundContent() const; + + const std::list<const RBAContentState*>& getStates() const; + void addState(const RBAContentState* const state); + const std::list<const RBAAllocatable*>& getAllocatables() const; + void addAllocatable(const RBAAllocatable* const alloc); + RBAContentLoserType getContentLoserType() const; + void setLoserType(const RBAContentLoserType newLoserType); + const RBAAllocatableSet* getAllocatableSet() const; + void updateRequestStatus(RBAResultSet* const resultset, const bool isOnRequest); + void updateStatus(RBAResultImpl* const result); + virtual const std::list<const RBASize*>& getSizes() const; + +#ifdef RBA_USE_LOG + virtual std::string getSymbol() const = 0; + virtual std::string getVisibleSymbol() const = 0; +#endif + +private: +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4251) +#endif + std::list<const RBAContentState*> states_; + std::unique_ptr<RBAAllocatableSet> allocatableSet_ {std::make_unique<RBAAllocatableSet>()}; +#ifdef _MSC_VER +#pragma warning(pop) +#endif + RBAContentLoserType loserType_ {RBAContentLoserType::DO_NOT_GIVEUP_UNTIL_WIN}; + +}; + +} + +#endif |