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: DBRespCommunicationServicer

gRPC 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)