3 //=============================================================================
5 * @file RTScheduler_Manager.h
7 * @author Yamuna Krishnmaurthy <yamuna@oomworks.com>
9 //=============================================================================
11 #ifndef TAO_RTSCHEDULER_MANAGER_H
12 #define TAO_RTSCHEDULER_MANAGER_H
14 #include "tao/RTScheduling/RTScheduler.h"
15 #include "tao/LocalObject.h"
17 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
19 class TAO_RTScheduler_Manager
;
20 class TAO_RTScheduler_Manager_var
;
21 typedef TAO_RTScheduler_Manager
*TAO_RTScheduler_Manager_ptr
;
24 * @class TAO_RTScheduler_Manager
26 * @brief RTScheduler_Manager pseudo-objref.
28 * Allows setting of user-defined RTScheduler at run-time.
30 class TAO_RTScheduler_Export TAO_RTScheduler_Manager
:
31 public virtual ::CORBA::LocalObject
34 TAO_RTScheduler_Manager () = default;
37 TAO_RTScheduler_Manager (TAO_ORB_Core
* orb
);
39 void rtscheduler (RTScheduling::Scheduler_ptr rtscheduler
);
41 RTScheduling::Scheduler_ptr
rtscheduler ();
44 typedef TAO_RTScheduler_Manager_ptr _ptr_type
;
45 typedef TAO_RTScheduler_Manager_var _var_type
;
47 // the static operations
48 static TAO_RTScheduler_Manager_ptr
_duplicate (TAO_RTScheduler_Manager_ptr obj
);
49 static TAO_RTScheduler_Manager_ptr
_narrow (CORBA::Object_ptr obj
);
50 static TAO_RTScheduler_Manager_ptr
_nil ()
55 virtual const char* _interface_repository_id () const;
58 /// Protected destructor to enforce proper memory management of this
59 /// reference counted object.
60 ~TAO_RTScheduler_Manager () = default;
63 TAO_RTScheduler_Manager (const TAO_RTScheduler_Manager
&) = delete;
64 void operator= (const TAO_RTScheduler_Manager
&) = delete;
65 TAO_ORB_Core
* orb_
{};
68 RTScheduling::Scheduler_var rtscheduler_
;
71 class TAO_RTScheduler_Export TAO_RTScheduler_Manager_var
72 : private TAO_Base_var
75 TAO_RTScheduler_Manager_var (); // default constructor
76 TAO_RTScheduler_Manager_var (TAO_RTScheduler_Manager_ptr
);
77 TAO_RTScheduler_Manager_var (const TAO_RTScheduler_Manager_var
&); // copy constructor
78 ~TAO_RTScheduler_Manager_var (); // destructor
80 TAO_RTScheduler_Manager_var
&operator= (TAO_RTScheduler_Manager_ptr
);
81 TAO_RTScheduler_Manager_var
&operator= (const TAO_RTScheduler_Manager_var
&);
82 TAO_RTScheduler_Manager_ptr
operator-> () const;
84 /// in, inout, out, _retn
85 operator const TAO_RTScheduler_Manager_ptr
&() const;
86 operator TAO_RTScheduler_Manager_ptr
&();
87 TAO_RTScheduler_Manager_ptr
in () const;
88 TAO_RTScheduler_Manager_ptr
&inout ();
89 TAO_RTScheduler_Manager_ptr
&out ();
90 TAO_RTScheduler_Manager_ptr
_retn ();
91 TAO_RTScheduler_Manager_ptr
ptr () const;
93 // Hooks used by template sequence and object manager classes
94 // for non-defined forward declared interfaces.
95 static TAO_RTScheduler_Manager_ptr
duplicate (TAO_RTScheduler_Manager_ptr
);
96 static void release (TAO_RTScheduler_Manager_ptr
);
97 static TAO_RTScheduler_Manager_ptr
nil ();
98 static TAO_RTScheduler_Manager_ptr
narrow (CORBA::Object
* );
99 static CORBA::Object
* upcast (void *);
102 TAO_RTScheduler_Manager_ptr ptr_
;
103 TAO_RTScheduler_Manager_var (const TAO_Base_var
&rhs
) = delete;
104 TAO_RTScheduler_Manager_var
&operator= (const TAO_Base_var
&rhs
) = delete;
107 class TAO_RTScheduler_Export TAO_RTScheduler_Manager_out
110 TAO_RTScheduler_Manager_out (TAO_RTScheduler_Manager_ptr
&);
111 TAO_RTScheduler_Manager_out (TAO_RTScheduler_Manager_var
&);
112 TAO_RTScheduler_Manager_out (const TAO_RTScheduler_Manager_out
&);
113 TAO_RTScheduler_Manager_out
&operator= (const TAO_RTScheduler_Manager_out
&);
114 TAO_RTScheduler_Manager_out
&operator= (const TAO_RTScheduler_Manager_var
&);
115 TAO_RTScheduler_Manager_out
&operator= (TAO_RTScheduler_Manager_ptr
);
116 operator TAO_RTScheduler_Manager_ptr
&();
117 TAO_RTScheduler_Manager_ptr
&ptr ();
118 TAO_RTScheduler_Manager_ptr
operator-> ();
121 TAO_RTScheduler_Manager_ptr
&ptr_
;
124 TAO_END_VERSIONED_NAMESPACE_DECL
126 #if defined (__ACE_INLINE__)
127 #include "tao/RTScheduling/RTScheduler_Manager.inl"
128 #endif /* __ACE_INLINE__ */
130 #endif /* TAO_RTSCHEDULER_MANAGER_H */