3.2.1 Abstract Data Model

This section describes a conceptual model of a possible data organization that a print client implementation might need to maintain in order to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This specification does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this specification.

The following abstract data model is used to support a print client operating in branch office print mode.<409>

Branch Office Print Remote Log Offline Archive: When branch office print remote logging is enabled (section 2.2.3.11), a print client can create certain event channel entries on the print server in response to Windows Events while processing a print job. Those entries are in the form of Branch Office Print Remote Log Entries (section 3.1.1) in Branch Office Print Remote Logging Structures (section 2.2.1.15), and they are sent to the server in a RPC_BranchOfficeJobDataContainer (section 2.2.1.2.17) by using the RpcLogJobInfoForBranchOffice (section 3.1.4.13.1) method.

If a print client is unable to contact the print server when processing a branch office print job, printing-related Windows Events are written to the Branch Office Print Remote Log Offline Archive. When contact with the print server is restored, those entries can be retransmitted.

Branch Office Print Remote Log Offline Archive Overflow Flag: If the Branch Office Print Remote Log Offline Archive exceeds its maximum size (section 2.2.3.11), the Branch Office Print Remote Log Offline Archive Overflow Flag is set to TRUE.<410> It is initialized to FALSE, and it is reset to FALSE after the connection with the print server has been restored and the server has been notified of the overflow.

To notify the print server of an overflow of the offline archive, the print client creates a Branch Office Print Remote Log Entry in a RPC_BranchOfficeLogOfflineFileFull (section 2.2.1.15.7) structure and sends it to the server.