Javascript.h 802 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "../Core/Context.h"
  3. #include "../Core/Object.h"
  4. #include "../Javascript/JSVM.h"
  5. namespace Atomic
  6. {
  7. class JSVM;
  8. /// Javascript subsystem.
  9. class ATOMIC_API Javascript : public Object
  10. {
  11. OBJECT(Javascript);
  12. public:
  13. /// Construct.
  14. Javascript(Context* context);
  15. /// Destruct.
  16. ~Javascript();
  17. /// Returns NULL if a VM with name already exists
  18. JSVM* InstantiateVM(const String& name);
  19. /// Gets a VM with the given name
  20. inline JSVM* GetVM(const String& name)
  21. {
  22. return vms_[name];
  23. }
  24. /// Closes the VM with the given name
  25. void ShutdownVM(const String& name);
  26. private:
  27. HashMap<String, SharedPtr<JSVM> > vms_;
  28. };
  29. /// Register Javascript library objects.
  30. void ATOMIC_API RegisterJavascriptLibrary(Context* context);
  31. }