HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //proc/2165/cwd/node_modules/better-sqlite3/src/objects/statement-iterator.hpp
class StatementIterator : public node::ObjectWrap {
public:

	// The ~Statement destructor currently covers any state this object creates.
	// Additionally, we actually DON'T want to revert stmt->locked or db_state
	// ->iterators in this destructor, to ensure deterministic database access.
	~StatementIterator();

	static INIT(Init);

private:

	explicit StatementIterator(Statement* stmt, bool bound);

	void Next(NODE_ARGUMENTS info);
	void Return(NODE_ARGUMENTS info);
	void Throw();
	void Cleanup();

	static inline v8::Local<v8::Object> NewRecord(
		v8::Isolate* isolate,
		v8::Local<v8::Context> ctx,
		v8::Local<v8::Value> value,
		Addon* addon,
		bool done
	) {
		v8::Local<v8::Object> record = v8::Object::New(isolate);
		record->Set(ctx, addon->cs.value.Get(isolate), value).FromJust();
		record->Set(ctx, addon->cs.done.Get(isolate), v8::Boolean::New(isolate, done)).FromJust();
		return record;
	}

	static inline v8::Local<v8::Object> DoneRecord(v8::Isolate* isolate, Addon* addon) {
		return NewRecord(isolate, OnlyContext, v8::Undefined(isolate), addon, true);
	}

	static NODE_METHOD(JS_new);
	static NODE_METHOD(JS_next);
	static NODE_METHOD(JS_return);
	static NODE_METHOD(JS_symbolIterator);

	Statement* const stmt;
	sqlite3_stmt* const handle;
	Database::State* const db_state;
	const bool bound;
	const bool safe_ints;
	const char mode;
	bool alive;
	bool logged;
};