You.i Engine
YiAssetJSON.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2018. All rights reserved.
2 #ifndef _YI_ASSET_JSON_H_
3 #define _YI_ASSET_JSON_H_
4 
5 #include "asset/YiAsset.h"
6 #include "utility/YiRtti.h"
7 
8 #include <rapidjson/document.h>
9 
23 class CYIAssetJSON : public CYIAsset
24 {
25 public:
26  CYIAssetJSON();
27  CYIAssetJSON(const CYIString &path, PATH_TYPE ePathType = PATH_RELATIVE);
28  virtual ~CYIAssetJSON();
29 
33  void SetJSONDocument(const std::shared_ptr<yi::rapidjson::Document> &pDocument);
34 
38  const std::shared_ptr<yi::rapidjson::Document> &GetJSONDocument() const;
39 
40  // CYIAsset Virtual
41  virtual std::pair<uint32_t, uint32_t> GetApproximateSize() const override;
42 
43 protected:
44  // CYIAsset Virtual
45  virtual void OnUnload() override;
46 
47 private:
48  std::shared_ptr<yi::rapidjson::Document> m_pDocument;
49 
51 };
52 
57 #endif
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
const std::shared_ptr< yi::rapidjson::Document > & GetJSONDocument() const
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
virtual std::pair< uint32_t, uint32_t > GetApproximateSize() const override
void SetJSONDocument(const std::shared_ptr< yi::rapidjson::Document > &pDocument)
Represents the contents of a JSON file or string.
Definition: YiAssetJSON.h:23
PATH_TYPE
Definition: YiAsset.h:44
virtual void OnUnload() override
Base class for any asset. An asset provides functions for dynamically loading and unloading itself an...
Definition: YiAsset.h:33
Definition: YiAsset.h:47
This file contains the classes and macros used to implement RTTI in You.i Engine. ...
virtual ~CYIAssetJSON()