RE: CORBA Reference API or using NameService
Here's some very old code we used at one time to contact the COS naming
service. I don't remember much about it, and don't even know if it will help
you. But, maybe it will trigger some ideas...
Cheers, David
------------
(in-package :naming)
(defun resolve-name-service ()
(let ((nc
(op:narrow 'CosNaming:NamingContext
(op:resolve_initial_references (orb:orb)
"NameService"))))
(assert (not (null nc)) nil
"The COS Name Service couldn't be contacted.")
nc))
(defun make-name-component (name)
(list (COSNaming:NameComponent :id name :kind "")))
(defun make-name-list (name-list)
(mapcar #'(lambda (name)
(COSNaming:NameComponent :id name :kind ""))
name-list))
(let ((default-contexts '("whatever")))
(defun resolve-context (names &optional (parent nil))
(let ((root (if (null parent)
(resolve-name-service)
parent)))
(handler-case
(op:resolve root names)
(CosNaming:NamingContext/NotFound nil
(op:bind_new_context root names)))))
(defun ensure-default-contexts ()
(let ((parent (resolve-name-service)))
(dolist (context default-contexts)
(setf parent (resolve-context (make-name-component context)
parent))))))
(defun resolve-name (names)
(op:resolve (resolve-name-service) (make-name-list names)))
(defun advertise-server (server-ref service-name context-names)
(ensure-default-contexts)
(op:rebind (resolve-context (make-name-list context-names))
(make-name-component service-name)
server-ref))
-----Original Message-----
From: John [mailto:john.benjamin.cassel@gmail.com]
Sent: Friday, July 08, 2005 10:00 AM
To: lisp-hug@lispworks.com
Subject: CORBA Reference API or using NameService
Hi all,
The CORBA tutorial is great, but it only uses shared files. I need to use a
name service, and I'd like a reference or API to all of the CORBA methods,
or an
example of a program that uses the name service.
Thanks in advance,
John,
Riverglass Analytics