NAME

CORBA::Object::is_a - (operation) determine whether an object is an instance of a specified type


SYNOPSIS

IDL

  module CORBA
    {
    interface Object
      {
      boolean is_a ( in RepositoryId logical_type_id ) ;
      } ;
    } ;

C

  #include <orb.h>
  CORBA_boolean CORBA_Object_is_a
      ( CORBA_Object o,
      CORBA_Environment * ev ) ;

C++

  #include <orb.h>
  namespace CORBA
    {
    class Object
      {
        public:
          Boolean _is_a ( const char * logical_type_id ) ;
      } ;
    } ;

Java

  package org.omg.CORBA ;
  public interface Object
    {
    boolean _is_a ( String Identifier ) ;
    }

Perl

(TBS)

Lisp

(TBS)


DESCRIPTION

The CORBA::Object::is_a operation determines if an object is an instance of the given logical type. The operation returns TRUE if the most derived interface of the referenced object, or if any inherited ancestor interface, has a repository identifier matching the specified value.

Repository identifiers are strings defined or computed based on the IDL for the object's interface, and can be presumed globally unique if the rules have been followed.

The local ORB may need to contact a remote ORB or interface repository to make the determination. In case of error, an exception will be raised; otherwise, the return from is_a will be reliable.


PARAMETERS

o

(C mapping only) the target object

ev

(C mapping only) a pointer to the CORBA_Environment


RETURN VALUE

TRUE if the object is an instance of the specified type identifier, otherwise FALSE


EXCEPTIONS

(standard system exceptions)


NOTES

  1. (C++ mapping only) The IDL header is named orb.idl. The C++ mapping specification does not mention a specific header name. One might presume the header name should be orb.h. However, some ORB vendors are more imaginative, and use other, different header file names.

  2. (C++ mapping only) The C++ mapping of names may vary, depending on the implementation's support for nested classes and namespaces. The rules are:

        if C++ namespace is supported,
            then map IDL module to C++ namespace
        else if C++ nested classes are supported,
            then map IDL module to a C++ class
        else
            use the C mapping for names

    The C++ synopsis, above, assumes namespace support. For other situations, adjust accordingly.


SEE ALSO

CORBA::Object(3corba)


COPYRIGHT

Copyright 2012 Michael Marking. This document is distributed as part of corbadoc, a documentation-only package with the goal of describing the main CORBA-related definitions from the OMG specifications. This is version corbadoc-0.1.3-prototype, released 2011.12.23. corbadoc is an incomplete work in progress; this is a snapshot release. New releases will be posted at http://www.tatanka.com/software/corbadoc/.

The corbadoc documents, including this one, are licensed under the GNU Free Documentation License, v.1.3.