NAME

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


SYNOPSIS

IDL

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

C

  #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 ) ;

C++

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

Java

  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 ) ;
    }

Perl

(TBS)

Lisp

(TBS)


DESCRIPTION

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


PARAMETERS

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.

o

(C mapping only) the target object

ev

(C mapping only) a pointer to the CORBA_Environment


RETURN VALUE

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)


EXCEPTIONS

(standard system exceptions)


NOTES

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