1 // Copyright Maciej Sobczak 2008-2019. 2 // This file is part of YAMI4. 3 // 4 // YAMI4 is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // YAMI4 is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with YAMI4. If not, see <http://www.gnu.org/licenses/>. 16 17 #ifndef YAMICORE_DETAILS_FWD_H_INCLUDED 18 #define YAMICORE_DETAILS_FWD_H_INCLUDED 19 20 namespace yami 21 { 22 23 namespace details 24 { 25 26 class allocator; 27 struct entry; 28 29 class fsm_common; 30 class get_serialize_buffer_size_fsm; 31 class serialize_fsm; 32 class deserialize_fsm; 33 34 struct outgoing_frame; 35 struct incoming_frame; 36 struct incoming_message_frame_list; 37 38 class channel; 39 class channel_holder; 40 class listener; 41 class channel_group; 42 class mutex; 43 struct options; 44 45 enum protocol 46 { 47 proto_tcp, 48 proto_udp, 49 proto_unix, 50 proto_file 51 #ifdef YAMI4_WITH_QNX 52 , proto_qnx 53 #endif // YAMI4_WITH_QNX 54 #ifdef YAMI4_WITH_OPEN_SSL 55 , proto_tcps 56 #endif // YAMI4_WITH_OPEN_SSL 57 }; 58 59 enum io_direction { none, input, output, inout }; 60 61 class dump_sink; 62 63 } // namespace details 64 65 } // namespace yami 66 67 #endif // YAMICORE_DETAILS_FWD_H_INCLUDED 68