#include <forb/cdr.h>
#include "forb_utils.h"
#include <inttypes.h>
+#include "object_type.h"
+#include <forb/types.h>
+#include <forb/server_id.h>
GAVL_CUST_NODE_INT_IMP(forb_objects_nolock /* cust_prefix */,
forb_t /* cust_root_t */,
ret = sscanf(&string[2*sizeof(server_id)+1], "%"SCNu64, &key);
if (ret == 0 || ret == EOF)
return NULL;
-
- obj = forb_object_new(orb, &server_id, key);
+
+ // check if the object you want to create is local or not
+ if (!forb_server_id_cmp(&orb->server, &server_id))
+ obj = forb_objects_find(forb_data(orb), key);
+ else
+ obj = forb_object_new(orb, &server_id, key);
return obj;
}
return CORBA_FALSE;
if (!codec->orb)
return CORBA_FALSE;
- *obj = forb_object_new(codec->orb, &server_id, objkey);
+
+ // check if the object you want to create is local or not
+ if (!forb_server_id_cmp(&codec->orb->server, &server_id))
+ *obj = forb_objects_find(forb_data(codec->orb), objkey);
+ else
+ *obj = forb_object_new(codec->orb, &server_id, objkey);
return CORBA_TRUE;
}