예제 #1
0
파일: dygc.c 프로젝트: hsk/docs
int main() {
	gc_init();
    invoke_method("test1.so","method1");
    invoke_method("test.so","test");
    gc_free();
    return 0;
}
예제 #2
0
파일: thread.c 프로젝트: def44/mate
void * thread_run0_main(void *p) {
	struct thread *t;

	t = (struct thread *)p;

	if (thread_set_current(t) != 0)
		mvm_halt();

	t->state = runnable_state;

	if (debug != 0)
		mdb_hook(startup_hook);

	main_block_return_value = 0;
	if (invoke_method(t, "mainBlock", main_block_address, main_block_end,
			  0, main_block_max_locals, 0) != 0) {
		mvm_halt();
	}

#ifdef DMP
	if (t->dmp != NULL)
		thread_dmp_thread_destruction(t->dmp);
#endif

	t->state = terminated_state;
	/* run method has terminated, thread instance can now be collected */
	heap_include_ref(heap, t->ref);
	heap_remove_thread_ref(heap, t->ref);
	pthread_exit(0);
}
예제 #3
0
void accept_request(dino_http_site_t *dino_site, dino_handle_t *dhandle) {
    // Setup DHANDLE:
    //
    if (!read_request(&dhandle->http)) {
        bad_request(dhandle->http.socket);
    }
    else {
        // Parse the URL Parameters.
        //
        stack_char_ptr_t *url_stack = stack_ptr_parse(NULL, string_buffer_c_string(dhandle->http.request.url), "/");

        // Search for a match...
        //
        dino_route_t *route = list_method_find(dino_site->list, dhandle->http.request.method, url_stack);

        // Do we have a route?
        //
        if (NULL != route) {
            invoke_method(route, &dhandle->http, url_stack);
        }
        else {
            fprintf(stderr, "[ERROR] Path %s not found; \n\r", string_buffer_c_string(dhandle->http.request.url));
        }

        stack_ptr_free(url_stack);
    }
}
예제 #4
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    void Disconnect(const std::string& interface)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        call.member("Disconnect");
        ::DBus::Message ret = invoke_method (call);
    }
예제 #5
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    void Reassociate(const std::string& interface)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        call.member("Reassociate");
        ::DBus::Message ret = invoke_method (call);
    }
예제 #6
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    void SaveConfig(const std::string& interface)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        call.member("SaveConfig");
        ::DBus::Message ret = invoke_method (call);
    }
예제 #7
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    void SelectNetwork(const std::string& interface, const int32_t& id)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        wi << id;
        call.member("SelectNetwork");
        ::DBus::Message ret = invoke_method (call);
    }
예제 #8
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    void SetConfig(const std::string& block, const std::string& name, const std::vector< std::vector< ::DBus::Struct< std::string, std::string > > >& config)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << block;
        wi << name;
        wi << config;
        call.member("SetConfig");
        ::DBus::Message ret = invoke_method (call);
    }
예제 #9
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    std::string GetStatus()
    {
        ::DBus::CallMessage call;
        call.member("GetStatus");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        std::string argout;
        ri >> argout;
        return argout;
    }
예제 #10
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    void SetNetwork(const std::string& interface, const int32_t& id, const std::string& parameter, const std::string& value)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        wi << id;
        wi << parameter;
        wi << value;
        call.member("SetNetwork");
        ::DBus::Message ret = invoke_method (call);
    }
예제 #11
0
std::vector< DBus::Path > UDisksManagerProxy::GetAllDevices()
{
	std::vector< DBus::Path > udis;
	DBus::CallMessage call;

	call.member("EnumerateDevices");

	DBus::Message reply = invoke_method(call);
	DBus::MessageIter it = reply.reader();

	it >> udis;
	return udis;
}
예제 #12
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    std::vector< std::vector< ::DBus::Struct< int32_t, std::string, std::string, std::string > > > ListNetworks(const std::string& interface)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        call.member("ListNetworks");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        std::vector< std::vector< ::DBus::Struct< int32_t, std::string, std::string, std::string > > > argout;
        ri >> argout;
        return argout;
    }
예제 #13
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    std::vector< ::DBus::Struct< std::map< std::string, ::DBus::Variant > > > ScanResults(const std::string& interface)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        call.member("ScanResults");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        std::vector< ::DBus::Struct< std::map< std::string, ::DBus::Variant > > > argout;
        ri >> argout;
        return argout;
    }
예제 #14
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    std::vector< std::string > GetConfigBlocks(const std::string& block)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << block;
        call.member("GetConfigBlocks");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        std::vector< std::string > argout;
        ri >> argout;
        return argout;
    }
예제 #15
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    int32_t AddNetwork(const std::string& interface)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        call.member("AddNetwork");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        int32_t argout;
        ri >> argout;
        return argout;
    }
    bool Version(const std::string& a_version)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << a_version;
        call.member("Version");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        bool argout;
        ri >> argout;
        return argout;
    }
예제 #17
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    std::vector< std::vector< ::DBus::Struct< std::string, std::string > > > GetConfig(const std::string& block, const std::string& name)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << block;
        wi << name;
        call.member("GetConfig");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        std::vector< std::vector< ::DBus::Struct< std::string, std::string > > > argout;
        ri >> argout;
        return argout;
    }
예제 #18
0
파일: dhcpcd.hpp 프로젝트: ATNoG/EMICOM
    std::string GetNetwork(const std::string& interface, const int32_t& id, const std::string& parameter)
    {
        ::DBus::CallMessage call;
        ::DBus::MessageIter wi = call.writer();

        wi << interface;
        wi << id;
        wi << parameter;
        call.member("GetNetwork");
        ::DBus::Message ret = invoke_method (call);
        ::DBus::MessageIter ri = ret.reader();

        std::string argout;
        ri >> argout;
        return argout;
    }
예제 #19
0
파일: tuple.c 프로젝트: ab25cq/clover2
BOOL initialize_tuple_object(CLObject tuple_object, int num_elements, CLObject* items, CLVALUE* stack, int var_num, CLVALUE** stack_ptr, sVMInfo* info)
{
    char class_name[CLASS_NAME_MAX+1];
    snprintf(class_name, CLASS_NAME_MAX, "Tuple%d", num_elements);
    sCLClass* klass = get_class(class_name, FALSE);

    char method_name_and_params[1024];

    method_name_and_params[0] = '\0';

    xstrncpy(method_name_and_params, "initialize(", 1024);

    int i;
    for(i=0; i<num_elements; i++) {
        char class_name[CLASS_NAME_MAX+1];
        snprintf(class_name, CLASS_NAME_MAX, "GenericsParametorClass%d", i);
        xstrncat(method_name_and_params, class_name, 1024);

        if(i == num_elements-1) {
            xstrncat(method_name_and_params, ")", 1024);
        }
        else {
            xstrncat(method_name_and_params, ",", 1024);
        }
    }

    sCLMethod* method = search_for_method_from_virtual_method_table(klass, method_name_and_params);

    (*stack_ptr)->mObjectValue = tuple_object;  // self
    (*stack_ptr)++;

    for(i=0; i<num_elements; i++) {
        (*stack_ptr)->mObjectValue = items[i];
        (*stack_ptr)++;
    }

    if(!invoke_method(klass, method, stack, var_num, stack_ptr, info)) {
        return FALSE;
    }

    (*stack_ptr)--; // pop method result

    return TRUE;
}
예제 #20
0
파일: dyload.c 프로젝트: hsk/docs
int main( int argc, char *argv[] )
{
  char line[MAX_STRING+1];
  char lib[MAX_STRING+1];
  char method[MAX_STRING+1];
  float argument;

  while (1) {

    printf("> ");

    line[0]=0;
    fgets( line, MAX_STRING, stdin);

    if (!strncmp(line, "bye", 3)) break;

    sscanf( line, "%s %s %f", lib, method, &argument);

    invoke_method( lib, method, argument );

  }

}