comt

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

The comt package implements the COMT client protocol.

Introduction

This document specifies the Component Object Model Plus (COM+) Tracker Service Protocol (COMT), which allows clients to monitor running instances of components.

Overview

The COM+ Tracker Service Protocol enables remote clients to monitor instances of components running on a server. The server end of the protocol tracks the status of component instances and instance containers on the server and implements an interface that clients can use to poll for this status. It also optionally includes an event-driven notification system in which the client can supply (via another protocol) a callback interface for receiving tracker events. The server then calls the client's callback interface whenever new tracking data is available, for example, as a result of local events on the server.

Index

Constants

This section is empty.

Variables

View Source
var (
	// import guard
	GoPackage = "dcom/comt"
)

Functions

This section is empty.

Types

type COMTrackingInfoEvents

type COMTrackingInfoEvents dcom.InterfacePointer

COMTrackingInfoEvents structure represents IComTrackingInfoEvents RPC structure.

The IComTrackingInfoEvents interface provides a method for a server to send the client tracker events. This interface inherits from IUnknown, as specified in [MS-DCOM] section 3.1.1.5.8. The version for this interface is 0.0.

This interface includes the following method beyond those of IUnknown.

Methods in RPC Opnum Order

+-------------------+-------------------------------------+
|                   |                                     |
|      METHOD       |             DESCRIPTION             |
|                   |                                     |
+-------------------+-------------------------------------+
+-------------------+-------------------------------------+
| OnNewTrackingInfo | Handles new tracking info. Opnum: 3 |
+-------------------+-------------------------------------+

This method MUST NOT throw exceptions.

func (*COMTrackingInfoEvents) InterfacePointer

func (o *COMTrackingInfoEvents) InterfacePointer() *dcom.InterfacePointer

func (*COMTrackingInfoEvents) MarshalNDR

func (o *COMTrackingInfoEvents) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*COMTrackingInfoEvents) NDRSizeInfo

func (o *COMTrackingInfoEvents) NDRSizeInfo() []uint64

func (*COMTrackingInfoEvents) UnmarshalNDR

func (o *COMTrackingInfoEvents) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ComponentData

type ComponentData struct {
	// clsid:  The CLSID of the component.
	ClassID *dtyp.GUID `idl:"name:clsid" json:"class_id"`
	// cTotalReferences:  An implementation-specific<2> count of the number of references
	// to all component instances of the component. This MUST be set to 0xffffffff if the
	// server does not track this information.<3>
	TotalReferencesCount uint32 `idl:"name:cTotalReferences" json:"total_references_count"`
	// cBoundReferences:  The number of references to all active (not pooled) component
	// instances of the component. This MUST be set to 0xffffffff if the server does not
	// track this information.<4>
	BoundReferencesCount uint32 `idl:"name:cBoundReferences" json:"bound_references_count"`
	// cPooledInstances:  The number of pooled component instances of the component, if
	// the server enables instance pooling. This MUST be set to 0xffffffff if the server
	// does not track this information.<5>
	PooledInstancesCount uint32 `idl:"name:cPooledInstances" json:"pooled_instances_count"`
	// cInstancesInCall:  The number of component instances of the component that are currently
	// performing a method call. This MUST be set to 0xffffffff if the server does not track
	// this information.<6>
	InstancesInCallCount uint32 `idl:"name:cInstancesInCall" json:"instances_in_call_count"`
	// dwResponseTime:  A value that indicates the average time, in milliseconds, it takes
	// to complete method calls to component instances of the component. Calculation of
	// this value is implementation-specific.<7> This MUST be set to 0xffffffff if the server
	// does not track this information.<8>
	ResponseTime uint32 `idl:"name:dwResponseTime" json:"response_time"`
	// cCallsCompleted:  The number of method calls to component instances of the component
	// that were successfully completed in an implementation-specific<9> time period. Whether
	// a server considers a method call successfully completed is implementation-specific.<10>
	// This MUST be set to 0xffffffff if the server does not track this information.<11>
	CallsCompletedCount uint32 `idl:"name:cCallsCompleted" json:"calls_completed_count"`
	// cCallsFailed:  The number of method calls to component instances of the component
	// that failed in an implementation-specific<12> time period. Whether a server considers
	// a method call to have failed is implementation-specific.<13> This MUST be set to
	// 0xffffffff if the server does not track this information.<14>
	CallsFailedCount uint32 `idl:"name:cCallsFailed" json:"calls_failed_count"`
}

ComponentData structure represents ComponentData RPC structure.

This type represents activity statistics for a component that has one or more component instances in an instance container.

func (*ComponentData) MarshalNDR

func (o *ComponentData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ComponentData) UnmarshalNDR

func (o *ComponentData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ContainerData

type ContainerData struct {
	// dwLegacyId:  The container legacy identifier of one of the instance containers, arbitrarily
	// selected by the server, that exist for the conglomeration represented.
	LegacyID uint32 `idl:"name:dwLegacyId" json:"legacy_id"`
	// wszApplicationIdentifier:  A null-terminated Unicode string that MUST contain the
	// CurlyBraceGuidString (section 2.2.1) representation of a conglomeration identifier.
	// Note that a null-terminated CurlyBraceGuidString is 39 Unicode characters, including
	// the null character, and this field is 40 characters long. The final element in this
	// array is unused. It SHOULD be set to 0 and MUST be ignored upon receipt.
	ApplicationID []uint16 `idl:"name:wszApplicationIdentifier" json:"application_id"`
	// dwProcessId:  The process identifier of the process that contains one of the instance
	// containers, arbitrarily selected by the server, that exist for the conglomeration
	// represented.
	ProcessID uint32 `idl:"name:dwProcessId" json:"process_id"`
	// statistics:  A ContainerStatistics (section 2.2.2) structure with fields that contain
	// statistics averaged across all instance containers that exist for the conglomeration
	// represented.
	Statistics *ContainerStatistics `idl:"name:statistics" json:"statistics"`
}

ContainerData structure represents ContainerData RPC structure.

The ContainerData type represents run-time information for a conglomeration that has one or more instance containers on the server. The meanings of the fields in this structure depend on the number of instance containers that exist on the server for the conglomeration represented, as specified in the following section.

func (*ContainerData) MarshalNDR

func (o *ContainerData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ContainerData) UnmarshalNDR

func (o *ContainerData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ContainerStatistics

type ContainerStatistics struct {
	// cCalls:  The number of method calls that the component instances perform in an instance
	// container.
	CallsCount uint32 `idl:"name:cCalls" json:"calls_count"`
	// cComponentInstances:  The number of component instances in an instance container.
	ComponentInstancesCount uint32 `idl:"name:cComponentInstances" json:"component_instances_count"`
	// cComponents:  The number of distinct components currently instantiated in an instance
	// container.
	ComponentsCount uint32 `idl:"name:cComponents" json:"components_count"`
	// cCallsPerSecond:  This SHOULD be set to a running average, over an implementation-specific
	// time period,<1> of the number of method calls per second received by an instance
	// container. Alternatively, an implementation MAY instead simply set this field to
	// zero.
	CallsPerSecondCount uint32 `idl:"name:cCallsPerSecond" json:"calls_per_second_count"`
}

ContainerStatistics structure represents ContainerStatistics RPC structure.

The ContainerStatistics type represents activity statistics for an instance container.

func (*ContainerStatistics) MarshalNDR

func (o *ContainerStatistics) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ContainerStatistics) UnmarshalNDR

func (o *ContainerStatistics) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type GetTrackingData

type GetTrackingData dcom.InterfacePointer

GetTrackingData structure represents IGetTrackingData RPC structure.

The IGetTrackingData interface provides methods for a client to poll for tracking information. This interface inherits from IUnknown, as specified in [MS-DCOM] section 3.1.1.5.8. The version for this interface is 0.0.

To receive incoming remote calls for this interface, the server MUST implement a DCOM object class with the CLSID CLSID_TrackerService (as specified in section 1.9) by using the UUID {B60040E0-BCF3-11D1-861D-0080C729264D} for this interface.

The IGetTrackingData interface includes the following methods beyond those of IUnknown.

Methods in RPC Opnum Order

+-------------------------------------+----------------------------------------------------------------------------------+
|                                     |                                                                                  |
|               METHOD                |                                   DESCRIPTION                                    |
|                                     |                                                                                  |
+-------------------------------------+----------------------------------------------------------------------------------+
+-------------------------------------+----------------------------------------------------------------------------------+
| Opnum3NotUsedOnWire                 | Reserved for local use. Opnum: 3                                                 |
+-------------------------------------+----------------------------------------------------------------------------------+
| GetContainerData                    | Returns tracking information for instance containers. Opnum: 4                   |
+-------------------------------------+----------------------------------------------------------------------------------+
| GetComponentDataByContainer         | Returns tracking information for components by instance container. Opnum: 5      |
+-------------------------------------+----------------------------------------------------------------------------------+
| GetComponentDataByContainerAndCLSID | Returns tracking information for a component by instance container and CLSID.    |
|                                     | Opnum: 6                                                                         |
+-------------------------------------+----------------------------------------------------------------------------------+
| Opnum7NotUsedOnWire                 | Reserved for local use. Opnum: 7                                                 |
+-------------------------------------+----------------------------------------------------------------------------------+

In the preceding table, the phrase "Reserved for local use" means that the client MUST NOT send the opnum and that the server behavior is undefined<19> because it does not affect interoperability.

All methods MUST NOT throw exceptions.

func (*GetTrackingData) InterfacePointer

func (o *GetTrackingData) InterfacePointer() *dcom.InterfacePointer

func (*GetTrackingData) MarshalNDR

func (o *GetTrackingData) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetTrackingData) NDRSizeInfo

func (o *GetTrackingData) NDRSizeInfo() []uint64

func (*GetTrackingData) UnmarshalNDR

func (o *GetTrackingData) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ProcessDump

type ProcessDump dcom.InterfacePointer

ProcessDump structure represents IProcessDump RPC structure.

The IProcessDump interface provides methods for a client to request a process dump of a process containing an instance container on the COMT server. This interface inherits from IDispatch, as specified in [MS-OAUT] section 3.1.4. The version for this interface is 0.0.

To receive incoming remote calls for this interface, the server MUST implement a DCOM object class with the CLSID CLSID_ProcessDump (as specified in section 1.9) by using the UUID {23C9DD26-2355-4FE2-84DE-F779A238ADBD} for this interface.

This interface includes the following methods beyond those of IDispatch.

Methods in RPC Opnum Order

+-------------+--------------------------------------------------------------------------------+
|             |                                                                                |
|   METHOD    |                                  DESCRIPTION                                   |
|             |                                                                                |
+-------------+--------------------------------------------------------------------------------+
+-------------+--------------------------------------------------------------------------------+
| IsSupported | Returns a result indicating whether or not process dump is supported. Opnum: 7 |
+-------------+--------------------------------------------------------------------------------+
| DumpProcess | Requests a process dump. Opnum: 8                                              |
+-------------+--------------------------------------------------------------------------------+

All methods MUST NOT throw exceptions.

func (*ProcessDump) InterfacePointer

func (o *ProcessDump) InterfacePointer() *dcom.InterfacePointer

func (*ProcessDump) MarshalNDR

func (o *ProcessDump) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ProcessDump) NDRSizeInfo

func (o *ProcessDump) NDRSizeInfo() []uint64

func (*ProcessDump) UnmarshalNDR

func (o *ProcessDump) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

Directories

Path Synopsis
icomtrackinginfoevents
v0
igettrackingdata
v0
iprocessdump
v0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL