mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 20:23:06 +00:00
add module skynet.harbor
This commit is contained in:
@@ -17,23 +17,6 @@ skynet_harbor_send(struct remote_message *rmsg, uint32_t source, int session) {
|
||||
skynet_context_send(REMOTE, rmsg, sizeof(*rmsg) , source, type , session);
|
||||
}
|
||||
|
||||
void
|
||||
skynet_harbor_register(struct remote_name *rname) {
|
||||
if (REMOTE == NULL)
|
||||
return;
|
||||
int i;
|
||||
int number = 1;
|
||||
for (i=0;i<GLOBALNAME_LENGTH;i++) {
|
||||
char c = rname->name[i];
|
||||
if (!(c >= '0' && c <='9')) {
|
||||
number = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert(number == 0);
|
||||
skynet_context_send(REMOTE, rname, sizeof(*rname), 0, PTYPE_SYSTEM , 0);
|
||||
}
|
||||
|
||||
int
|
||||
skynet_harbor_message_isremote(uint32_t handle) {
|
||||
assert(HARBOR != ~0);
|
||||
|
||||
@@ -23,7 +23,6 @@ struct remote_message {
|
||||
};
|
||||
|
||||
void skynet_harbor_send(struct remote_message *rmsg, uint32_t source, int session);
|
||||
void skynet_harbor_register(struct remote_name *rname);
|
||||
int skynet_harbor_message_isremote(uint32_t handle);
|
||||
void skynet_harbor_init(int harbor);
|
||||
void skynet_harbor_start(void * ctx);
|
||||
|
||||
@@ -342,11 +342,7 @@ cmd_reg(struct skynet_context * context, const char * param) {
|
||||
} else if (param[0] == '.') {
|
||||
return skynet_handle_namehandle(context->handle, param + 1);
|
||||
} else {
|
||||
assert(context->handle!=0);
|
||||
struct remote_name *rname = skynet_malloc(sizeof(*rname));
|
||||
copy_name(rname->name, param);
|
||||
rname->handle = context->handle;
|
||||
skynet_harbor_register(rname);
|
||||
skynet_error(context, "Can't register global name %s in C", param);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -377,10 +373,7 @@ cmd_name(struct skynet_context * context, const char * param) {
|
||||
if (name[0] == '.') {
|
||||
return skynet_handle_namehandle(handle_id, name + 1);
|
||||
} else {
|
||||
struct remote_name *rname = skynet_malloc(sizeof(*rname));
|
||||
copy_name(rname->name, name);
|
||||
rname->handle = handle_id;
|
||||
skynet_harbor_register(rname);
|
||||
skynet_error(context, "Can't set global name %s in C", name);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user