gRPC Mission Database
gRPC Database Communication Module
Note
Implements both client and server components for: - Sending database requests via client - Receiving database responses via server - Queue-based message buffering - Thread-managed communication channels
- class grpc_mission_db.DBRespCommunicationService(*args: Any, **kwargs: Any)[source]
Bases:
DBRespCommunicationServicergRPC servicer for handling database responses from the Database subsystem.
- receive_db_queue
Queue for incoming database responses
- Type:
queue.Queue
- mission_logger
Configured logger instance
- Type:
logging.Logger
- __init__(receive_db_queue: Queue, mission_logger: Logger) None[source]
Initialize the response servicer.
- Parameters:
receive_db_queue – Queue for storing incoming database responses
mission_logger – Configured logger for mission operations
- SendDBResp(request: GRPC.db_request_pb2.DBReqRequest, context: grpc.ServicerContext) GRPC.db_response_pb2.DBRespResponse[source]
Handle incoming database response messages.
- Parameters:
request – Incoming gRPC request message
context – gRPC connection context
- Returns:
Response confirmation message
- Return type:
DBRespResponse
Example
>>> service.SendDBResp(DBReqRequest(db_response=["test"]), None) DBRespResponse(confirmation="Feedback received")
- grpc_mission_db.run_client(send_db_queue: Queue, mission_logger: Logger) None[source]
Continuous client operation for sending database requests.
- Parameters:
send_db_queue – Queue containing outgoing database requests
mission_logger – Configured logger instance
- Raises:
grpc.RpcError – For communication failures with the database service
- grpc_mission_db.run_server(receive_db_queue: Queue, mission_logger: Logger) None[source]
Start and maintain the gRPC response server.
- Parameters:
receive_db_queue – Queue for storing incoming responses
mission_logger – Configured logger instance
- Raises:
KeyboardInterrupt – Propagates keyboard interrupts for clean shutdown
- grpc_mission_db.start_grpc_mission_db(send_db_queue: Queue, receive_db_queue: Queue, mission_logger: Logger) None[source]
Initialize and start gRPC communication components.
- Parameters:
send_db_queue – Queue for outgoing database requests
receive_db_queue – Queue for incoming database responses
mission_logger – Configured logger instance
Example
>>> start_grpc_mission_db(send_q, receive_q, logger)