Livt packages

Livt.Net

Version 1.4.1

Ethernet, IPv4, TCP, UDP, ARP, TFTP, and Telnet networking components for Livt hardware.

Published files (163)

src/services/IResponseService.lvt

namespace Livt.Net

/**
 * Outcome of checked, serialized request handling. Busy preserves the old response.
 */
enum ServiceResult
{
	Prepared
	Ignored
	NotReady
	Busy
	Invalid
}

/**
 * A fixed request handler and its independently owned prepared response.
 * TryHandle snapshots everything needed before returning: the request may then be
 * released. One owner serializes calls in one clock/reset domain. Keep the response
 * unchanged through all reads and TX borrows; coordinated reset stops all users.
 */
interface IResponseService : IPacketData
{
	/**
	 * Handles the constructor-bound published request. Prepared publishes a response;
	 * Ignored/Invalid/NotReady publish none. Busy leaves an existing response intact.
	 * No request view survives the call, including on rejection.
	 */
	fn TryHandle() ServiceResult

	/**
	 * Releases a prepared response after all readers and TX borrows have ended.
	 * Invalid means no prepared response. Borrow lifetime is coordinated by the owner.
	 */
	fn TryReleaseResponse() PacketDataResult
}