s/Uint/UInt/g
[ACE_TAO.git] / TAO / tao / Object_T.h
bloba2196feb410390dbf85fc0408370a4b7a21446e4
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file Object_T.h
7 * Templatized utilities common to all IDL interfaces.
9 * @author Jeff Parsons <j.parsons@vanderbilt.edu>
11 //=============================================================================
13 #ifndef TAO_CORBA_OBJECT_T_H
14 #define TAO_CORBA_OBJECT_T_H
16 #include /**/ "ace/pre.h"
18 #include "ace/config-all.h"
20 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 # pragma once
22 #endif /* ACE_LACKS_PRAGMA_ONCE */
24 #include /**/ "tao/Versioned_Namespace.h"
25 #include "tao/Collocation_Strategy.h"
27 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
29 namespace CORBA
31 class Object;
32 typedef Object *Object_ptr;
35 namespace TAO
37 template<typename T>
38 class Narrow_Utils
40 public:
41 typedef T *T_ptr;
43 static T_ptr narrow (CORBA::Object_ptr,
44 const char *repo_id);
46 /// Version used the operators.
47 static T_ptr unchecked_narrow (CORBA::Object_ptr);
49 private:
50 // Code for lazily evaluated IORs.
51 static T_ptr lazy_evaluation (CORBA::Object_ptr);
55 TAO_END_VERSIONED_NAMESPACE_DECL
57 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
58 #include "tao/Object_T.cpp"
59 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
61 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
62 #pragma implementation ("Object_T.cpp")
63 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
65 #include /**/ "ace/post.h"
67 #endif /* TAO_CORBA_OBJECT_T_H */