9 #ifndef anna_comm_Communicator_hpp 10 #define anna_comm_Communicator_hpp 45 class LocalConnection;
46 class RemoteConnection;
53 class ConnectionRecover;
56 class LocalConnection;
57 class RemoteConnection;
80 struct SortByFileDescriptor {
81 static int value(
const Handler*) ;
159 static const int MinReceivingChunkSize = 2 * 1024;
164 static const int MaxReceivingChunkSize = 64 * 1024;
175 static const int DefaultChunkSize = 16 * 1024;
250 void setRecoveryTime(
const Millisecond &recoveryTime) noexcept(
false);
261 void setTryingConnectionTime(
const Millisecond &tryingConnectionTime) noexcept(
false);
279 static void setReceivingChunkSize(
const int receivingChunkSize) noexcept(
false);
302 void setLevelOfDenialService(
const int levelOfDenialService) noexcept(
false);
318 void attach(
ServerSocket* serverSocket) noexcept(
false);
340 void attach(
ClientSocket* clientSocket) noexcept(
false);
355 void attach(
Handler* handler) noexcept(
false);
364 void attach(
Service* service) noexcept(
false);
391 void detach(
Handler* handler) ;
407 void accept() noexcept(
false);
453 const_handler_iterator
handler_end()
const {
return a_handlers.end(); }
465 const_service_iterator
service_end()
const {
return a_services.end(); }
483 virtual void eventUser(
const char*
id,
const void* context) {;}
498 virtual void eventBreakAddress(
const in_addr_t& address) ;
513 virtual void eventRecoverAddress(
const in_addr_t& address) ;
530 virtual bool eventAcceptConnection(
const ClientSocket& clientSocket) noexcept(
false);
547 virtual void eventCreateConnection(
const Server* server) ;
564 virtual void eventCreateConnection(
const Service* service) ;
585 noexcept(
false) { ; }
614 std::string asString()
const ;
635 static const Handler*
handler(const_handler_iterator& ii) {
return Handlers::data(ii); }
649 static const char*
getClassName() {
return "anna::comm::Communicator"; }
702 virtual void eventBreakConnection(
const Server* server) ;
712 virtual void eventBreakConnection(
const Service* service) ;
733 virtual void setStatus(
const Status& status) ;
744 void attach(
BinderSocket* binderSocket) noexcept(
false);
773 virtual void eventShutdown() ;
778 bool a_requestedStop;
788 int a_levelOfDenialService;
792 Handlers a_timedouts;
793 void singlethreadedAccept() noexcept(
false);
797 void multithreadedAccept() noexcept(
false);
803 void insert(
Handler*) noexcept(
false);
804 Handler* find(
const int fd) {
return a_handlers.
find(fd); }
807 void do_cloneParent() noexcept(
false);
808 void do_cloneChild() ;
Definition: ClientSocket.hpp:22
container::iterator iterator
Definition: SortedVector.hpp:33
const_handler_iterator handler_end() const
Definition: Communicator.hpp:453
Definition: Communicator.hpp:79
virtual void eventBreakLocalConnection(const ClientSocket &clientSocket)
Definition: Communicator.hpp:676
Handlers::iterator handler_iterator
Definition: Communicator.hpp:179
Definition: Millisecond.hpp:24
virtual void eventBreakConnection(const ClientSocket &clientSocket)
Definition: Communicator.hpp:665
Definition: Status.hpp:21
static const Millisecond MaxTryingConnectionTime
Definition: Communicator.hpp:154
Handlers::const_iterator const_handler_iterator
Definition: Communicator.hpp:178
static const Millisecond MaxRecoveryTime
Definition: Communicator.hpp:136
static const Handler * handler(const_handler_iterator &ii)
Definition: Communicator.hpp:635
virtual void eventStartup() noexcept(false)
Definition: Communicator.hpp:764
Definition: ThreadManager.hpp:27
virtual void eventDiscardConnection(const ClientSocket &clientSocket)
Definition: Communicator.hpp:600
const Millisecond & getTimeout() const
Definition: Communicator.hpp:215
virtual void eventUser(const char *id, const void *context)
Definition: Communicator.hpp:483
Definition: Server.hpp:53
static const Millisecond MinTryingConnectionTime
Definition: Communicator.hpp:142
Definition: LocalConnection.hpp:31
virtual void do_initialize() noexcept(false)
Definition: Communicator.hpp:721
Definition: LocalConnection.hpp:22
const_service_iterator service_begin() const
Definition: Communicator.hpp:459
bool hasRequestedStop() const
Definition: Communicator.hpp:234
virtual void eventOverQuota(const ClientSocket &clientSocket)
Definition: Communicator.hpp:592
int handler_size() const
Definition: Communicator.hpp:429
_v
Definition: Communicator.hpp:97
Definition: ClientSocket.hpp:38
Services::const_iterator const_service_iterator
Definition: Communicator.hpp:182
static const Millisecond DefaultTryingConnectionTime
Definition: Communicator.hpp:148
bool isServing() const
Definition: Communicator.hpp:228
void notifyPendingClose()
Definition: Communicator.hpp:239
virtual void eventReceiveMessage(ClientSocket &clientSocket, const Message &message) noexcept(false)
Definition: Communicator.hpp:584
Definition: Message.hpp:26
virtual void eventIgnoreBurst(const ClientSocket &clientSocket, const DataBlock &burst)
Definition: Communicator.hpp:608
const Status & getStatus() const
Definition: Communicator.hpp:207
static const Millisecond DefaultRecoveryTime
Definition: Communicator.hpp:130
WorkMode::_v getWorkMode() const
Definition: Communicator.hpp:220
Definition: Communicator.hpp:104
handler_iterator handler_end()
Definition: Communicator.hpp:441
Definition: BinderSocket.hpp:27
static int getReceivingChunkSize()
Definition: Communicator.hpp:285
Definition: ServerSocket.hpp:37
static const Service * service(const_service_iterator &ii)
Definition: Communicator.hpp:642
xml::Node Node
Definition: Node.hpp:21
const_handler_iterator handler_begin() const
Definition: Communicator.hpp:447
container::const_iterator const_iterator
Definition: SortedVector.hpp:34
Definition: DatagramSocket.hpp:21
const Millisecond & getRecoveryTime() const
Definition: Communicator.hpp:201
Definition: Component.hpp:44
int getLevelOfDenialService() const
Definition: Communicator.hpp:308
Definition: Communicator.hpp:96
void setTimeout(const Millisecond &timeout)
Definition: Communicator.hpp:292
static const Millisecond DefaultTimeout
Definition: Communicator.hpp:170
Definition: RemoteConnection.hpp:23
Definition: Handler.hpp:33
static Handler * handler(handler_iterator &ii)
Definition: Communicator.hpp:628
Definition: RemoteConnection.hpp:22
static const char * getClassName()
Definition: Communicator.hpp:649
const Millisecond & getTryingConnectionTime() const
Definition: Communicator.hpp:266
Definition: ConnectionRecover.hpp:27
handler_iterator handler_begin()
Definition: Communicator.hpp:435
SortedVector< Handler, SortByFileDescriptor > Handlers
Definition: Communicator.hpp:177
Definition: DataBlock.hpp:24
T * find(const TKey key)
Definition: SortedVector.hpp:113
void do_stop()
Definition: Communicator.hpp:727
std::vector< const Service * > Services
Definition: Communicator.hpp:181
static const Millisecond MinRecoveryTime
Definition: Communicator.hpp:124
Definition: Service.hpp:28
const_service_iterator service_end() const
Definition: Communicator.hpp:465