⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connector.tcc

📁 大名鼎鼎的嵌入式操作系统vxworks的完整的源代码
💻 TCC
字号:
/* Connector - Encapsulates a Socket connection *//* Copyright (c) 1999 Wind River Systems, Inc. *//*modification history--------------------01a,05jun99,aim  created*/#include "Connector.h"#ifndef __INCConnector_tcc_#define __INCConnector_tcc_template <class SVC_HANDLER, PEER_CONNECTOR_1>Connector<SVC_HANDLER, PEER_CONNECTOR_2>::Connector (Reactor* r)  : m_connector (),    m_closing (false)    {    TRACE_CALL;    reactorSet (r);    }template <class SVC_HANDLER, PEER_CONNECTOR_1>Connector<SVC_HANDLER, PEER_CONNECTOR_2>::~Connector ()    {    handleClose ();    TRACE_CALL;    }template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::handleClose    (    REACTOR_HANDLE,    REACTOR_EVENT_MASK mask    )    {    TRACE_CALL;    m_closing = true;    return 0;    }template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::connectSvcHandler    (    const PEER_CONNECTOR_ADDR& remoteAddr,    SVC_HANDLER*& svcHandler    )    {    TRACE_CALL;    if (newSvcHandler (svcHandler) < 0)	return -1;    if (m_connector.connect (svcHandler->stream (), remoteAddr) < 0)	return -1;    return activateSvcHandler (svcHandler);    }template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::newSvcHandler    (    SVC_HANDLER*& svcHandler    )    {    TRACE_CALL;    if (svcHandler == 0)	svcHandler = new SVC_HANDLER(reactorGet ());    return svcHandler ? 0 : -1;}template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::activateSvcHandler    (    SVC_HANDLER* svcHandler    )    {    TRACE_CALL;    if (svcHandler->open (this) < 0)	svcHandler->close ();	// avoid fd leaks    return svcHandler->stream().handleInvalid () ? -1 : 0;    }template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::open (Reactor *r)    {    TRACE_CALL;    reactorSet (r);    m_closing = false;    return 0;    }template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::connect    (    const PEER_CONNECTOR_ADDR& remoteAddr,    SVC_HANDLER*& svcHandler    )    {    TRACE_CALL;    return connectSvcHandler (remoteAddr, svcHandler);    }template <class SVC_HANDLER, PEER_CONNECTOR_1> intConnector<SVC_HANDLER, PEER_CONNECTOR_2>::close ()    {    TRACE_CALL;    return handleClose ();    }#endif __INCConnector_tcc_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -