// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 2002
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 4.0.3

#ifndef __OB_POAPolicyType_h__
#define __OB_POAPolicyType_h__

#ifndef OB_IMPORT
#   ifdef OB_DLL
#      define OB_IMPORT __declspec(dllimport)
#   else
#      define OB_IMPORT /**/
#   endif
#endif


#include <OB/Policy.h>

#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4010000L)
#       error ORBacus version mismatch!
#   endif
#endif

namespace PortableServer
{

} // End of namespace PortableServer

namespace PortableServer
{

} // End of namespace PortableServer

namespace OBStubImpl_PortableServer
{

} // End of namespace OBStubImpl_PortableServer

namespace OBStubImpl_PortableServer
{

} // End of namespace OBStubImpl_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace PortableServer
{

//
// IDL:omg.org/PortableServer/THREAD_POLICY_ID:1.0
//
const CORBA::PolicyType THREAD_POLICY_ID = 16U;

//
// IDL:omg.org/PortableServer/LIFESPAN_POLICY_ID:1.0
//
const CORBA::PolicyType LIFESPAN_POLICY_ID = 17U;

//
// IDL:omg.org/PortableServer/ID_UNIQUENESS_POLICY_ID:1.0
//
const CORBA::PolicyType ID_UNIQUENESS_POLICY_ID = 18U;

//
// IDL:omg.org/PortableServer/ID_ASSIGNMENT_POLICY_ID:1.0
//
const CORBA::PolicyType ID_ASSIGNMENT_POLICY_ID = 19U;

//
// IDL:omg.org/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID:1.0
//
const CORBA::PolicyType IMPLICIT_ACTIVATION_POLICY_ID = 20U;

//
// IDL:omg.org/PortableServer/SERVANT_RETENTION_POLICY_ID:1.0
//
const CORBA::PolicyType SERVANT_RETENTION_POLICY_ID = 21U;

//
// IDL:omg.org/PortableServer/REQUEST_PROCESSING_POLICY_ID:1.0
//
const CORBA::PolicyType REQUEST_PROCESSING_POLICY_ID = 22U;

//
// IDL:omg.org/PortableServer/ThreadPolicyValue:1.0
//
enum ThreadPolicyValue
{
    ORB_CTRL_MODEL,
    SINGLE_THREAD_MODEL
};

typedef ThreadPolicyValue& ThreadPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_ThreadPolicyValue;

//
// IDL:omg.org/PortableServer/LifespanPolicyValue:1.0
//
enum LifespanPolicyValue
{
    TRANSIENT,
    PERSISTENT
};

typedef LifespanPolicyValue& LifespanPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_LifespanPolicyValue;

//
// IDL:omg.org/PortableServer/IdUniquenessPolicyValue:1.0
//
enum IdUniquenessPolicyValue
{
    UNIQUE_ID,
    MULTIPLE_ID
};

typedef IdUniquenessPolicyValue& IdUniquenessPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_IdUniquenessPolicyValue;

//
// IDL:omg.org/PortableServer/IdAssignmentPolicyValue:1.0
//
enum IdAssignmentPolicyValue
{
    USER_ID,
    SYSTEM_ID
};

typedef IdAssignmentPolicyValue& IdAssignmentPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_IdAssignmentPolicyValue;

//
// IDL:omg.org/PortableServer/ImplicitActivationPolicyValue:1.0
//
enum ImplicitActivationPolicyValue
{
    IMPLICIT_ACTIVATION,
    NO_IMPLICIT_ACTIVATION
};

typedef ImplicitActivationPolicyValue& ImplicitActivationPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_ImplicitActivationPolicyValue;

//
// IDL:omg.org/PortableServer/ServantRetentionPolicyValue:1.0
//
enum ServantRetentionPolicyValue
{
    RETAIN,
    NON_RETAIN
};

typedef ServantRetentionPolicyValue& ServantRetentionPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_ServantRetentionPolicyValue;

//
// IDL:omg.org/PortableServer/RequestProcessingPolicyValue:1.0
//
enum RequestProcessingPolicyValue
{
    USE_ACTIVE_OBJECT_MAP_ONLY,
    USE_DEFAULT_SERVANT,
    USE_SERVANT_MANAGER
};

typedef RequestProcessingPolicyValue& RequestProcessingPolicyValue_out;

OB_IMPORT extern OB::TypeCodeConst _tc_RequestProcessingPolicyValue;

} // End of namespace PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBStubImpl_PortableServer
{

} // End of namespace OBStubImpl_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBMarshalStubImpl_PortableServer
{

} // End of namespace OBMarshalStubImpl_PortableServer

//
// IDL:omg.org/PortableServer:2.3
//
namespace OBV_PortableServer
{

} // End of namespace OBV_PortableServer

//
// IDL:omg.org/PortableServer/ThreadPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::ThreadPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::ThreadPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::ThreadPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::ThreadPolicyValue& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/PortableServer/LifespanPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::LifespanPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::LifespanPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::LifespanPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::LifespanPolicyValue& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/PortableServer/IdUniquenessPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::IdUniquenessPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::IdUniquenessPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::IdUniquenessPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::IdUniquenessPolicyValue& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/PortableServer/IdAssignmentPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::IdAssignmentPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::IdAssignmentPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::IdAssignmentPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::IdAssignmentPolicyValue& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/PortableServer/ImplicitActivationPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::ImplicitActivationPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::ImplicitActivationPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::ImplicitActivationPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::ImplicitActivationPolicyValue& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/PortableServer/ServantRetentionPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::ServantRetentionPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::ServantRetentionPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::ServantRetentionPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::ServantRetentionPolicyValue& val)
{
    return any.in() >>= val;
}

//
// IDL:omg.org/PortableServer/RequestProcessingPolicyValue:1.0
//
void operator<<=(CORBA::Any&, PortableServer::RequestProcessingPolicyValue);
CORBA::Boolean operator>>=(const CORBA::Any&, PortableServer::RequestProcessingPolicyValue&);

inline void
operator<<=(CORBA::Any_var& any, PortableServer::RequestProcessingPolicyValue val)
{
    any.inout() <<= val;
}

inline CORBA::Boolean
operator>>=(const CORBA::Any_var& any, PortableServer::RequestProcessingPolicyValue& val)
{
    return any.in() >>= val;
}

#endif
