1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * Copyright (C) 2012 Tobias Brunner
- * Copyright (C) 2005-2007 Martin Willi
- * Copyright (C) 2005 Jan Hutter
- * HSR Hochschule fuer Technik Rapperswil
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- */
- /**
- * @defgroup sender sender
- * @{ @ingroup network
- */
- #ifndef SENDER_H_
- #define SENDER_H_
- typedef struct sender_t sender_t;
- #include <library.h>
- #include <networking/packet.h>
- /**
- * Callback job responsible for sending IKE packets over the socket.
- */
- struct sender_t {
- /**
- * Send a packet over the network.
- *
- * This function is non blocking and adds the packet to a queue.
- * Whenever the sender thread thinks it's good to send the packet,
- * it'll do so.
- *
- * @param packet packet to send
- */
- void (*send) (sender_t *this, packet_t *packet);
- /**
- * The same as send() but does not add Non-ESP markers automatically.
- *
- * @param packet packet to send
- */
- void (*send_no_marker) (sender_t *this, packet_t *packet);
- /**
- * Enforce a flush of the send queue.
- *
- * This function blocks until all queued packets have been sent.
- */
- void (*flush)(sender_t *this);
- /**
- * Destroys a sender object.
- */
- void (*destroy) (sender_t *this);
- };
- /**
- * Create the sender thread.
- *
- * The thread will start to work, getting packets
- * from its queue and sends them out.
- *
- * @return created sender object
- */
- sender_t * sender_create(void);
- #endif /** SENDER_H_ @}*/
|