Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
levin_client.h
Go to the documentation of this file.
1
// Copyright (c) 2006-2013, Andrey N. Sabelnikov, www.sabelnikov.net
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met:
6
// * Redistributions of source code must retain the above copyright
7
// notice, this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above copyright
9
// notice, this list of conditions and the following disclaimer in the
10
// documentation and/or other materials provided with the distribution.
11
// * Neither the name of the Andrey N. Sabelnikov nor the
12
// names of its contributors may be used to endorse or promote products
13
// derived from this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER BE LIABLE FOR ANY
19
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
//
26
27
28
29
30
31
#ifndef _LEVIN_CLIENT_H_
32
#define _LEVIN_CLIENT_H_
33
34
#include "
net_helper.h
"
35
#include "
levin_base.h
"
36
37
38
#ifndef MAKE_IP
39
#define MAKE_IP( a1, a2, a3, a4 ) (a1|(a2<<8)|(a3<<16)|(a4<<24))
40
#endif
41
42
namespace
epee
43
{
44
namespace
levin
45
{
46
/************************************************************************/
47
/* */
48
/************************************************************************/
49
class
levin_client_impl
50
{
51
public
:
52
levin_client_impl
();
53
virtual
~levin_client_impl
();
54
55
bool
connect
(u_long ip,
int
port,
unsigned
int
timeout,
const
std::string& bind_ip =
"0.0.0.0"
);
56
bool
connect
(
const
std::string& addr,
int
port,
unsigned
int
timeout,
const
std::string& bind_ip =
"0.0.0.0"
);
57
bool
is_connected
();
58
bool
disconnect
();
59
60
virtual
int
invoke
(
int
command,
const
epee::span<const uint8_t>
in_buff, std::string& buff_out);
61
virtual
int
notify
(
int
command,
const
std::string& in_buff);
62
63
protected
:
64
net_utils::blocked_mode_client
m_transport
;
65
};
66
67
68
/************************************************************************/
69
/* */
70
/************************************************************************/
71
class
levin_client_impl2
:
public
levin_client_impl
72
{
73
public
:
74
75
int
invoke
(
int
command,
const
epee::span<const uint8_t>
in_buff, std::string& buff_out);
76
int
notify
(
int
command,
const
std::string& in_buff);
77
};
78
79
}
80
namespace
net_utils
81
{
82
typedef
levin::levin_client_impl
levin_client
;
83
typedef
levin::levin_client_impl2
levin_client2
;
84
}
85
}
86
87
#include "levin_client.inl"
88
89
#endif
//_LEVIN_CLIENT_H_
epee::levin::levin_client_impl2
Definition
levin_client.h:72
epee::levin::levin_client_impl2::notify
int notify(int command, const std::string &in_buff)
epee::levin::levin_client_impl2::invoke
int invoke(int command, const epee::span< const uint8_t > in_buff, std::string &buff_out)
epee::levin::levin_client_impl
Definition
levin_client.h:50
epee::levin::levin_client_impl::invoke
virtual int invoke(int command, const epee::span< const uint8_t > in_buff, std::string &buff_out)
epee::levin::levin_client_impl::is_connected
bool is_connected()
epee::levin::levin_client_impl::connect
bool connect(u_long ip, int port, unsigned int timeout, const std::string &bind_ip="0.0.0.0")
epee::levin::levin_client_impl::connect
bool connect(const std::string &addr, int port, unsigned int timeout, const std::string &bind_ip="0.0.0.0")
epee::levin::levin_client_impl::m_transport
net_utils::blocked_mode_client m_transport
Definition
levin_client.h:64
epee::levin::levin_client_impl::levin_client_impl
levin_client_impl()
epee::levin::levin_client_impl::disconnect
bool disconnect()
epee::levin::levin_client_impl::notify
virtual int notify(int command, const std::string &in_buff)
epee::levin::levin_client_impl::~levin_client_impl
virtual ~levin_client_impl()
epee::net_utils::blocked_mode_client
Definition
net_helper.h:71
epee::span
Non-owning sequence of data. Does not deep copy.
Definition
span.h:57
levin_base.h
epee::levin
Definition
levin_base.h:39
epee::net_utils
Definition
gzip_encoding.h:40
epee::net_utils::levin_client2
levin::levin_client_impl2 levin_client2
Definition
levin_client.h:83
epee::net_utils::levin_client
levin::levin_client_impl levin_client
Definition
levin_client.h:82
epee
Definition
ado_db_helper.h:67
net_helper.h
contrib
epee
include
net
levin_client.h
Generated on
for Electroneum by
1.17.0