UNPKG

@uyu423/pinpoint-node-agent

Version:

Pinpoint node agent provided by NAVER (Personalized version)

1,734 lines (1,500 loc) 139 kB
/** * @fileoverview * @enhanceable * @suppress {messageConventions} JS Compiler reports an error if a variable or * field starts with 'MSG_' and isn't a translatable message. * @public */ // GENERATED CODE -- DO NOT EDIT! var jspb = require('google-protobuf'); var goog = jspb; var global = Function('return this')(); var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); goog.object.extend(proto, google_protobuf_empty_pb); var ThreadDump_pb = require('./ThreadDump_pb.js'); goog.object.extend(proto, ThreadDump_pb); goog.exportSymbol('proto.v1.PActiveTrace', null, global); goog.exportSymbol('proto.v1.PActiveTraceHistogram', null, global); goog.exportSymbol('proto.v1.PAgentInfo', null, global); goog.exportSymbol('proto.v1.PAgentStat', null, global); goog.exportSymbol('proto.v1.PAgentStatBatch', null, global); goog.exportSymbol('proto.v1.PCpuLoad', null, global); goog.exportSymbol('proto.v1.PDataSource', null, global); goog.exportSymbol('proto.v1.PDataSourceList', null, global); goog.exportSymbol('proto.v1.PDeadlock', null, global); goog.exportSymbol('proto.v1.PDirectBuffer', null, global); goog.exportSymbol('proto.v1.PFileDescriptor', null, global); goog.exportSymbol('proto.v1.PJvmGc', null, global); goog.exportSymbol('proto.v1.PJvmGcDetailed', null, global); goog.exportSymbol('proto.v1.PJvmGcType', null, global); goog.exportSymbol('proto.v1.PJvmInfo', null, global); goog.exportSymbol('proto.v1.PPing', null, global); goog.exportSymbol('proto.v1.PResponseTime', null, global); goog.exportSymbol('proto.v1.PServerMetaData', null, global); goog.exportSymbol('proto.v1.PServiceInfo', null, global); goog.exportSymbol('proto.v1.PStatMessage', null, global); goog.exportSymbol('proto.v1.PTransaction', null, global); /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PPing = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; goog.inherits(proto.v1.PPing, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PPing.displayName = 'proto.v1.PPing'; } if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PPing.prototype.toObject = function(opt_includeInstance) { return proto.v1.PPing.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PPing} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PPing.toObject = function(includeInstance, msg) { var f, obj = { }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PPing} */ proto.v1.PPing.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PPing; return proto.v1.PPing.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PPing} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PPing} */ proto.v1.PPing.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PPing.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PPing.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PPing} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PPing.serializeBinaryToWriter = function(message, writer) { var f = undefined; }; /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PStatMessage = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, proto.v1.PStatMessage.oneofGroups_); }; goog.inherits(proto.v1.PStatMessage, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PStatMessage.displayName = 'proto.v1.PStatMessage'; } /** * Oneof group definitions for this message. Each group defines the field * numbers belonging to that group. When of these fields' value is set, all * other fields in the group are cleared. During deserialization, if multiple * fields are encountered for a group, only the last value seen will be kept. * @private {!Array<!Array<number>>} * @const */ proto.v1.PStatMessage.oneofGroups_ = [[1,2]]; /** * @enum {number} */ proto.v1.PStatMessage.FieldCase = { FIELD_NOT_SET: 0, AGENTSTAT: 1, AGENTSTATBATCH: 2 }; /** * @return {proto.v1.PStatMessage.FieldCase} */ proto.v1.PStatMessage.prototype.getFieldCase = function() { return /** @type {proto.v1.PStatMessage.FieldCase} */(jspb.Message.computeOneofCase(this, proto.v1.PStatMessage.oneofGroups_[0])); }; if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PStatMessage.prototype.toObject = function(opt_includeInstance) { return proto.v1.PStatMessage.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PStatMessage} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PStatMessage.toObject = function(includeInstance, msg) { var f, obj = { agentstat: (f = msg.getAgentstat()) && proto.v1.PAgentStat.toObject(includeInstance, f), agentstatbatch: (f = msg.getAgentstatbatch()) && proto.v1.PAgentStatBatch.toObject(includeInstance, f) }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PStatMessage} */ proto.v1.PStatMessage.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PStatMessage; return proto.v1.PStatMessage.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PStatMessage} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PStatMessage} */ proto.v1.PStatMessage.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { case 1: var value = new proto.v1.PAgentStat; reader.readMessage(value,proto.v1.PAgentStat.deserializeBinaryFromReader); msg.setAgentstat(value); break; case 2: var value = new proto.v1.PAgentStatBatch; reader.readMessage(value,proto.v1.PAgentStatBatch.deserializeBinaryFromReader); msg.setAgentstatbatch(value); break; default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PStatMessage.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PStatMessage.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PStatMessage} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PStatMessage.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getAgentstat(); if (f != null) { writer.writeMessage( 1, f, proto.v1.PAgentStat.serializeBinaryToWriter ); } f = message.getAgentstatbatch(); if (f != null) { writer.writeMessage( 2, f, proto.v1.PAgentStatBatch.serializeBinaryToWriter ); } }; /** * optional PAgentStat agentStat = 1; * @return {?proto.v1.PAgentStat} */ proto.v1.PStatMessage.prototype.getAgentstat = function() { return /** @type{?proto.v1.PAgentStat} */ ( jspb.Message.getWrapperField(this, proto.v1.PAgentStat, 1)); }; /** @param {?proto.v1.PAgentStat|undefined} value */ proto.v1.PStatMessage.prototype.setAgentstat = function(value) { jspb.Message.setOneofWrapperField(this, 1, proto.v1.PStatMessage.oneofGroups_[0], value); }; proto.v1.PStatMessage.prototype.clearAgentstat = function() { this.setAgentstat(undefined); }; /** * Returns whether this field is set. * @return {boolean} */ proto.v1.PStatMessage.prototype.hasAgentstat = function() { return jspb.Message.getField(this, 1) != null; }; /** * optional PAgentStatBatch agentStatBatch = 2; * @return {?proto.v1.PAgentStatBatch} */ proto.v1.PStatMessage.prototype.getAgentstatbatch = function() { return /** @type{?proto.v1.PAgentStatBatch} */ ( jspb.Message.getWrapperField(this, proto.v1.PAgentStatBatch, 2)); }; /** @param {?proto.v1.PAgentStatBatch|undefined} value */ proto.v1.PStatMessage.prototype.setAgentstatbatch = function(value) { jspb.Message.setOneofWrapperField(this, 2, proto.v1.PStatMessage.oneofGroups_[0], value); }; proto.v1.PStatMessage.prototype.clearAgentstatbatch = function() { this.setAgentstatbatch(undefined); }; /** * Returns whether this field is set. * @return {boolean} */ proto.v1.PStatMessage.prototype.hasAgentstatbatch = function() { return jspb.Message.getField(this, 2) != null; }; /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PAgentInfo = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; goog.inherits(proto.v1.PAgentInfo, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PAgentInfo.displayName = 'proto.v1.PAgentInfo'; } if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PAgentInfo.prototype.toObject = function(opt_includeInstance) { return proto.v1.PAgentInfo.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PAgentInfo} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PAgentInfo.toObject = function(includeInstance, msg) { var f, obj = { hostname: jspb.Message.getFieldWithDefault(msg, 1, ""), ip: jspb.Message.getFieldWithDefault(msg, 2, ""), ports: jspb.Message.getFieldWithDefault(msg, 3, ""), servicetype: jspb.Message.getFieldWithDefault(msg, 4, 0), pid: jspb.Message.getFieldWithDefault(msg, 5, 0), agentversion: jspb.Message.getFieldWithDefault(msg, 6, ""), vmversion: jspb.Message.getFieldWithDefault(msg, 7, ""), endtimestamp: jspb.Message.getFieldWithDefault(msg, 8, 0), endstatus: jspb.Message.getFieldWithDefault(msg, 9, 0), servermetadata: (f = msg.getServermetadata()) && proto.v1.PServerMetaData.toObject(includeInstance, f), jvminfo: (f = msg.getJvminfo()) && proto.v1.PJvmInfo.toObject(includeInstance, f), container: jspb.Message.getFieldWithDefault(msg, 12, false) }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PAgentInfo} */ proto.v1.PAgentInfo.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PAgentInfo; return proto.v1.PAgentInfo.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PAgentInfo} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PAgentInfo} */ proto.v1.PAgentInfo.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { case 1: var value = /** @type {string} */ (reader.readString()); msg.setHostname(value); break; case 2: var value = /** @type {string} */ (reader.readString()); msg.setIp(value); break; case 3: var value = /** @type {string} */ (reader.readString()); msg.setPorts(value); break; case 4: var value = /** @type {number} */ (reader.readInt32()); msg.setServicetype(value); break; case 5: var value = /** @type {number} */ (reader.readInt32()); msg.setPid(value); break; case 6: var value = /** @type {string} */ (reader.readString()); msg.setAgentversion(value); break; case 7: var value = /** @type {string} */ (reader.readString()); msg.setVmversion(value); break; case 8: var value = /** @type {number} */ (reader.readInt64()); msg.setEndtimestamp(value); break; case 9: var value = /** @type {number} */ (reader.readInt32()); msg.setEndstatus(value); break; case 10: var value = new proto.v1.PServerMetaData; reader.readMessage(value,proto.v1.PServerMetaData.deserializeBinaryFromReader); msg.setServermetadata(value); break; case 11: var value = new proto.v1.PJvmInfo; reader.readMessage(value,proto.v1.PJvmInfo.deserializeBinaryFromReader); msg.setJvminfo(value); break; case 12: var value = /** @type {boolean} */ (reader.readBool()); msg.setContainer(value); break; default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PAgentInfo.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PAgentInfo.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PAgentInfo} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PAgentInfo.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getHostname(); if (f.length > 0) { writer.writeString( 1, f ); } f = message.getIp(); if (f.length > 0) { writer.writeString( 2, f ); } f = message.getPorts(); if (f.length > 0) { writer.writeString( 3, f ); } f = message.getServicetype(); if (f !== 0) { writer.writeInt32( 4, f ); } f = message.getPid(); if (f !== 0) { writer.writeInt32( 5, f ); } f = message.getAgentversion(); if (f.length > 0) { writer.writeString( 6, f ); } f = message.getVmversion(); if (f.length > 0) { writer.writeString( 7, f ); } f = message.getEndtimestamp(); if (f !== 0) { writer.writeInt64( 8, f ); } f = message.getEndstatus(); if (f !== 0) { writer.writeInt32( 9, f ); } f = message.getServermetadata(); if (f != null) { writer.writeMessage( 10, f, proto.v1.PServerMetaData.serializeBinaryToWriter ); } f = message.getJvminfo(); if (f != null) { writer.writeMessage( 11, f, proto.v1.PJvmInfo.serializeBinaryToWriter ); } f = message.getContainer(); if (f) { writer.writeBool( 12, f ); } }; /** * optional string hostname = 1; * @return {string} */ proto.v1.PAgentInfo.prototype.getHostname = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** @param {string} value */ proto.v1.PAgentInfo.prototype.setHostname = function(value) { jspb.Message.setProto3StringField(this, 1, value); }; /** * optional string ip = 2; * @return {string} */ proto.v1.PAgentInfo.prototype.getIp = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** @param {string} value */ proto.v1.PAgentInfo.prototype.setIp = function(value) { jspb.Message.setProto3StringField(this, 2, value); }; /** * optional string ports = 3; * @return {string} */ proto.v1.PAgentInfo.prototype.getPorts = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** @param {string} value */ proto.v1.PAgentInfo.prototype.setPorts = function(value) { jspb.Message.setProto3StringField(this, 3, value); }; /** * optional int32 serviceType = 4; * @return {number} */ proto.v1.PAgentInfo.prototype.getServicetype = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); }; /** @param {number} value */ proto.v1.PAgentInfo.prototype.setServicetype = function(value) { jspb.Message.setProto3IntField(this, 4, value); }; /** * optional int32 pid = 5; * @return {number} */ proto.v1.PAgentInfo.prototype.getPid = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); }; /** @param {number} value */ proto.v1.PAgentInfo.prototype.setPid = function(value) { jspb.Message.setProto3IntField(this, 5, value); }; /** * optional string agentVersion = 6; * @return {string} */ proto.v1.PAgentInfo.prototype.getAgentversion = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); }; /** @param {string} value */ proto.v1.PAgentInfo.prototype.setAgentversion = function(value) { jspb.Message.setProto3StringField(this, 6, value); }; /** * optional string vmVersion = 7; * @return {string} */ proto.v1.PAgentInfo.prototype.getVmversion = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); }; /** @param {string} value */ proto.v1.PAgentInfo.prototype.setVmversion = function(value) { jspb.Message.setProto3StringField(this, 7, value); }; /** * optional int64 endTimestamp = 8; * @return {number} */ proto.v1.PAgentInfo.prototype.getEndtimestamp = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); }; /** @param {number} value */ proto.v1.PAgentInfo.prototype.setEndtimestamp = function(value) { jspb.Message.setProto3IntField(this, 8, value); }; /** * optional int32 endStatus = 9; * @return {number} */ proto.v1.PAgentInfo.prototype.getEndstatus = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); }; /** @param {number} value */ proto.v1.PAgentInfo.prototype.setEndstatus = function(value) { jspb.Message.setProto3IntField(this, 9, value); }; /** * optional PServerMetaData serverMetaData = 10; * @return {?proto.v1.PServerMetaData} */ proto.v1.PAgentInfo.prototype.getServermetadata = function() { return /** @type{?proto.v1.PServerMetaData} */ ( jspb.Message.getWrapperField(this, proto.v1.PServerMetaData, 10)); }; /** @param {?proto.v1.PServerMetaData|undefined} value */ proto.v1.PAgentInfo.prototype.setServermetadata = function(value) { jspb.Message.setWrapperField(this, 10, value); }; proto.v1.PAgentInfo.prototype.clearServermetadata = function() { this.setServermetadata(undefined); }; /** * Returns whether this field is set. * @return {boolean} */ proto.v1.PAgentInfo.prototype.hasServermetadata = function() { return jspb.Message.getField(this, 10) != null; }; /** * optional PJvmInfo jvmInfo = 11; * @return {?proto.v1.PJvmInfo} */ proto.v1.PAgentInfo.prototype.getJvminfo = function() { return /** @type{?proto.v1.PJvmInfo} */ ( jspb.Message.getWrapperField(this, proto.v1.PJvmInfo, 11)); }; /** @param {?proto.v1.PJvmInfo|undefined} value */ proto.v1.PAgentInfo.prototype.setJvminfo = function(value) { jspb.Message.setWrapperField(this, 11, value); }; proto.v1.PAgentInfo.prototype.clearJvminfo = function() { this.setJvminfo(undefined); }; /** * Returns whether this field is set. * @return {boolean} */ proto.v1.PAgentInfo.prototype.hasJvminfo = function() { return jspb.Message.getField(this, 11) != null; }; /** * optional bool container = 12; * Note that Boolean fields may be set to 0/1 when serialized from a Java server. * You should avoid comparisons like {@code val === true/false} in those cases. * @return {boolean} */ proto.v1.PAgentInfo.prototype.getContainer = function() { return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 12, false)); }; /** @param {boolean} value */ proto.v1.PAgentInfo.prototype.setContainer = function(value) { jspb.Message.setProto3BooleanField(this, 12, value); }; /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PServerMetaData = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, proto.v1.PServerMetaData.repeatedFields_, null); }; goog.inherits(proto.v1.PServerMetaData, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PServerMetaData.displayName = 'proto.v1.PServerMetaData'; } /** * List of repeated fields within this message type. * @private {!Array<number>} * @const */ proto.v1.PServerMetaData.repeatedFields_ = [2,3]; if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PServerMetaData.prototype.toObject = function(opt_includeInstance) { return proto.v1.PServerMetaData.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PServerMetaData} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PServerMetaData.toObject = function(includeInstance, msg) { var f, obj = { serverinfo: jspb.Message.getFieldWithDefault(msg, 1, ""), vmargList: jspb.Message.getRepeatedField(msg, 2), serviceinfoList: jspb.Message.toObjectList(msg.getServiceinfoList(), proto.v1.PServiceInfo.toObject, includeInstance) }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PServerMetaData} */ proto.v1.PServerMetaData.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PServerMetaData; return proto.v1.PServerMetaData.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PServerMetaData} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PServerMetaData} */ proto.v1.PServerMetaData.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { case 1: var value = /** @type {string} */ (reader.readString()); msg.setServerinfo(value); break; case 2: var value = /** @type {string} */ (reader.readString()); msg.addVmarg(value); break; case 3: var value = new proto.v1.PServiceInfo; reader.readMessage(value,proto.v1.PServiceInfo.deserializeBinaryFromReader); msg.addServiceinfo(value); break; default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PServerMetaData.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PServerMetaData.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PServerMetaData} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PServerMetaData.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getServerinfo(); if (f.length > 0) { writer.writeString( 1, f ); } f = message.getVmargList(); if (f.length > 0) { writer.writeRepeatedString( 2, f ); } f = message.getServiceinfoList(); if (f.length > 0) { writer.writeRepeatedMessage( 3, f, proto.v1.PServiceInfo.serializeBinaryToWriter ); } }; /** * optional string serverInfo = 1; * @return {string} */ proto.v1.PServerMetaData.prototype.getServerinfo = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** @param {string} value */ proto.v1.PServerMetaData.prototype.setServerinfo = function(value) { jspb.Message.setProto3StringField(this, 1, value); }; /** * repeated string vmArg = 2; * @return {!Array<string>} */ proto.v1.PServerMetaData.prototype.getVmargList = function() { return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2)); }; /** @param {!Array<string>} value */ proto.v1.PServerMetaData.prototype.setVmargList = function(value) { jspb.Message.setField(this, 2, value || []); }; /** * @param {string} value * @param {number=} opt_index */ proto.v1.PServerMetaData.prototype.addVmarg = function(value, opt_index) { jspb.Message.addToRepeatedField(this, 2, value, opt_index); }; proto.v1.PServerMetaData.prototype.clearVmargList = function() { this.setVmargList([]); }; /** * repeated PServiceInfo serviceInfo = 3; * @return {!Array<!proto.v1.PServiceInfo>} */ proto.v1.PServerMetaData.prototype.getServiceinfoList = function() { return /** @type{!Array<!proto.v1.PServiceInfo>} */ ( jspb.Message.getRepeatedWrapperField(this, proto.v1.PServiceInfo, 3)); }; /** @param {!Array<!proto.v1.PServiceInfo>} value */ proto.v1.PServerMetaData.prototype.setServiceinfoList = function(value) { jspb.Message.setRepeatedWrapperField(this, 3, value); }; /** * @param {!proto.v1.PServiceInfo=} opt_value * @param {number=} opt_index * @return {!proto.v1.PServiceInfo} */ proto.v1.PServerMetaData.prototype.addServiceinfo = function(opt_value, opt_index) { return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.v1.PServiceInfo, opt_index); }; proto.v1.PServerMetaData.prototype.clearServiceinfoList = function() { this.setServiceinfoList([]); }; /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PServiceInfo = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, proto.v1.PServiceInfo.repeatedFields_, null); }; goog.inherits(proto.v1.PServiceInfo, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PServiceInfo.displayName = 'proto.v1.PServiceInfo'; } /** * List of repeated fields within this message type. * @private {!Array<number>} * @const */ proto.v1.PServiceInfo.repeatedFields_ = [2]; if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PServiceInfo.prototype.toObject = function(opt_includeInstance) { return proto.v1.PServiceInfo.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PServiceInfo} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PServiceInfo.toObject = function(includeInstance, msg) { var f, obj = { servicename: jspb.Message.getFieldWithDefault(msg, 1, ""), servicelibList: jspb.Message.getRepeatedField(msg, 2) }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PServiceInfo} */ proto.v1.PServiceInfo.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PServiceInfo; return proto.v1.PServiceInfo.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PServiceInfo} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PServiceInfo} */ proto.v1.PServiceInfo.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { case 1: var value = /** @type {string} */ (reader.readString()); msg.setServicename(value); break; case 2: var value = /** @type {string} */ (reader.readString()); msg.addServicelib(value); break; default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PServiceInfo.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PServiceInfo.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PServiceInfo} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PServiceInfo.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getServicename(); if (f.length > 0) { writer.writeString( 1, f ); } f = message.getServicelibList(); if (f.length > 0) { writer.writeRepeatedString( 2, f ); } }; /** * optional string serviceName = 1; * @return {string} */ proto.v1.PServiceInfo.prototype.getServicename = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** @param {string} value */ proto.v1.PServiceInfo.prototype.setServicename = function(value) { jspb.Message.setProto3StringField(this, 1, value); }; /** * repeated string serviceLib = 2; * @return {!Array<string>} */ proto.v1.PServiceInfo.prototype.getServicelibList = function() { return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2)); }; /** @param {!Array<string>} value */ proto.v1.PServiceInfo.prototype.setServicelibList = function(value) { jspb.Message.setField(this, 2, value || []); }; /** * @param {string} value * @param {number=} opt_index */ proto.v1.PServiceInfo.prototype.addServicelib = function(value, opt_index) { jspb.Message.addToRepeatedField(this, 2, value, opt_index); }; proto.v1.PServiceInfo.prototype.clearServicelibList = function() { this.setServicelibList([]); }; /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PJvmInfo = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; goog.inherits(proto.v1.PJvmInfo, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PJvmInfo.displayName = 'proto.v1.PJvmInfo'; } if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PJvmInfo.prototype.toObject = function(opt_includeInstance) { return proto.v1.PJvmInfo.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PJvmInfo} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PJvmInfo.toObject = function(includeInstance, msg) { var f, obj = { version: jspb.Message.getFieldWithDefault(msg, 1, 0), vmversion: jspb.Message.getFieldWithDefault(msg, 2, ""), gctype: jspb.Message.getFieldWithDefault(msg, 3, 0) }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PJvmInfo} */ proto.v1.PJvmInfo.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PJvmInfo; return proto.v1.PJvmInfo.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PJvmInfo} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PJvmInfo} */ proto.v1.PJvmInfo.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { case 1: var value = /** @type {number} */ (reader.readInt32()); msg.setVersion(value); break; case 2: var value = /** @type {string} */ (reader.readString()); msg.setVmversion(value); break; case 3: var value = /** @type {!proto.v1.PJvmGcType} */ (reader.readEnum()); msg.setGctype(value); break; default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PJvmInfo.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PJvmInfo.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PJvmInfo} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PJvmInfo.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getVersion(); if (f !== 0) { writer.writeInt32( 1, f ); } f = message.getVmversion(); if (f.length > 0) { writer.writeString( 2, f ); } f = message.getGctype(); if (f !== 0.0) { writer.writeEnum( 3, f ); } }; /** * optional int32 version = 1; * @return {number} */ proto.v1.PJvmInfo.prototype.getVersion = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** @param {number} value */ proto.v1.PJvmInfo.prototype.setVersion = function(value) { jspb.Message.setProto3IntField(this, 1, value); }; /** * optional string vmVersion = 2; * @return {string} */ proto.v1.PJvmInfo.prototype.getVmversion = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** @param {string} value */ proto.v1.PJvmInfo.prototype.setVmversion = function(value) { jspb.Message.setProto3StringField(this, 2, value); }; /** * optional PJvmGcType gcType = 3; * @return {!proto.v1.PJvmGcType} */ proto.v1.PJvmInfo.prototype.getGctype = function() { return /** @type {!proto.v1.PJvmGcType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); }; /** @param {!proto.v1.PJvmGcType} value */ proto.v1.PJvmInfo.prototype.setGctype = function(value) { jspb.Message.setProto3EnumField(this, 3, value); }; /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a * server response, or constructed directly in Javascript. The array is used * in place and becomes part of the constructed object. It is not cloned. * If no data is provided, the constructed object will be empty, but still * valid. * @extends {jspb.Message} * @constructor */ proto.v1.PAgentStat = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; goog.inherits(proto.v1.PAgentStat, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.v1.PAgentStat.displayName = 'proto.v1.PAgentStat'; } if (jspb.Message.GENERATE_TO_OBJECT) { /** * Creates an object representation of this proto suitable for use in Soy templates. * Field names that are reserved in JavaScript and will be renamed to pb_name. * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default. * For the list of reserved names please see: * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. * @param {boolean=} opt_includeInstance Whether to include the JSPB instance * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ proto.v1.PAgentStat.prototype.toObject = function(opt_includeInstance) { return proto.v1.PAgentStat.toObject(opt_includeInstance, this); }; /** * Static version of the {@see toObject} method. * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration * @param {!proto.v1.PAgentStat} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PAgentStat.toObject = function(includeInstance, msg) { var f, obj = { timestamp: jspb.Message.getFieldWithDefault(msg, 1, 0), collectinterval: jspb.Message.getFieldWithDefault(msg, 2, 0), gc: (f = msg.getGc()) && proto.v1.PJvmGc.toObject(includeInstance, f), cpuload: (f = msg.getCpuload()) && proto.v1.PCpuLoad.toObject(includeInstance, f), transaction: (f = msg.getTransaction()) && proto.v1.PTransaction.toObject(includeInstance, f), activetrace: (f = msg.getActivetrace()) && proto.v1.PActiveTrace.toObject(includeInstance, f), datasourcelist: (f = msg.getDatasourcelist()) && proto.v1.PDataSourceList.toObject(includeInstance, f), responsetime: (f = msg.getResponsetime()) && proto.v1.PResponseTime.toObject(includeInstance, f), deadlock: (f = msg.getDeadlock()) && proto.v1.PDeadlock.toObject(includeInstance, f), filedescriptor: (f = msg.getFiledescriptor()) && proto.v1.PFileDescriptor.toObject(includeInstance, f), directbuffer: (f = msg.getDirectbuffer()) && proto.v1.PDirectBuffer.toObject(includeInstance, f), metadata: jspb.Message.getFieldWithDefault(msg, 12, "") }; if (includeInstance) { obj.$jspbMessageInstance = msg; } return obj; }; } /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. * @return {!proto.v1.PAgentStat} */ proto.v1.PAgentStat.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); var msg = new proto.v1.PAgentStat; return proto.v1.PAgentStat.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. * @param {!proto.v1.PAgentStat} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. * @return {!proto.v1.PAgentStat} */ proto.v1.PAgentStat.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; } var field = reader.getFieldNumber(); switch (field) { case 1: var value = /** @type {number} */ (reader.readInt64()); msg.setTimestamp(value); break; case 2: var value = /** @type {number} */ (reader.readInt64()); msg.setCollectinterval(value); break; case 3: var value = new proto.v1.PJvmGc; reader.readMessage(value,proto.v1.PJvmGc.deserializeBinaryFromReader); msg.setGc(value); break; case 4: var value = new proto.v1.PCpuLoad; reader.readMessage(value,proto.v1.PCpuLoad.deserializeBinaryFromReader); msg.setCpuload(value); break; case 5: var value = new proto.v1.PTransaction; reader.readMessage(value,proto.v1.PTransaction.deserializeBinaryFromReader); msg.setTransaction(value); break; case 6: var value = new proto.v1.PActiveTrace; reader.readMessage(value,proto.v1.PActiveTrace.deserializeBinaryFromReader); msg.setActivetrace(value); break; case 7: var value = new proto.v1.PDataSourceList; reader.readMessage(value,proto.v1.PDataSourceList.deserializeBinaryFromReader); msg.setDatasourcelist(value); break; case 8: var value = new proto.v1.PResponseTime; reader.readMessage(value,proto.v1.PResponseTime.deserializeBinaryFromReader); msg.setResponsetime(value); break; case 9: var value = new proto.v1.PDeadlock; reader.readMessage(value,proto.v1.PDeadlock.deserializeBinaryFromReader); msg.setDeadlock(value); break; case 10: var value = new proto.v1.PFileDescriptor; reader.readMessage(value,proto.v1.PFileDescriptor.deserializeBinaryFromReader); msg.setFiledescriptor(value); break; case 11: var value = new proto.v1.PDirectBuffer; reader.readMessage(value,proto.v1.PDirectBuffer.deserializeBinaryFromReader); msg.setDirectbuffer(value); break; case 12: var value = /** @type {string} */ (reader.readString()); msg.setMetadata(value); break; default: reader.skipField(); break; } } return msg; }; /** * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ proto.v1.PAgentStat.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); proto.v1.PAgentStat.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. * @param {!proto.v1.PAgentStat} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ proto.v1.PAgentStat.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getTimestamp(); if (f !== 0) { writer.writeInt64( 1, f ); } f = message.getCollectinterval(); if (f !== 0) { writer.writeInt64( 2, f ); } f = message.getGc(); if (f != null) { writer.writeMessage( 3, f, proto.v1.PJvmGc.serializeBinaryToWriter ); } f = message.getCpuload(); if (f != null) { writer.writeMessage( 4, f, proto.v1.PCpuLoad.serializeBinaryToWriter ); } f = message.getTransaction(); if (f != null) { writer.writeMessage( 5, f, proto.v1.PTransaction.serializeBinaryToWriter ); } f = message.getActivetrace(); if (f != null) { writer.writeMessage( 6, f, proto.v1.PActiveTrace.serializeBinaryToWriter ); } f = message.getDatasourcelist(); if (f != null) { writer.writeMessage( 7, f, proto.v1.PDataSourceList.serializeBinaryToWriter ); } f = message.getResponsetime(); if (f != null) { writer.writeMessage( 8, f, proto.v1.PResponseTime.serializeBinaryToWriter ); } f = message.getDeadlock(); if (f != null) { writer.writeMessage( 9, f, proto.v1.PDeadlock.serializeBinaryToWriter ); } f = message.getFiledescriptor(); if (f != null) { writer.writ