 27043570d9
			
		
	
	
	
	
	27043570d9* Improve compile times * Fix tests * Use loopback address in config * Fix config tests * Hopefully fixes rpc.version test * Fix -DNANO_TIMED_LOCKS build * Formatting * Formatting
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			924 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			924 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <nano/node/node_observers.hpp>
 | |
| 
 | |
| #include <string>
 | |
| 
 | |
| namespace nano
 | |
| {
 | |
| class node;
 | |
| 
 | |
| enum class payment_status
 | |
| {
 | |
| 	not_a_status,
 | |
| 	unknown,
 | |
| 	nothing, // Timeout and nothing was received
 | |
| 	//insufficient, // Timeout and not enough was received
 | |
| 	//over, // More than requested received
 | |
| 	//success_fork, // Amount received but it involved a fork
 | |
| 	success // Amount received
 | |
| };
 | |
| class json_payment_observer final : public std::enable_shared_from_this<nano::json_payment_observer>
 | |
| {
 | |
| public:
 | |
| 	json_payment_observer (nano::node &, std::function<void(std::string const &)> const &, nano::account const &, nano::amount const &);
 | |
| 	void start (uint64_t);
 | |
| 	void observe ();
 | |
| 	void complete (nano::payment_status);
 | |
| 	std::mutex mutex;
 | |
| 	nano::condition_variable condition;
 | |
| 	nano::node & node;
 | |
| 	nano::account account;
 | |
| 	nano::amount amount;
 | |
| 	std::function<void(std::string const &)> response;
 | |
| 	std::atomic_flag completed;
 | |
| };
 | |
| }
 |