WSF
WsfAssetMap.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9// Classification: UNCLASSIFIED
10
11#ifndef WSF_ASSET_MAP
12#define WSF_ASSET_MAP
13
14#include <map>
15#include <memory>
16#include <iadsLib/assetRecord.hpp>
17#include <WsfObject.hpp>
18#include <logger.hpp>
19
21
22class WsfAssetMap : public WsfObject
23{
24 public:
25 WsfAssetMap(std::weak_ptr<il::logger::GlobalLogger> aGlobalLogger)
26 : m_assets(nullptr)
27 {
28 HCL_TRACE_LOGGER(aGlobalLogger) << "WsfAssetMap(): m_assets = nullptr\n";
29 }
30
31 WsfAssetMap(il::assetMap* assets, std::weak_ptr<il::logger::GlobalLogger> aGlobalLogger)
32 : m_assets(assets)
33 {
34#ifdef IADSLIB_POINTER_TRACE
35 HCL_TRACE_LOGGER(aGlobalLogger) << "WsfAssetMap(il::assetMap *assets): m_assets = " << m_assets << std::endl;
36#endif
37 }
38
39 virtual void SetAssetMap(il::assetMap* assets)
40 {
41 m_assets = assets;
42 HCL_TRACE_LOGGER(mGlobalLogger) << "SetAssetMap(): m_assets = " << m_assets << std::endl;
43 }
44
45 WsfAssetMap* Clone() const override;
46 const char* GetScriptClassName() const override { return "WsfBMAssetMap"; }
47
48 inline il::assetMap* GetRawAssetsPtr()
49 {
50 // HCL_TRACE_LOGGER() << "GetRawAssetsPtr(): m_assets = " << m_assets << std::endl;
51 return m_assets;
52 }
53
54 void Add(const WsfBMAssetRecord* record);
55 bool Exists(const il::idRecord& asset_id) const;
56 bool GetAsset(const il::idRecord& asset_id, WsfBMAssetRecord* record) const;
57 std::weak_ptr<il::logger::GlobalLogger> GetGlobalLogger() const { return mGlobalLogger; }
58
59 protected:
60 std::weak_ptr<il::logger::GlobalLogger> mGlobalLogger;
61
62 private:
63
64 il::assetMap* m_assets; // TTD: JLK need to better define the shared vs nonshared semantics
65};
66
67#endif
Definition WsfAssetMap.hpp:23
void Add(const WsfBMAssetRecord *record)
Definition WsfAssetMap.cpp:19
WsfAssetMap(std::weak_ptr< il::logger::GlobalLogger > aGlobalLogger)
Definition WsfAssetMap.hpp:25
virtual void SetAssetMap(il::assetMap *assets)
Definition WsfAssetMap.hpp:39
WsfAssetMap(il::assetMap *assets, std::weak_ptr< il::logger::GlobalLogger > aGlobalLogger)
Definition WsfAssetMap.hpp:31
std::weak_ptr< il::logger::GlobalLogger > GetGlobalLogger() const
Definition WsfAssetMap.hpp:57
WsfAssetMap * Clone() const override
Definition WsfAssetMap.cpp:14
il::assetMap * GetRawAssetsPtr()
Definition WsfAssetMap.hpp:48
bool Exists(const il::idRecord &asset_id) const
Definition WsfAssetMap.cpp:24
std::weak_ptr< il::logger::GlobalLogger > mGlobalLogger
Definition WsfAssetMap.hpp:60
const char * GetScriptClassName() const override
Definition WsfAssetMap.hpp:46
bool GetAsset(const il::idRecord &asset_id, WsfBMAssetRecord *record) const
Definition WsfAssetMap.cpp:29
Definition WsfBMAssetRecord.hpp:32
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Copyrights Multiple, All Rights Reserved