Exemplo n.º 1
0
	compiled_chunk* lua_context::compile_chunk(const std::string& name, const std::string& str)
	{
		compiled_chunk* chunk = new compiled_chunk();
		luaL_loadbuffer(context_ptr(), str.c_str(), str.size(), name.c_str());		// (-0,+1,-)
		lua_dump(context_ptr(), chunk_writer, reinterpret_cast<void*>(chunk));		// (-0,+0,-)
		lua_pop(context_ptr(), 1);													// (-n(1),+0,-)
		chunk->add_chunk(0, 0);
		return chunk;
	}
Exemplo n.º 2
0
static BOOL ProvStore_addCert(WINECRYPT_CERTSTORE *store, context_t *cert,
 context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
{
    WINE_PROVIDERSTORE *ps = (WINE_PROVIDERSTORE*)store;
    BOOL ret;

    TRACE("(%p, %p, %p, %p)\n", store, cert, toReplace, ppStoreContext);

    if (toReplace)
        ret = ps->memStore->vtbl->certs.addContext(ps->memStore, cert, toReplace,
         ppStoreContext, TRUE);
    else
    {
        ret = TRUE;
        if (ps->provWriteCert)
            ret = ps->provWriteCert(ps->hStoreProv, context_ptr(cert), CERT_STORE_PROV_WRITE_ADD_FLAG);
        if (ret)
            ret = ps->memStore->vtbl->certs.addContext(ps->memStore, cert, NULL,
             ppStoreContext, TRUE);
    }
    /* dirty trick: replace the returned context's hCertStore with
     * store.
     */
    if (ret && ppStoreContext)
        (*(cert_t**)ppStoreContext)->ctx.hCertStore = store;
    return ret;
}
Exemplo n.º 3
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::connect(const struct sockaddr *addr, std::function<void(uvplus_tcp *self, int status)> connect_callback) {
  uv_connect_t *req = new uv_connect_t;
  auto connect_callback_ptr = new std::function<void(uvplus_tcp *self, int status)>(connect_callback);
  auto tcp = (uv_tcp_t *)context_ptr();
  req->data = static_cast<void *>(connect_callback_ptr);
  return uv_tcp_connect(req, tcp, addr, connect_cb);
}
Exemplo n.º 4
0
/* Note: the programmer must not allow the context to be
   GC'd until all connections are closed, or they'll be killed. */
void mltds_ct_ctx_finalize(value context)
{
    CS_CONTEXT* ctx = context_ptr(context);

    ct_exit(ctx, CS_FORCE_EXIT);
    cs_ctx_drop(ctx);
}
Exemplo n.º 5
0
static BOOL ProvStore_deleteCTL(WINECRYPT_CERTSTORE *store, context_t *ctl)
{
    WINE_PROVIDERSTORE *ps = (WINE_PROVIDERSTORE*)store;
    BOOL ret = TRUE;

    TRACE("(%p, %p)\n", store, ctl);

    if (ps->provDeleteCtl)
        ret = ps->provDeleteCtl(ps->hStoreProv, context_ptr(ctl), 0);
    if (ret)
        ret = ps->memStore->vtbl->ctls.delete(ps->memStore, ctl);
    return ret;
}
Exemplo n.º 6
0
context_t *Context_CreateLinkContext(unsigned int contextSize, context_t *linked, WINECRYPT_CERTSTORE *store)
{
    context_t *context;

    TRACE("(%d, %p)\n", contextSize, linked);

    context = CryptMemAlloc(sizeof(context_t) + contextSize);
    if (!context)
        return NULL;

    memcpy(context_ptr(context), context_ptr(linked), contextSize);
    context->vtbl = linked->vtbl;
    context->ref = 1;
    context->linked = linked;
    context->properties = linked->properties;
    Context_AddRef(linked);

    store->vtbl->addref(store);
    context->store = store;

    TRACE("returning %p\n", context);
    return context;
}
Exemplo n.º 7
0
/*** Allocation ***/
CAMLprim value mltds_cs_ctx_create(value unit)
{
    CAMLparam1(unit);
    CS_CONTEXT* context;
    CAMLlocal1(result);

    retval_inspect( "cs_ctx_alloc", cs_ctx_alloc(CS_VERSION_100, &context) );
    retval_inspect( "ct_init", ct_init(context, CS_VERSION_100) );

    result = alloc_custom(&context_operations, sizeof(CS_CONTEXT*), 0, 1);
    context_ptr(result) = context;

    CAMLreturn(result);
}
Exemplo n.º 8
0
	bool lua_context::execute(const variant& value, game_logic::formula_callable* callable)
	{
		bool res = false;
		if(callable) {
			set_self_callable(*callable);
		}
		if(value.is_string()) {
			res = dostring("", value.as_string());
		} else {
			lua_compiled_ptr compiled = value.try_convert<lua_compiled>();
			ASSERT_LOG(compiled != NULL, "FATAL: object given couldn't be converted to type 'lua_compiled'");
			res = compiled->run(context_ptr());
		}
		return res;
	}
Exemplo n.º 9
0
CAMLprim value mltds_ct_con_alloc(value context)
{
    CAMLparam1(context);
    CS_CONNECTION* conn;
    CAMLlocal1(result);

    retval_inspect( "ct_con_alloc", ct_con_alloc(context_ptr(context), &conn) );

    retval_inspect( "ct_diag",
                    ct_diag(conn, CS_INIT, CS_UNUSED, CS_UNUSED, NULL) );

    result = alloc_custom(&connection_operations, sizeof(CS_CONNECTION*), 0, 1);
    connection_ptr(result) = conn;

    CAMLreturn(result);
}
Exemplo n.º 10
0
static BOOL ProvStore_addCTL(WINECRYPT_CERTSTORE *store, context_t *ctl,
 context_t *toReplace, context_t **ppStoreContext, BOOL use_link)
{
    WINE_PROVIDERSTORE *ps = (WINE_PROVIDERSTORE*)store;
    BOOL ret;

    TRACE("(%p, %p, %p, %p)\n", store, ctl, toReplace, ppStoreContext);

    if (toReplace)
        ret = ps->memStore->vtbl->ctls.addContext(ps->memStore, ctl, toReplace,
         ppStoreContext, TRUE);
    else
    {
        if (ps->hdr.dwOpenFlags & CERT_STORE_READONLY_FLAG)
        {
            SetLastError(ERROR_ACCESS_DENIED);
            ret = FALSE;
        }
        else
        {
            ret = TRUE;
            if (ps->provWriteCtl)
                ret = ps->provWriteCtl(ps->hStoreProv, context_ptr(ctl),
                 CERT_STORE_PROV_WRITE_ADD_FLAG);
            if (ret)
                ret = ps->memStore->vtbl->ctls.addContext(ps->memStore, ctl, NULL,
                 ppStoreContext, TRUE);
        }
    }
    /* dirty trick: replace the returned context's hCertStore with
     * store.
     */
    if (ret && ppStoreContext)
        (*(ctl_t**)ppStoreContext)->ctx.hCertStore = store;
    return ret;
}
Exemplo n.º 11
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::keepalive(int enable, unsigned int delay) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_keepalive(tcp, enable, delay);
}
Exemplo n.º 12
0
 /** Default constructor */
 fast_client()
   : basic_client<T>(context_ptr(new zmq::context_t(1)))
   , _enable_skip(false), _recv_skip(0)
 {}
Exemplo n.º 13
0
 /** Default constructor. */
 fast_server()
   : basic_server<T>(context_ptr(new zmq::context_t(1)))
 {}
Exemplo n.º 14
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::getpeername(struct sockaddr *name, int *namelen) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_getpeername(tcp, name, namelen);
}
Exemplo n.º 15
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::bind(const sockaddr *addr, unsigned int flags) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_bind(tcp, addr, flags);
}
Exemplo n.º 16
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::init(uvplus_loop &loop) {
  this->uvplus_handle::init();
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_init(loop.context_ptr(), tcp);
}
Exemplo n.º 17
0
	void lua_context::init()
	{
		// initialize Lua
		state_.reset(luaL_newstate(), [](lua_State* L) { lua_close(L); });

		// load various Lua libraries
		luaopen_base(context_ptr());
		luaopen_string(context_ptr());
		luaopen_table(context_ptr());
		luaopen_math(context_ptr());
		luaopen_io(context_ptr());
		luaopen_debug(context_ptr());
		luaL_openlibs(context_ptr());

		luaL_newmetatable(context_ptr(), function_str);
		luaL_setfuncs(context_ptr(), gFFLFunctions, 0);	

		luaL_newmetatable(context_ptr(), callable_str);
		luaL_setfuncs(context_ptr(), gCallableFunctions, 0);

		luaL_newmetatable(context_ptr(), callable_function_str);
		luaL_setfuncs(context_ptr(), gFFLCallableFunctions, 0);

		luaL_newmetatable(context_ptr(), lib_functions_str);
		luaL_setfuncs(context_ptr(), gLibMetaFunctions, 0);

		push_anura_table(context_ptr());

		/*dostring(
			"local lvl = Anura.level()\n"
			"print(lvl.id, lvl.music_volume, lvl.in_editor)\n"
			"Anura.debug('abcd')\n"
			"Anura.eval('debug(map(range(10),value))')\n"
			"local camera = lvl.camera\n"
			"print('Camera speed: ' .. camera.speed)\n"
			"for n = 1, 10 do\n"
			"  camera.speed = n\n"
			"  print('Camera speed: ' .. camera.speed)\n"
			"end\n"
			"lvl.player:debug_rect(lvl.player.mid_x-50, lvl.player.mid_y-50, 100, 100)\n"
			//"for i,v in ipairs(lvl.active_chars) do\n"
			//"for i,v in ipairs(Anura.eval('range(10)')) do\n"
			"local mm = Anura.eval('{q(a):1,q(b):2}')\n"
			//"print(mm.a)\n"
			"for i,v in pairs(mm) do\n"
			"  print(i, v)\n"
			"end\n"
		);*/

		/*dostring("local me = Anura.me\n"
			"print(me.speed)",
			level::current().camera().get()
		);*/
	}
Exemplo n.º 18
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::nodelay(int enable) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_nodelay(tcp, enable);
}
Exemplo n.º 19
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::open(uv_os_sock_t sock) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_open(tcp, sock);
}
Exemplo n.º 20
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::init_ex(uvplus_loop &loop, int flags) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_init_ex(loop.context_ptr(), tcp, flags);
}
Exemplo n.º 21
0
		static context_ptr create(logger_ptr l, platform_t const& platform) {
			context_ptr result = context_ptr(new context(l, platform));
			return result;
		}
Exemplo n.º 22
0
Arquivo: tcp.cpp Projeto: Xsoda/uvplus
int uvplus_tcp::simultaneous_accepts(int enable) {
  auto tcp = (uv_tcp_t *)context_ptr();
  return uv_tcp_simultaneous_accepts(tcp, enable);
}