1
0
mirror of https://github.com/deavmi/birchwood synced 2024-09-20 06:23:15 +02:00

- Disabled unimplemented methods with @disable

- Added ddoc headers to methods
This commit is contained in:
Tristan B. Velloza Kildaire 2022-11-05 12:53:31 +02:00
parent 919a0d09e9
commit 3f95a48186

View File

@ -246,34 +246,53 @@ public final class Client : Thread
logger.log("Response("~to!(string)(commandReply.replyType)~"): "~commandReply.toString()); logger.log("Response("~to!(string)(commandReply.replyType)~"): "~commandReply.toString());
} }
/* TODO: Decide on object to return */
// public string
/** /**
* User operations (request-response type) * User operations (request-response type)
*/ */
/**
* Joins the requested channel
*
* Params:
* channel = the channel to join
*/
public void joinChannel(string channel) public void joinChannel(string channel)
{ {
/* Join the channel */ /* Join the channel */
sendMessage("JOIN "~channel); sendMessage("JOIN "~channel);
} }
public void directMessage(string[] recipients)
{
//TODO: Implement
}
public void channelMessage(string channel)
{
//TODO: Implement
}
// private void makeRequest()
/** /**
* Issue a generic command * Sends a direct message to the intended recipients
*
* Params:
* message = The message to send
* recipients = The receipients of the message
*/
@disable
public void directMessage(string message, string[] recipients)
{
//TODO: Implement
}
/**
* Sends a message to a given channel
*
* Params:
* message = The message to send
* channel = The channel to send the message to
*/
@disable
public void channelMessage(string message, string channel)
{
//TODO: Implement
}
/**
* Issues a command to the server
*
* Params:
* message = the Message object containing the command to issue
*/ */
public void command(Message message) public void command(Message message)
{ {
@ -389,6 +408,12 @@ public final class Client : Thread
/** /**
* Connects to the server * Connects to the server
*/ */
/**
* Connects to the server
*
* Throws: BirchwoodException
*/
public void connect() public void connect()
{ {
if(socket is null) if(socket is null)
@ -435,16 +460,13 @@ public final class Client : Thread
} }
ulong j = 0; /**
// bool f = true; * Adds a given message onto the receieve queue for
* later processing by the receieve queue worker thread
/** *
* We need to create a queue of messages and then have a seperate thread * Params:
* go through them, such as replying to pings etc. * message = the message to enqueue to the receieve queue
* */
* We should maybe have two quues, urgent ones (for pings coming in)
* of which we check first and then everything else into another queue
*/
private void receiveQ(ubyte[] message) private void receiveQ(ubyte[] message)
{ {
/* Lock queue */ /* Lock queue */
@ -472,6 +494,17 @@ public final class Client : Thread
* *
* TODO: Do decode here and triggering of events here * TODO: Do decode here and triggering of events here
*/ */
/**
* The receive queue worker function
*
* This has the job of dequeuing messages
* in the receive queue, decoding them
* into Message objects and then emitting
* an event depending on the type of message
*
* Handles PINGs along with normal messages
*/
private void recvHandlerFunc() private void recvHandlerFunc()
{ {
while(running) while(running)
@ -579,6 +612,9 @@ public final class Client : Thread
} }
} }
/**
* The send queue worker function
*/
private void sendHandlerFunc() private void sendHandlerFunc()
{ {
/* TODO: Hoist up into ConnInfo */ /* TODO: Hoist up into ConnInfo */
@ -616,6 +652,14 @@ public final class Client : Thread
* This allows us to intrpoduce fakelag and also prioritse pongs (we should * This allows us to intrpoduce fakelag and also prioritse pongs (we should
* send them via here) * send them via here)
*/ */
/**
* Sends a message to the server by enqueuing it on
* the client-side send queue
*
* Params:
* messageOut = the message to send
*/
private void sendMessage(string messageOut) private void sendMessage(string messageOut)
{ {
/* Encode the mesage */ /* Encode the mesage */
@ -677,6 +721,13 @@ public final class Client : Thread
logger.log("disconnect() end"); logger.log("disconnect() end");
} }
/**
* Called by the main loop thread to process the received
* and CRLF-delimited message
*
* Params:
* message = the message to add to the receive queue
*/
private void processMessage(ubyte[] message) private void processMessage(ubyte[] message)
{ {
// import std.stdio; // import std.stdio;
@ -687,10 +738,8 @@ public final class Client : Thread
} }
/** /**
* TODO: Determine how we want to do this * The main loop for the Client thread which receives data
* * sent from the server
* This simply receives messages from the server,
* parses them and puts them into the receive queue
*/ */
private void loop() private void loop()
{ {