From 422e163d2e62fd17bddf676642db97c099d2ac36 Mon Sep 17 00:00:00 2001 From: mquinson Date: Fri, 19 May 2006 09:35:23 +0000 Subject: [PATCH 1/1] New function: xbt_host_from_string() creating an xbt_host_t from a 'toto:42042' string git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2249 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- include/xbt/host.h | 1 + src/xbt/xbt_host.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/include/xbt/host.h b/include/xbt/host.h index f210a36856..63512871e5 100644 --- a/include/xbt/host.h +++ b/include/xbt/host.h @@ -21,6 +21,7 @@ typedef struct { } s_xbt_host_t, *xbt_host_t; xbt_host_t xbt_host_new(const char *name, int port); +xbt_host_t xbt_host_from_string(const char *hostport); void xbt_host_free(xbt_host_t host); void xbt_host_free_voidp(void *d); diff --git a/src/xbt/xbt_host.c b/src/xbt/xbt_host.c index c2e8e56701..88eb6eab17 100644 --- a/src/xbt/xbt_host.c +++ b/src/xbt/xbt_host.c @@ -21,6 +21,21 @@ xbt_host_t xbt_host_new(const char *name, int port) { return res; } +/** \brief constructor. Argument should be of form ':'. */ +xbt_host_t xbt_host_from_string(const char *hostport) { + xbt_host_t res=xbt_new(s_xbt_host_t, 1); + char *name=xbt_strdup(hostport); + char *port_str=strchr(hostport,':'); + xbt_assert1(port_str,"argument of xbt_host_from_string should be of form :, it's '%s'", hostport); + *port_str='\0'; + port_str++; + + res->name = xbt_strdup(name); /* it will be shorter now that we cut the port */ + res->port = atoi(port_str); + free(name); + return res; +} + /** \brief destructor */ void xbt_host_free(xbt_host_t host) { if (host) { -- 2.20.1