CORBA::Object::validate_connection - (operation) determine whether the current effective policies for the object will allow an invocation to be made



  module CORBA
    typedef sequence <Policy> PolicyList ;
    interface Object
      boolean validate_connection
          ( out PolicyList inconsistent_policies ) ;
      } ;
    } ;


  #include <orb.h>
  typedef struct
      CORBA_unsigned_long              _maximum ;
      CORBA_unsigned_long              _length ;
      CORBA_Policy                   * _buffer ;
      CORBA_PolicyList ;
  CORBA_boolean CORBA_Object_validate_connection
      ( CORBA_Object o,
      CORBA_PolicyList ** inconsistent_policies,
      CORBA_Environment * ev ) ;


  #include <orb.h>
  namespace CORBA
    class PolicyList
      { [...] /* mapped from sequence<Policy> */ } ;
    class PolicyList_out
      { [...] /* mapped as T_out corresponding to PolicyList */ } ;
    class Object
          Boolean _validate_connection
              ( PolicyList_out inconsistent_policies ) ;
      } ;
    } ;


  package org.omg.CORBA ;
  final public class PolicyListHolder
    implements org.omg.CORBA.portable.streamable
      public Policy [] value;
      public PolicyListHolder () { } ;
      public PolicyListHolder ( Policy [] initial ) {...} ;
      [...] // mapped as standard <sequence_class>Holder
  public interface Object
      boolean _validate_connection
          ( PolicyListHolder inconsistent_policies ) ;






The CORBA::Object::validate_connection operation determines whether the current effective policies will allow an invocation to be made.


inconsistent_policies (out, PolicyList, sequence)

If the return value is FALSE (that is, if an invocation would fail for policy reasons), inconsistent_policies will be a non-exhaustive list of policies which would cause the failure. Even if these returned policies were adjusted to avoid the failure, it is still possible that other, different policies would also cause the invocation to fail.


(C mapping only) the target object


(C mapping only) a pointer to the CORBA_Environment


TRUE, if effective policies would allow the invocation to be made

FALSE, if effective policies would prohibit the invocation from being made (that is, if an invocation would raise the INV_POLICY exception)


(standard system exceptions)


  1. If the reference is not yet bound, then an attempt will be made during the course of this operation to bind the reference to the object.

    If the reference is already bound, but policies have changed, or if the binding is no longer valid for other reasons, then the system will attempt to rebind the reference to the object. The rebinding will be attempted despite the value of the current effective RebindPolicy.

    The ORB may send one or more GIOP LocateRequest messages in the course of binding or rebinding.

  2. If the RoutingPolicy value is either ROUTE_FORWARD or ROUTE_STORE_AND_FORWARD, then the return value from this function will be based on the local ORB's ability to connect to the Router or PersistentRequestRouter at the other end of the first hop, and not on its ability to connect to the target object's ORB.

  3. (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.

  4. (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
            use the C mapping for names

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




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

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