JSFile.h 764 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "../Container/ArrayPtr.h"
  3. #include "../Resource/Resource.h"
  4. namespace Atomic
  5. {
  6. class JSVM;
  7. class ATOMIC_API JSFile : public Resource
  8. {
  9. OBJECT(JSFile);
  10. public:
  11. /// Construct.
  12. JSFile(Context* context);
  13. /// Destruct.
  14. virtual ~JSFile();
  15. /// Register object factory.
  16. static void RegisterObject(Context* context);
  17. /// Load resource from stream. May be called from a worker thread. Return true if successful.
  18. virtual bool BeginLoad(Deserializer& source);
  19. /// Save resource. Return true if successful.
  20. virtual bool Save(Serializer& dest) const;
  21. const char* GetSource() { return data_; }
  22. private:
  23. /// File size.
  24. unsigned size_;
  25. /// File data.
  26. SharedArrayPtr<char> data_;
  27. };
  28. }