2014-11-17 20:37:40 +03:00
# ifndef API_H__
# define API_H__
2014-11-18 01:00:30 +03:00
# include "Identity.h"
2014-11-18 17:33:58 +03:00
# include "Destination.h"
# include "Streaming.h"
2014-11-18 01:00:30 +03:00
2014-11-17 20:37:40 +03:00
namespace i2p
{
namespace api
{
2014-11-18 17:33:58 +03:00
// initialization start and stop
void InitI2P ( int argc , char * argv [ ] , const char * appName ) ;
2014-11-17 22:42:45 +03:00
void StartI2P ( ) ;
void StopI2P ( ) ;
2014-11-18 01:00:30 +03:00
2014-11-18 17:33:58 +03:00
// destinations
i2p : : client : : ClientDestination * CreateLocalDestination ( const i2p : : data : : PrivateKeys & keys , bool isPublic = true ) ;
i2p : : client : : ClientDestination * CreateLocalDestination ( bool isPublic = false , i2p : : data : : SigningKeyType sigType = i2p : : data : : SIGNING_KEY_TYPE_DSA_SHA1 ) ; // transient destinations usually not published
2014-11-18 01:00:30 +03:00
void DestoroyLocalDestination ( i2p : : client : : ClientDestination * dest ) ;
2014-11-18 17:33:58 +03:00
// streams
void RequestLeaseSet ( i2p : : client : : ClientDestination * dest , const i2p : : data : : IdentHash & remote ) ;
i2p : : stream : : Stream * CreateStream ( i2p : : client : : ClientDestination * dest , const i2p : : data : : IdentHash & remote ) ;
void AcceptStream ( i2p : : client : : ClientDestination * dest , const i2p : : stream : : StreamingDestination : : Acceptor & acceptor ) ;
void DestroyStream ( i2p : : stream : : Stream * stream ) ;
2014-11-17 20:37:40 +03:00
}
}
# endif