载入中...
搜索中...
未找到
SquirrelOwnership.h 文件参考

Explicit Value/Owned/Borrowed semantics at the Squirrel boundary. 更多...

#include "common/Export.h"
#include "common/Result.h"
#include "common/RuntimeHandle.h"
#include "common/RuntimeRegistry.h"
#include "common/Value.h"
#include <squirrel.h>
#include <simplesquirrel/simplesquirrel.hpp>
#include <atomic>
#include <cstdint>
#include <exception>
#include <functional>
#include <limits>
#include <memory>
#include <optional>
#include <string>
#include <type_traits>
#include <typeinfo>
#include <utility>
#include <vector>

浏览源代码.

类

class  eve::script::BorrowedSquirrelObject
 Borrowed view of a rooted Squirrel object for one synchronous call. 更多...
 
class  eve::script::ISquirrelRootReleaser
 Releases C++-owned Squirrel roots before Runtime destroys its VM. 更多...
 
class  eve::script::OwnedSquirrelObject
 A rooted Squirrel reference owned by the C++ holder. 更多...
 

命名空间

namespace  eve
 Build metadata (engine git commit, build time, third-party version).
 
namespace  eve::script
 
namespace  eve::script::detail
 

类型定义

using eve::script::ScriptValue = eve::Value
 Canonical detached script value; it never aliases a VM object.
 

枚举

enum class  eve::script::ObjectSemantic { eve::script::Value , eve::script::Owned , eve::script::Borrowed }
 The only three meanings a script-facing object may have. 更多...
 

函数

const char * eve::script::objectSemanticName (ObjectSemantic semantic) noexcept
 Returns the stable name used by diagnostics and documentation.
 
BorrowedSquirrelObject eve::script::borrowSquirrelObject (const ssq::Object &object) noexcept
 Creates a one-call Borrowed view without retaining a VM reference.
 
eve::Result< OwnedSquirrelObject > eve::script::ownSquirrelObject (BorrowedSquirrelObject borrowed)
 Promotes a borrowed VM object to an explicit rooted owner.
 
Diagnostic eve::script::detail::ownedInstanceArgumentDiagnostic ()
 Diagnostic for a null VM or null object, built once instead of per T.
 
Result< ssq::Object > eve::script::detail::makeOwnedSquirrelInstanceRaw (HSQUIRRELVM vm, void *object, SquirrelReleaseHook releaseHook, OwnedInstanceDestroy destroy, std::size_t typeHash)
 Non-template core of makeOwnedSquirrelInstance.
 
template<class T >
eve::Result< ssq::Object > eve::script::makeOwnedSquirrelInstance (HSQUIRRELVM vm, Owned< T > object)
 Creates a Squirrel instance that owns a C++ wrapper through a release hook.
 

详细描述

Explicit Value/Owned/Borrowed semantics at the Squirrel boundary.

在文件 SquirrelOwnership.h 中定义.