rtscheduler.pidl
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· PIDL 代码 · 共 212 行
PIDL
212 行
//RTScheduler.pidl,v 1.4 2003/10/28 18:29:33 bala Exp
// ================================================================
//
// = LIBRARY
// TAO_RTScheduling
//
// = FILENAME
// RTScheduling.pidl
//
// = DESCRIPTION
// Some new data types included for GIOP 1.2
// This file was used to generate the code in
// GIOP*.* The command used to generate code
// is:
//
// tao_idl
// -o orig -Sa -Gp -Gd -Ge 1 -GT
// -Wb,export_macro=TAO_RTScheduler_Export
// -Wb,export_include="rtscheduler_export.h"
// -Wb,pre_include="ace/pre.h"
// -Wb,post_include="ace/post.h"
// -I$(TAO_ROOT)
// RTScheduler.pidl
//
// ================================================================
#ifndef TAO_RTSCHEDULER_PIDL
#define TAO_RTSCHEDULER_PIDL
#include "tao/RTCORBA/RTCORBA.pidl"
#include "tao/PortableServer/PortableServer.pidl"
#include "tao/PortableInterceptor.pidl"
module CORBA
{
// Extensions by this proposal:
native VoidData;
// Ada: System.Address
// C: void*
// C++: void*
// Java: Object
};
module RTScheduling
{
// ------------------------------------------------------------------
// Interfaces that are useful to dynamically schedule applications
// ------------------------------------------------------------------
local interface ThreadAction
{
void do(in CORBA::VoidData data);
};
local interface DistributableThread
{
enum DT_State
{
ACTIVE,
CANCELLED
};
void cancel();
// raises CORBA::OBJECT_NOT_FOUND if
// the distributable thread is
// not known to the scheduler
readonly attribute DT_State state;
};
local interface Current
: RTCORBA::Current
{
DistributableThread
spawn
(in ThreadAction start,
in CORBA::VoidData data,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param,
in unsigned long stack_size,
// zero means use the O/S default
in RTCORBA::Priority base_priority);
exception UNSUPPORTED_SCHEDULING_DISCIPLINE {};
// The scheduling_parameter argument didn't match the
// active scheduling policy.
void begin_scheduling_segment
(in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (UNSUPPORTED_SCHEDULING_DISCIPLINE );
void update_scheduling_segment
(in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises ( UNSUPPORTED_SCHEDULING_DISCIPLINE );
void end_scheduling_segment(in string name);
typedef sequence<octet> IdType;
readonly attribute IdType id;
// a globally unique id
//IdType get_current_id();
// returns id of thread that is running
DistributableThread lookup(in IdType id);
// returns a null reference if
// the distributable thread is
// not known to the local scheduler
readonly attribute CORBA::Policy scheduling_parameter;
readonly attribute CORBA::Policy implicit_scheduling_parameter;
typedef sequence<string> NameList;
readonly attribute NameList current_scheduling_segment_names;
// Ordered from innermost segment name
// to outmost segment name
};
local interface ResourceManager
: RTCORBA::Mutex
{
};
local interface Scheduler
{
exception INCOMPATIBLE_SCHEDULING_DISCIPLINES {};
attribute CORBA::PolicyList scheduling_policies;
readonly attribute CORBA::PolicyList poa_policies;
readonly attribute string scheduling_discipline_name;
ResourceManager
create_resource_manager
(in string name,
in CORBA::Policy scheduling_parameter);
void set_scheduling_parameter
(inout PortableServer::Servant resource,
in string name,
in CORBA::Policy scheduling_parameter);
void begin_new_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
void begin_nested_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
void update_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy sched_param,
in CORBA::Policy implicit_sched_param)
raises (Current::UNSUPPORTED_SCHEDULING_DISCIPLINE);
void end_scheduling_segment (in Current::IdType guid,
in string name);
void end_nested_scheduling_segment (in Current::IdType guid,
in string name,
in CORBA::Policy outer_sched_param);
void send_request (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void receive_request (in PortableInterceptor::ServerRequestInfo ri,
out Current::IdType guid,
out string name,
out CORBA::Policy sched_param,
out CORBA::Policy implicit_sched_param)
raises (PortableInterceptor::ForwardRequest);
void send_reply (in PortableInterceptor::ServerRequestInfo ri);
void send_exception (in PortableInterceptor::ServerRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void send_other (in PortableInterceptor::ServerRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void send_poll (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void receive_reply (in PortableInterceptor::ClientRequestInfo ri);
void receive_exception (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void receive_other (in PortableInterceptor::ClientRequestInfo ri)
raises (PortableInterceptor::ForwardRequest);
void cancel (in Current::IdType guid);
};
};
#endif /*TAO_RTSCHEDULER_PIDL*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?