package org.openntf.domino.helpers; import java.util.List; /* * @author Nathan T. Freeman * Parser for console.log contents that trace NRPC API calls in Notes client * */ public class ClientClockParser { /* * Example console.log * [1C2C:0002-1084] (264-5929 [264]) DB_MODIFIED_TIME(REP80257839:005DE04A): 94 ms. [18+82=100] [1C2C:0002-1084] (265-5929 [265]) OPEN_COLLECTION(REP80257839:005DE04A-NT0006C376,0000,0000): 105 ms. [46+38=84] [1C2C:0002-1084] (266-5929 [266]) FIND_BY_KEY_EXTENDED2(REP80257839:005DE04A): 123 ms. [418+34=452] (Unsupported return flag(s)) [1C2C:0002-1084] (267-5929 [267]) FIND_BY_KEY(REP80257839:005DE04A): 168 ms. [416+42=458] [1C2C:0002-1084] (268-5929 [268]) READ_ENTRIES(REP80257839:005DE04A-NT0006C376): 125 ms. [72+142=214] [1C2C:0002-1084] (269-5929 [269]) OPEN_DB(CN=COMMONNAME/OU=OrgUnit/O=ACME CORP!!helpdesk\Knowledge Base.nsf): (Opened: REP80257839:005E0A6F) 138 ms. [126+182=308] [1C2C:0002-1084] (270-5929 [270]) DB_MODIFIED_TIME(REP80257839:005E0A6F): 147 ms. [18+80=98] [1C2C:0002-1084] (271-5930 [271]) ISDB2_RQST(REP80257839:005E0A6F): 176 ms. [18+20=38] [1C2C:0002-1084] (272-5930 [272]) OPEN_COLLECTION(REP80257839:005E0A6F-NTFFFF0020,0000,1000): 132 ms. [50+606=656] [1C2C:0002-1084] (273-5930 [273]) READ_ENTRIES(REP80257839:005E0A6F-NTFFFF0020,Since:06/25/2014 04:10:46 PM): 218 ms. [142+1418=1560] [1C2C:0002-1084] (274-5930 [274]) CLOSE_COLLECTION(REP80257839:005E0A6F-NTFFFF0020): 0 ms. [16+0=16] [1C2C:0002-1084] (275-5930 [275]) DB_MODIFIED_TIME(REP80257839:005E0A6F): 163 ms. [18+80=98] [1C2C:0002-1084] (276-5930 [276]) GET_MULT_NOTE_INFO_BY_UNID(REP80257839:005E0A6F): 155 ms. [192+348=540] [1C2C:0002-1084] (277-5930 [277]) DB_MODIFIED_TIME(REP80257839:005E0A6F): 80 ms. [18+80=98] [1C2C:0002-1084] (278-5930 [278]) GET_UNREAD_NOTE_TABLE(REP80257839:005E0A6F): 79 ms. [78+122=200] [1C2C:0002-1084] (279-5931 [279]) OPEN_NOTE(REP80257839:005E0A6F-NTFFFF0010,03000400): 74 ms. [52+2888=2940] */ public static enum Function { DB_MODIFIED_TIME, OPEN_COLLECTION, FIND_BY_KEY_EXTENDED2, FIND_BY_KEY, READ_ENTRIES, OPEN_DB, ISDB2_RQST, CLOSE_COLLECTION, GET_MULT_NOTE_INFO_BY_UNID, GET_UNREAD_NOTE_TABLE, OPEN_NOTE, GET_LAST_INDEX_TIME, GET_SPECIAL_NOTE_ID, GET_NAMED_OBJECT_ID, DB_REPLINFO_GET, GET_NOTE_INFO, SERVER_AVAILABLE_LITE, GET_MODIFIED_NOTES, READ_OBJECT, GETOBJECT_RQST, CLOSE_DB, OPEN_SESSION, POLL_DEL_SEQNUM } @SuppressWarnings("unused") public static class APIOp { private Function function_; private String replicaid_; private String noteid_; private String threadId_; private int txnId_; private int clockcount_; private int time_; private int bytesSent_; private int bytesReceived_; private int bytesTotal_; private String[] args_; private String message_; // [1C2C:0002-1084] [1C2C:0002-1084] (273-5930 [273]) READ_ENTRIES(REP80257839:005E0A6F-NTFFFF0020,Since:06/25/2014 04:10:46 PM): 218 ms. [142+1418=1560] public APIOp(final String log) { } } @SuppressWarnings("unused") public static class APIOpGroup { private int startClock_; private int endClock_; private List<APIOp> operations_; } public ClientClockParser() { } }