ccproxy.claude_sdk.message_queue¶
ccproxy.claude_sdk.message_queue
¶
Message queue system for broadcasting SDK messages to multiple listeners.
QueueMessage
dataclass
¶
QueueMessage(type, data=None, error=None, timestamp=time())
Message wrapper for queue communication.
QueueListener
¶
Individual listener that consumes messages from the queue.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
listener_id
|
str | None
|
Optional ID for the listener, generated if not provided |
None
|
Source code in ccproxy/claude_sdk/message_queue.py
get_message
async
¶
Get the next message from the queue.
Returns:
Type | Description |
---|---|
QueueMessage
|
The next queued message |
Raises:
Type | Description |
---|---|
QueueEmpty
|
If queue is empty and closed |
Source code in ccproxy/claude_sdk/message_queue.py
put_message
async
¶
Put a message into this listener's queue.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
QueueMessage
|
Message to queue |
required |
close
¶
Close the listener, preventing new messages.
Source code in ccproxy/claude_sdk/message_queue.py
MessageQueue
¶
Message queue that broadcasts to multiple listeners with discard logic.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
max_listeners
|
int
|
Maximum number of concurrent listeners |
100
|
Source code in ccproxy/claude_sdk/message_queue.py
create_listener
async
¶
Create a new listener for this queue.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
listener_id
|
str | None
|
Optional ID for the listener |
None
|
Returns:
Type | Description |
---|---|
QueueListener
|
A new QueueListener instance |
Raises:
Type | Description |
---|---|
RuntimeError
|
If max listeners exceeded |
Source code in ccproxy/claude_sdk/message_queue.py
remove_listener
async
¶
Remove a listener from the queue.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
listener_id
|
str
|
ID of the listener to remove |
required |
Source code in ccproxy/claude_sdk/message_queue.py
has_listeners
async
¶
Check if any active listeners exist.
Returns:
Type | Description |
---|---|
bool
|
True if at least one listener is registered |
get_listener_count
async
¶
Get the current number of active listeners.
Returns:
Type | Description |
---|---|
int
|
Number of active listeners |
broadcast
async
¶
Broadcast a message to all active listeners.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
Any
|
The message to broadcast |
required |
Returns:
Type | Description |
---|---|
int
|
Number of listeners that received the message |
Source code in ccproxy/claude_sdk/message_queue.py
broadcast_error
async
¶
Broadcast an error to all listeners.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
error
|
Exception
|
The error to broadcast |
required |
Source code in ccproxy/claude_sdk/message_queue.py
broadcast_complete
async
¶
Broadcast completion signal to all listeners.
Source code in ccproxy/claude_sdk/message_queue.py
broadcast_shutdown
async
¶
Broadcast shutdown signal to all listeners (for interrupts).
Source code in ccproxy/claude_sdk/message_queue.py
close
async
¶
Close the message queue and all listeners.
Source code in ccproxy/claude_sdk/message_queue.py
get_stats
¶
Get queue statistics.
Returns:
Type | Description |
---|---|
dict[str, Any]
|
Dictionary of queue statistics |