#pragma once #include #include "LNContext.h" #include #include class CLNAcceptor : public CAcceptor { public: CLNAcceptor(CProtocolHandler *); virtual ~CLNAcceptor(void); friend class CLNHandle; virtual CLNContext* make_handler(); void Lock() { cs.Lock(); } void Unlock() { cs.Unlock(); } virtual void OnClearContext(); //定时清除链接 void ClearAllContexts(); //清除所有链接 int GetContextNum(); //查找链接 CLNContext* FindContext(DWORD_PTR pContext); CLNContext* FindContextByIMEI(const char *imei); void SendDataAllContexts(uint8_t* data, size_t len); CLNContext* FindContextByIVU(const char *imei); void GetAllContextImei(std::list& lst); int validate_connection(const ACE_Asynch_Accept::Result& result, const ACE_INET_Addr& remote, const ACE_INET_Addr& local) override; protected: CCriticalSection cs; std::list m_lstClientContext; CProtocolHandler *m_pHandler = nullptr; };