docs: document remaining queue service layouts
This commit is contained in:
110
src/nwbind.c
110
src/nwbind.c
@@ -2352,7 +2352,14 @@ static void handle_fxx(int gelen, int func)
|
||||
break;
|
||||
|
||||
case 0x6f : { /* attach server to queue */
|
||||
/* from pserver */
|
||||
/*
|
||||
* SDK 23/111 / wire 0x6f Attach Queue Server To Queue.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* Reply: no data.
|
||||
* Parser comparison matches the documented queue-server
|
||||
* attach layout.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
int result=nw_attach_server_to_queue(
|
||||
act_c->object_id,
|
||||
@@ -2365,7 +2372,14 @@ static void handle_fxx(int gelen, int func)
|
||||
break;
|
||||
|
||||
case 0x70 : { /* detach server from queue */
|
||||
/* from pserver */
|
||||
/*
|
||||
* SDK 23/112 / wire 0x70 Detach Queue Server From Queue.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* Reply: no data.
|
||||
* Parser comparison matches the documented queue-server
|
||||
* detach layout.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
int result=nw_detach_server_from_queue(
|
||||
act_c->object_id,
|
||||
@@ -2380,6 +2394,20 @@ static void handle_fxx(int gelen, int func)
|
||||
case 0x78: /* Get Queue Job File Size (old) */
|
||||
case 0x87: /* Get Queue Job File Size */
|
||||
{
|
||||
/*
|
||||
* SDK 23/120 / wire 0x78 Get Queue Job File Size (old)
|
||||
* and SDK 23/135 / wire 0x87 Get Queue Job File Size.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* word JobNumber (Hi-Lo) for old wire 0x78
|
||||
* long JobNumber for newer wire 0x87
|
||||
* Reply documented by the WebSDK queue pages:
|
||||
* long QueueID, long JobNumber, long FileSize.
|
||||
* Parser/reply comparison: both variants currently consume
|
||||
* a 16-bit JobNumber. The old reply returns a 16-bit
|
||||
* JobNumber, and the newer reply pads that 16-bit value to
|
||||
* four bytes instead of serializing a true long.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
uint32 job_id = (ufunc==0x78)
|
||||
? GET_BE16(rdata+4)
|
||||
@@ -2405,6 +2433,19 @@ static void handle_fxx(int gelen, int func)
|
||||
|
||||
case 0x71 : /* service queue job old */
|
||||
case 0x7c : { /* service queue job */
|
||||
/*
|
||||
* SDK 23/113 / wire 0x71 Service Queue Job (old) and
|
||||
* SDK 23/124 / wire 0x7c Service Queue Job.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* word TargetServiceType (Hi-Lo)
|
||||
* Reply: QueueJobStruct, old 54-byte fixed reply for wire
|
||||
* 0x71 and newer reserved-prefix/NWQueueJobStruct reply for
|
||||
* wire 0x7c, including the opened job file handle.
|
||||
* Parser comparison matches the common QueueID/type request
|
||||
* header and delegates the variant reply shape to the queue
|
||||
* backend helper.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
int type = GET_BE16(rdata+4);
|
||||
int result=nw_service_queue_job(
|
||||
@@ -2423,6 +2464,18 @@ static void handle_fxx(int gelen, int func)
|
||||
case 0x6D: /* Change Queue Job Entry old */
|
||||
case 0x7B: /* Change Queue Job Entry */
|
||||
{
|
||||
/*
|
||||
* SDK 23/109 / wire 0x6d Change Queue Job Entry (old) and
|
||||
* SDK 23/123 / wire 0x7b Change Queue Job Entry.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* QueueJobStruct, 256 bytes for old wire 0x6d and 280
|
||||
* bytes for newer wire 0x7b.
|
||||
* Reply: no data.
|
||||
* Parser comparison matches the documented QueueID plus
|
||||
* variant job-structure layout and delegates the structure
|
||||
* copy to the queue backend helper.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
int result = nw_change_queue_job_entry(act_c->object_id,
|
||||
q_id, rdata+4,
|
||||
@@ -2434,6 +2487,21 @@ static void handle_fxx(int gelen, int func)
|
||||
|
||||
#endif
|
||||
case 0x7d : { /* Read Queue Current Status, new */
|
||||
/*
|
||||
* SDK 23/125 / wire 0x7d Read Queue Current Status.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* Reply:
|
||||
* long QueueID (Hi-Lo)
|
||||
* long QueueStatus
|
||||
* long CurrentEntries
|
||||
* long CurrentServers
|
||||
* long ServerIDList[CurrentServers] (Hi-Lo)
|
||||
* long ServerStationList[CurrentServers]
|
||||
* Parser/reply comparison matches the documented new
|
||||
* queue-status layout; scalar status/count/station fields use
|
||||
* the existing 32-bit mars_nwe queue byte-order convention.
|
||||
*/
|
||||
struct XDATA {
|
||||
uint8 id[4]; /* queue id */
|
||||
uint8 status[4]; /* &1 no station allowed */
|
||||
@@ -2473,6 +2541,19 @@ static void handle_fxx(int gelen, int func)
|
||||
} break;
|
||||
|
||||
case 0x81 : { /* Get Queue Job List */
|
||||
/*
|
||||
* SDK 23/129 / wire 0x81 Get Queue Job List.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* long QueueStartPosition
|
||||
* Reply:
|
||||
* long TotalQueueJobs
|
||||
* long ReplyQueueJobNumbers
|
||||
* long JobNumberList[ReplyQueueJobNumbers]
|
||||
* Parser comparison matches the documented request header
|
||||
* and delegates the paged long-list reply to the queue backend
|
||||
* helper.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
uint32 offset = GET_BE32(rdata+4);
|
||||
#if 0
|
||||
@@ -2491,6 +2572,18 @@ static void handle_fxx(int gelen, int func)
|
||||
|
||||
case 0x72: /* finish servicing queue job (old)*/
|
||||
case 0x83: { /* finish servicing queue job */
|
||||
/*
|
||||
* SDK 23/114 / wire 0x72 Finish Servicing Queue Job (old)
|
||||
* and SDK 23/131 / wire 0x83 Finish Servicing Queue Job.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* word JobNumber (Hi-Lo) for old wire 0x72
|
||||
* long JobNumber plus long ChargeInfo for newer wire 0x83
|
||||
* Reply: no data.
|
||||
* Parser comparison: both variants currently consume a
|
||||
* 16-bit JobNumber, and the newer ChargeInfo field is
|
||||
* ignored.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
uint32 job_id = GET_BE16(rdata+4);
|
||||
#if 0
|
||||
@@ -2506,6 +2599,19 @@ static void handle_fxx(int gelen, int func)
|
||||
|
||||
case 0x73: /* abort servicing queue job (old) */
|
||||
case 0x84: { /* abort servicing queue job */
|
||||
/*
|
||||
* SDK 23/115 / wire 0x73 Abort Servicing Queue Job (old)
|
||||
* and SDK 23/132 / wire 0x84 Abort Servicing Queue Job.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long QueueID (Hi-Lo)
|
||||
* word JobNumber (Hi-Lo) for old wire 0x73
|
||||
* long JobNumber for newer wire 0x84
|
||||
* Reply: no data for NCP 23; DOS-shell INT 21h wrappers
|
||||
* expose a two-byte zero reply length.
|
||||
* Parser/reply comparison: both variants currently consume
|
||||
* a 16-bit JobNumber, and the success path emits a two-byte
|
||||
* zero reply for compatibility with older clients.
|
||||
*/
|
||||
uint32 q_id = GET_BE32(rdata);
|
||||
uint32 job_id = GET_BE16(rdata+4);
|
||||
int result = nw_finish_abort_queue_job(1,
|
||||
|
||||
Reference in New Issue
Block a user