41enum { INDEX_NONE = -1 };
77template <
typename KeyType,
typename ValueType>
81 typedef std::map<KeyType, ValueType> AMap;
82 typedef typename AMap::iterator AnIterator;
107 std::pair<AnIterator, bool>
const& result = m_KeyValuePair.insert(
typename AMap::value_type(Key, aValue));
113 return result.first->second;
118 return result.first->second;
132 ValueType*
Find(
const KeyType& Key)
134 AnIterator result = m_KeyValuePair.find(Key);
136 if(result != m_KeyValuePair.end())
138 return &result->second;
150template<
typename BuildingBlock>
180 uint32_t occurences = 0;
181 typename std::vector<BuildingBlock>::iterator iterator = m_Elements.begin();
183 while (iterator != m_Elements.end())
185 if (*iterator == aBlock)
187 iterator = m_Elements.erase(iterator);
205 void Add(BuildingBlock aBlock)
207 m_Elements.push_back(aBlock);
223 int32_t index =
Find(Item);
247 int32_t
Find(
const BuildingBlock& Item)
const
249 int32_t returnIndex = 0;
251 typename std::vector<BuildingBlock>::const_iterator iter = m_Elements.begin();
253 for (; iter != m_Elements.end(); iter++)
255 if (m_Elements[returnIndex] == Item)
262 if (iter != m_Elements.end())
280 typename std::vector<BuildingBlock>::const_iterator iterator = m_Elements.begin();
282 while (iterator != m_Elements.end())
284 if (*iterator == aBlock)
304 return (uint32_t) m_Elements.size();
321 typename std::vector<BuildingBlock>::iterator iter = m_Elements.begin();
324 if constexpr(std::is_pointer_v<BuildingBlock>)
326 for (iter = m_Elements.begin(); iter != m_Elements.end(); iter++)
328 if (*iter !=
nullptr)
363 m_Elements[Index] = Value;
371 inline const std::vector<BuildingBlock>&
GetElements()
const {
return m_Elements; }
386 typename std::vector<BuildingBlock>::iterator
begin()
388 return m_Elements.begin();
396 typename std::vector<BuildingBlock>::iterator
end()
398 return m_Elements.end();
411 KR_CORE_ASSERT(Index >= 0,
"");
413 if(Index < m_Elements.size())
415 return m_Elements.at(Index);
418 KR_CORE_ASSERT(
false,
"Shouldn't happen");
420 static BuildingBlock aBlock;
434 return Index >= 0 && Index < m_Elements.size();
439 std::vector<BuildingBlock> m_Elements;
465 std::string m_DefaultProtocol;
466 std::string m_DefaultName;
467 std::string m_DefaultHost;
468 std::string m_DefaultPortal;
469 std::string m_DefaultSaveExt;
470 int32_t m_DefaultPort;
513 static bool m_bDefaultsInitialized;
523 FURL(
const std::string& Filename =
"");
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
#define FORCEINLINE
Typical inlining macro for clarity.
Definition Core.h:157
ETravelType
Traveling from server to server.
Definition KarmaTypes.h:446
@ TRAVEL_Partial
Definition KarmaTypes.h:451
@ TRAVEL_Absolute
Definition KarmaTypes.h:448
@ TRAVEL_Relative
Definition KarmaTypes.h:454
@ TRAVEL_MAX
Definition KarmaTypes.h:457
#define KR_CORE_INFO(...)
A macro for logging information in the Core part.
Definition Log.h:85
ValueType * Find(const KeyType &Key)
Find the value associated with a specified key.
Definition KarmaTypes.h:132
KarmaMap()
Constructor.
Definition KarmaTypes.h:89
ValueType & FindOrAdd(const KeyType &Key)
Find the value associated with a specified key, or if none exists, adds a value using the default con...
Definition KarmaTypes.h:104
std::vector< BuildingBlock >::iterator end()
Getter for the last vector element.
Definition KarmaTypes.h:396
~KarmaVector()
Destructor.
Definition KarmaTypes.h:168
KarmaVector()
Constructor.
Definition KarmaTypes.h:159
uint32_t Num() const
Returns the total number of elements in a vector.
Definition KarmaTypes.h:302
FORCEINLINE int32_t AddUnique(const BuildingBlock &Item)
Definition KarmaTypes.h:221
std::vector< BuildingBlock >::iterator begin()
Getter for first vector element.
Definition KarmaTypes.h:386
std::vector< BuildingBlock > & ModifyElements()
Getter for elements of vector for modification in appropriate way.
Definition KarmaTypes.h:379
FORCEINLINE bool IsValidIndex(int32_t Index) const
Definition KarmaTypes.h:432
void Add(BuildingBlock aBlock)
Add an element to the vector.
Definition KarmaTypes.h:205
int32_t Find(const BuildingBlock &Item) const
Definition KarmaTypes.h:247
bool Contains(BuildingBlock aBlock) const
Sees if the vector contains the specified element.
Definition KarmaTypes.h:278
void SmartReset()
Just clear the elements.
Definition KarmaTypes.h:348
FORCEINLINE BuildingBlock & IndexToObject(int32_t Index)
Definition KarmaTypes.h:409
uint32_t Remove(BuildingBlock aBlock)
Removes an element from the vector.
Definition KarmaTypes.h:178
void SetVectorElementByIndex(int32_t Index, BuildingBlock Value)
Set the element of a vector using the vector index.
Definition KarmaTypes.h:361
const std::vector< BuildingBlock > & GetElements() const
Getter for the elements of vector.
Definition KarmaTypes.h:371
void Reset()
We just reset the vector. UE has the following implementation.
Definition KarmaTypes.h:318
Specifies why an actor is being deleted/removed from a level.
Definition KarmaTypes.h:21
Type
Definition KarmaTypes.h:23
@ EndPlayInEditor
Definition KarmaTypes.h:29
@ Destroyed
Definition KarmaTypes.h:25
@ RemovedFromWorld
Definition KarmaTypes.h:31
@ Quit
Definition KarmaTypes.h:33
@ LevelTransition
Definition KarmaTypes.h:27
Specifies the goal/source of a UWorld object.
Definition KarmaTypes.h:45
Type
Definition KarmaTypes.h:47
@ GamePreview
Definition KarmaTypes.h:64
@ None
Definition KarmaTypes.h:49
@ Editor
Definition KarmaTypes.h:55
@ Game
Definition KarmaTypes.h:52
@ Inactive
Definition KarmaTypes.h:70
@ PIE
Definition KarmaTypes.h:58
@ EditorPreview
Definition KarmaTypes.h:61
@ GameRPC
Definition KarmaTypes.h:67
int32_t m_Port
Definition KarmaTypes.h:495
std::string m_Host
Definition KarmaTypes.h:492
static FUrlConfig UrlConfig
Definition KarmaTypes.h:512
std::string m_Portal
Definition KarmaTypes.h:509
FURL(const std::string &Filename="")
Definition KarmaTypes.cpp:29
std::string m_Map
Definition KarmaTypes.h:500
std::string m_Protocol
Definition KarmaTypes.h:489
std::string m_RedirectURL
Definition KarmaTypes.h:503
Helper for obtaining the default Url configuration.
Definition KarmaTypes.h:464
void Reset()
Definition KarmaTypes.cpp:18
void Init()
Definition KarmaTypes.cpp:7