summaryrefslogtreecommitdiff
path: root/TAO/tao/PI_Server
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2007-02-11 12:51:42 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2007-02-11 12:51:42 +0000
commit8448cf1afd4b7667cb1451cf7fac0b864c091681 (patch)
treee7cd895a2fa466e22075c21c31fc83ebc30f476d /TAO/tao/PI_Server
parentd7d4b1b0c8cd2333e509eec6cc3cfd0566cbdfd7 (diff)
downloadATCD-8448cf1afd4b7667cb1451cf7fac0b864c091681.tar.gz
Sun Feb 11 12:38:14 UTC 2007 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/PI_Server')
-rw-r--r--TAO/tao/PI_Server/PortableServer_ORBInitializer.cpp5
-rw-r--r--TAO/tao/PI_Server/PortableServer_ORBInitializer.h6
-rw-r--r--TAO/tao/PI_Server/PortableServer_PolicyFactory.cpp2
-rw-r--r--TAO/tao/PI_Server/PortableServer_PolicyFactory.h4
-rw-r--r--TAO/tao/PI_Server/ServerRequestDetails.cpp2
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.cpp31
-rw-r--r--TAO/tao/PI_Server/ServerRequestInfo.h102
-rw-r--r--TAO/tao/PI_Server/ServerRequestInterceptorC.h31
8 files changed, 39 insertions, 144 deletions
diff --git a/TAO/tao/PI_Server/PortableServer_ORBInitializer.cpp b/TAO/tao/PI_Server/PortableServer_ORBInitializer.cpp
index 5c5c44e4fca..863b6eeca11 100644
--- a/TAO/tao/PI_Server/PortableServer_ORBInitializer.cpp
+++ b/TAO/tao/PI_Server/PortableServer_ORBInitializer.cpp
@@ -18,17 +18,14 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
void
TAO_PortableServer_ORBInitializer::pre_init (
PortableInterceptor::ORBInitInfo_ptr)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
}
void
TAO_PortableServer_ORBInitializer::post_init (
PortableInterceptor::ORBInitInfo_ptr info)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
- this->register_policy_factories (info
- );
+ this->register_policy_factories (info);
}
void
diff --git a/TAO/tao/PI_Server/PortableServer_ORBInitializer.h b/TAO/tao/PI_Server/PortableServer_ORBInitializer.h
index e35324dcfb9..cdbcce827cc 100644
--- a/TAO/tao/PI_Server/PortableServer_ORBInitializer.h
+++ b/TAO/tao/PI_Server/PortableServer_ORBInitializer.h
@@ -40,11 +40,9 @@ public:
* PortableInterceptor::ORBInitializer interface.
*/
//@{
- void pre_init (PortableInterceptor::ORBInitInfo_ptr info)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ void pre_init (PortableInterceptor::ORBInitInfo_ptr info);
- void post_init (PortableInterceptor::ORBInitInfo_ptr info)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ void post_init (PortableInterceptor::ORBInitInfo_ptr info);
//@}
diff --git a/TAO/tao/PI_Server/PortableServer_PolicyFactory.cpp b/TAO/tao/PI_Server/PortableServer_PolicyFactory.cpp
index 4ccec2811fc..e2a8d8665f9 100644
--- a/TAO/tao/PI_Server/PortableServer_PolicyFactory.cpp
+++ b/TAO/tao/PI_Server/PortableServer_PolicyFactory.cpp
@@ -21,8 +21,6 @@ CORBA::Policy_ptr
TAO_PortableServer_PolicyFactory::create_policy (
CORBA::PolicyType type,
const CORBA::Any &value)
- ACE_THROW_SPEC ((CORBA::SystemException,
- CORBA::PolicyError))
{
#if !defined (CORBA_E_MICRO)
#if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT)
diff --git a/TAO/tao/PI_Server/PortableServer_PolicyFactory.h b/TAO/tao/PI_Server/PortableServer_PolicyFactory.h
index 40f95076ee6..c0d5a5037a3 100644
--- a/TAO/tao/PI_Server/PortableServer_PolicyFactory.h
+++ b/TAO/tao/PI_Server/PortableServer_PolicyFactory.h
@@ -32,9 +32,7 @@ class TAO_PortableServer_PolicyFactory
{
public:
CORBA::Policy_ptr create_policy (CORBA::PolicyType type,
- const CORBA::Any & value)
- ACE_THROW_SPEC ((CORBA::SystemException,
- CORBA::PolicyError));
+ const CORBA::Any & value);
};
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/PI_Server/ServerRequestDetails.cpp b/TAO/tao/PI_Server/ServerRequestDetails.cpp
index efbfd028419..2c7fcb81774 100644
--- a/TAO/tao/PI_Server/ServerRequestDetails.cpp
+++ b/TAO/tao/PI_Server/ServerRequestDetails.cpp
@@ -6,6 +6,8 @@
#include "tao/PI_Server/ServerRequestDetails.inl"
#endif /* defined INLINE */
+#include "tao/SystemException.h"
+
ACE_RCSID (PI_Server,
ServerRequestDetails,
"$Id$")
diff --git a/TAO/tao/PI_Server/ServerRequestInfo.cpp b/TAO/tao/PI_Server/ServerRequestInfo.cpp
index 86f738fac4d..b7d6238660e 100644
--- a/TAO/tao/PI_Server/ServerRequestInfo.cpp
+++ b/TAO/tao/PI_Server/ServerRequestInfo.cpp
@@ -33,7 +33,6 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
CORBA::ULong
TAO::ServerRequestInfo::request_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
// The request ID returned by this method need not correspond to the
// GIOP request ID sent with the client request. The request ID
@@ -72,14 +71,12 @@ TAO::ServerRequestInfo::request_id (void)
char *
TAO::ServerRequestInfo::operation (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
return CORBA::string_dup (this->server_request_.operation ());
}
Dynamic::ParameterList *
TAO::ServerRequestInfo::arguments (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->args_ == 0)
{
@@ -118,7 +115,6 @@ TAO::ServerRequestInfo::arguments (void)
Dynamic::ExceptionList *
TAO::ServerRequestInfo::exceptions (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->args_ == 0)
{
@@ -149,21 +145,18 @@ TAO::ServerRequestInfo::exceptions (void)
Dynamic::ContextList *
TAO::ServerRequestInfo::contexts (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
throw ::CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO);
}
Dynamic::RequestContext *
TAO::ServerRequestInfo::operation_context (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
throw ::CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO);
}
CORBA::Any *
TAO::ServerRequestInfo::result (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->args_ == 0)
{
@@ -189,14 +182,12 @@ TAO::ServerRequestInfo::result (void)
CORBA::Boolean
TAO::ServerRequestInfo::response_expected (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
return this->server_request_.response_expected ();
}
Messaging::SyncScope
TAO::ServerRequestInfo::sync_scope (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->server_request_.sync_with_server ())
return Messaging::SYNC_WITH_SERVER;
@@ -206,7 +197,6 @@ TAO::ServerRequestInfo::sync_scope (void)
PortableInterceptor::ReplyStatus
TAO::ServerRequestInfo::reply_status (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->server_request_.reply_status () == -1)
// A reply hasn't been received yet.
@@ -217,7 +207,6 @@ TAO::ServerRequestInfo::reply_status (void)
CORBA::Object_ptr
TAO::ServerRequestInfo::forward_reference (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->server_request_.reply_status () != PortableInterceptor::LOCATION_FORWARD)
throw ::CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 14, CORBA::COMPLETED_NO);
@@ -229,8 +218,6 @@ TAO::ServerRequestInfo::forward_reference (void)
CORBA::Any *
TAO::ServerRequestInfo::get_slot (PortableInterceptor::SlotId id)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableInterceptor::InvalidSlot))
{
// Retrieve the total number of assigned slots from the PICurrent.
// No TSS access is incurred.
@@ -254,7 +241,6 @@ TAO::ServerRequestInfo::get_slot (PortableInterceptor::SlotId id)
IOP::ServiceContext *
TAO::ServerRequestInfo::get_request_service_context (IOP::ServiceId id)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
TAO_Service_Context &service_context_list =
this->server_request_.request_service_context ();
@@ -264,7 +250,6 @@ TAO::ServerRequestInfo::get_request_service_context (IOP::ServiceId id)
IOP::ServiceContext *
TAO::ServerRequestInfo::get_reply_service_context (IOP::ServiceId id)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
TAO_Service_Context & service_context_list =
this->server_request_.reply_service_context ();
@@ -277,7 +262,6 @@ TAO::ServerRequestInfo::get_service_context_i (
TAO_Service_Context & service_context_list,
IOP::ServiceId id
)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
IOP::ServiceContext_var service_context;
@@ -298,7 +282,6 @@ TAO::ServerRequestInfo::get_service_context_i (
// with the spec.
CORBA::Any *
TAO::ServerRequestInfo::sending_exception (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->server_request_.reply_status () != PortableInterceptor::SYSTEM_EXCEPTION
&& this->server_request_.reply_status () != PortableInterceptor::USER_EXCEPTION)
@@ -330,7 +313,6 @@ TAO::ServerRequestInfo::sending_exception (void)
char *
TAO::ServerRequestInfo::server_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->servant_upcall_ != 0)
return
@@ -341,7 +323,6 @@ TAO::ServerRequestInfo::server_id (void)
char *
TAO::ServerRequestInfo::orb_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->servant_upcall_ != 0)
return
@@ -352,7 +333,6 @@ TAO::ServerRequestInfo::orb_id (void)
PortableInterceptor::AdapterName *
TAO::ServerRequestInfo::adapter_name (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
// The adapter_name attribute defines a name for the object adapter
// that services requests for the invoked object. In the case of the
@@ -368,7 +348,6 @@ TAO::ServerRequestInfo::adapter_name (void)
PortableInterceptor::ObjectId *
TAO::ServerRequestInfo::object_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->servant_upcall_ != 0)
{
@@ -408,7 +387,6 @@ TAO::ServerRequestInfo::object_id (void)
CORBA::OctetSeq *
TAO::ServerRequestInfo::adapter_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
if (this->servant_upcall_ != 0)
return this->servant_upcall_->poa ().id ();
@@ -419,7 +397,6 @@ TAO::ServerRequestInfo::adapter_id (void)
char *
TAO::ServerRequestInfo::target_most_derived_interface (
void)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
PortableServer::Servant const servant =
(this->servant_upcall_ == 0
@@ -435,9 +412,7 @@ TAO::ServerRequestInfo::target_most_derived_interface (
}
CORBA::Policy_ptr
-TAO::ServerRequestInfo::get_server_policy (CORBA::PolicyType type
- )
- ACE_THROW_SPEC ((CORBA::SystemException))
+TAO::ServerRequestInfo::get_server_policy (CORBA::PolicyType type)
{
if (this->servant_upcall_ != 0)
{
@@ -465,8 +440,6 @@ void
TAO::ServerRequestInfo::set_slot (PortableInterceptor::SlotId id,
const CORBA::Any &data
)
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableInterceptor::InvalidSlot))
{
// Retrieve the total number of assigned slots from the PICurrent
// object. No TSS access is incurred.
@@ -490,7 +463,6 @@ TAO::ServerRequestInfo::set_slot (PortableInterceptor::SlotId id,
CORBA::Boolean
TAO::ServerRequestInfo::target_is_a (const char * id
)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
// Implemented in the generated skeleton.
@@ -514,7 +486,6 @@ TAO::ServerRequestInfo::add_reply_service_context (
const IOP::ServiceContext & service_context,
CORBA::Boolean replace
)
- ACE_THROW_SPEC ((CORBA::SystemException))
{
// Get the service context from the list
TAO_Service_Context &service_context_list =
diff --git a/TAO/tao/PI_Server/ServerRequestInfo.h b/TAO/tao/PI_Server/ServerRequestInfo.h
index c19c6893f6f..d2be9d8e200 100644
--- a/TAO/tao/PI_Server/ServerRequestInfo.h
+++ b/TAO/tao/PI_Server/ServerRequestInfo.h
@@ -83,50 +83,34 @@ namespace TAO
/// Return an ID unique to the current request. This request ID may
/// or may not be the same as the GIOP request ID.
- virtual CORBA::ULong request_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::ULong request_id (void);
/// Return the operation name for the current request.
- virtual char * operation (void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual char * operation (void);
/// Return the list of arguments passed to the current operation.
- virtual Dynamic::ParameterList * arguments (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual Dynamic::ParameterList * arguments (void);
/// Return the list of exceptions the current operation is capable
/// of throwing.
- virtual Dynamic::ExceptionList * exceptions (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual Dynamic::ExceptionList * exceptions (void);
- virtual Dynamic::ContextList * contexts (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual Dynamic::ContextList * contexts (void);
- virtual Dynamic::RequestContext * operation_context (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual Dynamic::RequestContext * operation_context (void);
/// Return the result of the current request. If there is no
/// return value then an @c Any with @c tk_void @c TypeCode is
/// returned. This method is not valid for oneway operations.
- virtual CORBA::Any * result (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::Any * result (void);
/// Returns @c true for a two-way operation, and @c false otherwise.
- virtual CORBA::Boolean response_expected (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::Boolean response_expected (void);
/// Return the @c sync_scope policy value for the current one-way
/// operation. If the operation is not a one-way, a
/// @c CORBA::BAD_INV_ORDER exception is thrown.
- virtual Messaging::SyncScope sync_scope (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual Messaging::SyncScope sync_scope (void);
/// Return the reply status for the current request.
/**
@@ -134,37 +118,25 @@ namespace TAO
* @c SYSTEM_EXCEPTION, @c USER_EXCEPTION, @c LOCATION_FORWARD,
* @c TRANSPORT_RETRY, @c UNKNOWN..
*/
- virtual PortableInterceptor::ReplyStatus reply_status (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual PortableInterceptor::ReplyStatus reply_status (void);
/// If the reply status is
/// @c PortableInterceptor::LOCATION_FORWARD return the
/// object reference to which the request was forwarded.
- virtual CORBA::Object_ptr forward_reference (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException)) ;
+ virtual CORBA::Object_ptr forward_reference (void);
/// Retrieve data from the "request scope" @c PICurrent object.
- virtual CORBA::Any * get_slot (
- PortableInterceptor::SlotId id
- )
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableInterceptor::InvalidSlot));
+ virtual CORBA::Any * get_slot (PortableInterceptor::SlotId id);
/// Return the @c IOP::ServiceContext with the given
/// @c IOP::ServiceId from the request service context list.
virtual IOP::ServiceContext * get_request_service_context (
- IOP::ServiceId id
- )
- ACE_THROW_SPEC ((CORBA::SystemException));
+ IOP::ServiceId id);
/// Return the @c IOP::ServiceContext with the given
/// @c IOP::ServiceId from the reply service context list.
virtual IOP::ServiceContext * get_reply_service_context (
- IOP::ServiceId id
- )
- ACE_THROW_SPEC ((CORBA::SystemException));
+ IOP::ServiceId id);
/// Return an @c Any containing the exception being sent, if any.
/// Otherwise, throw a @c CORBA::BAD_INV_ORDER exception.
@@ -172,69 +144,48 @@ namespace TAO
* @note There is no trivial way to extract the exception from an
* @c Any.
*/
- virtual CORBA::Any * sending_exception (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::Any * sending_exception (void);
/// Return the @c ObjectId for the target object.
- virtual PortableInterceptor::ObjectId * object_id (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual PortableInterceptor::ObjectId * object_id (void);
/// Return the @c AdapterId for the POA handling the current
/// request.
- virtual CORBA::OctetSeq * adapter_id (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::OctetSeq * adapter_id (void);
/// Return the server_id of the server. The value is passed to
/// the ORB via @c -ORBServerId parameter.
- virtual char * server_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual char * server_id (void);
/// Return the ORBId value that is passed to the @c ORB_init
/// call.
- virtual char * orb_id (void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual char * orb_id (void);
/// Return the name of the object adapter that services requests
/// for the invoked object.
- virtual PortableInterceptor::AdapterName * adapter_name (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual PortableInterceptor::AdapterName * adapter_name (void);
/// Return the most derived interface of the target object.
- virtual char * target_most_derived_interface (
- void)
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual char * target_most_derived_interface (void);
/// Return the policy of the given type in effect for the current
/// request.
- virtual CORBA::Policy_ptr get_server_policy (
- CORBA::PolicyType type
- )
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::Policy_ptr get_server_policy (CORBA::PolicyType type);
/// Insert data into the "request scope" @c PICurrent object.
virtual void set_slot (PortableInterceptor::SlotId id,
- const CORBA::Any & data
- )
- ACE_THROW_SPEC ((CORBA::SystemException,
- PortableInterceptor::InvalidSlot));
+ const CORBA::Any & data);
/// Returns true if the target's type corresponds to the given
/// @c RepositoryId.
- virtual CORBA::Boolean target_is_a (const char * id
- )
- ACE_THROW_SPEC ((CORBA::SystemException));
+ virtual CORBA::Boolean target_is_a (const char * id);
/// Add the @c IOP::ServiceContext to the reply (outgoing)
/// @c IOP::ServiceContextList.
virtual void add_reply_service_context (
const IOP::ServiceContext & service_context,
CORBA::Boolean replace
- )
- ACE_THROW_SPEC ((CORBA::SystemException));
+ );
public:
@@ -270,8 +221,7 @@ namespace TAO
IOP::ServiceContext * get_service_context_i (
TAO_Service_Context & service_context_list,
IOP::ServiceId id
- )
- ACE_THROW_SPEC ((CORBA::SystemException));
+ );
protected:
diff --git a/TAO/tao/PI_Server/ServerRequestInterceptorC.h b/TAO/tao/PI_Server/ServerRequestInterceptorC.h
index 0414e800f56..bea14050e88 100644
--- a/TAO/tao/PI_Server/ServerRequestInterceptorC.h
+++ b/TAO/tao/PI_Server/ServerRequestInterceptorC.h
@@ -43,7 +43,6 @@
#include "tao/PI_Server/pi_server_export.h"
#include "tao/ORB.h"
#include "tao/SystemException.h"
-#include "tao/Environment.h"
#include "tao/Object.h"
#include "tao/Objref_VarOut_T.h"
@@ -155,10 +154,7 @@ namespace PortableInterceptor
::CORBA::OctetSeq_out os
)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::PortableInterceptor::ForwardRequest
- )) {}
+ {}
#endif /* TAO_HAS_EXTENDED_FT_INTERCEPTORS */
@@ -167,12 +163,8 @@ namespace PortableInterceptor
virtual void receive_request_service_contexts (
::PortableInterceptor::ServerRequestInfo_ptr ri
-
)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::PortableInterceptor::ForwardRequest
- )) = 0;
+ = 0;
// TAO_IDL - Generated from
// be\be_visitor_operation/operation_ch.cpp:46
@@ -181,10 +173,7 @@ namespace PortableInterceptor
::PortableInterceptor::ServerRequestInfo_ptr ri
)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::PortableInterceptor::ForwardRequest
- )) = 0;
+ = 0;
// TAO_IDL - Generated from
// be\be_visitor_operation/operation_ch.cpp:46
@@ -193,9 +182,7 @@ namespace PortableInterceptor
::PortableInterceptor::ServerRequestInfo_ptr ri
)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException
- )) = 0;
+ = 0;
// TAO_IDL - Generated from
// be\be_visitor_operation/operation_ch.cpp:46
@@ -204,10 +191,7 @@ namespace PortableInterceptor
::PortableInterceptor::ServerRequestInfo_ptr ri
)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::PortableInterceptor::ForwardRequest
- )) = 0;
+ = 0;
// TAO_IDL - Generated from
// be\be_visitor_operation/operation_ch.cpp:46
@@ -216,10 +200,7 @@ namespace PortableInterceptor
::PortableInterceptor::ServerRequestInfo_ptr ri
)
- ACE_THROW_SPEC ((
- ::CORBA::SystemException,
- ::PortableInterceptor::ForwardRequest
- )) = 0;
+ = 0;
// TAO_IDL - Generated from
// be\be_visitor_interface/interface_ch.cpp:210