������ CORBA::Object �ӿڵij���:
module CORBA { interface Object { InterfaceDef get_interface (); boolean is_nil (); Object duplicate (); void release (); boolean is_a (in string logical_type_id); boolean non_existant (); boolean is_equivalent (in Object other_object); unsigned long hash (in unsigned long maximum); }; }; |
����ӿ��Ƿdz���Ҫ�ģ���Ϊ���е� CORBA �������Լ�����Ľӿڶ������ļ̳�����������ζ���ڸ����ӿ��ж�������в������������� CORBA �����϶��ɻ�á�
��Щ���IJ�������Щ�Ǵ���������(identity)��: copy, test, destruction(����)...
is_nil �������������һ�������Ƿ���ڡ����Ϊ��������ڣ����Ϊ����֤�������(�μ������)������������ CORBA_OBJECT_NIL ���ʱ�����������֤����Ϊ�档
is_equivalent �����������������������Ƿ�ָ��ͬһ������ʵ����Ϊ������ʹ�� hash ������
��������� duplicate �� release ���������DZ��������������õĸ��ƺ�������Щ��������ע����������������ڶ��������Ϲ������������ڶ��������ϣ�����û�е�����ȥ���ƶ���������
�� CORBA �д�������ʱ��������Ҫʹ�� CORBA_Object ����������͵ı��������ж�����Ϣ������Ϊ���ݸ����з����ĵ�һ��������duplicate ������������һ�ݶ������õĸ�����release �������������������������Ϊ CORBA_Object �����Dz�����������Щ�����DZ���ģ��㲻֪�����Ľṹ����Ͳ������Լ������������ڲ���ʾ��(ֻ����Ϊ�����ڲ��ṹ�������� ORB ʵ�ֵ�)��
������һ����ʾ��Щ������ι������������룺
CORBA_Object obj; CORBA_Environment ev; CORBA_Object obj_copy = CORBA_OBJECT_NIL; /* ����������Ŀ������һЩ���� */ /* ����, obj ������һ����ʵ�Ķ��� */ if (CORBA_Object_is_nil (obj, &ev)) printf (stderr, "Error: could not get object reference !!\n"); obj_copy = CORBA_Object_duplicate (obj, ev); if (CORBA_Object_is_equivalent(obj, obj_copy, &ev)) printf (stderr, "Cool: the copy succeeded\n"); CORBA_Object_release (obj_copy, &ev); |
����Ϊ��Щ���벻���κ�ע�͡�
����һ������û�н���ķ���: get_interface������������ں���Ĺ��ڽӿڿ���½������ۡ������� ORBit �л�û��ʵ�֣�����ûʲô�ô� :)