VideoOS.Platform Namespace Reference

Namespaces

namespace  Admin
 
namespace  Background
 
namespace  Client
 
namespace  ConfigurationItems
 
namespace  Data
 
namespace  EventsAndState
 
namespace  EventsData
 
namespace  JsonHandling
 
namespace  License
 
namespace  Live
 
namespace  Log
 
namespace  Login
 
namespace  Messaging
 
namespace  Metadata
 
namespace  OAuth
 
namespace  Properties
 
namespace  Proxy
 
namespace  Resources
 
namespace  RuleAction
 
namespace  Search
 
namespace  Telemetry
 
namespace  UI
 
namespace  Util
 

Classes

class  ArgumentMIPException
 Throw by MIP Environment when an argument is incorrect. Check innerException for more info. More...
 
class  ArgumentNullMIPException
 Throw by MIP Environment when an argument is null. Check innerException for more info. More...
 
class  ClientControl
 The class to access Client relevant methods. More...
 
class  ClientTypeNotAllowedMIPException
 Throw when the provided client type is not allowed to connect. More...
 
class  CommunicationContentMIPException
 This exception is thrown if the received response is badly formed, is missing important information or contains invalid values. This exception may indicate a compatibility issue between the client and the server. More...
 
class  CommunicationMIPException
 Thrown when an underlying protocol threw an Exception, or received a Serialized Exception from the server side. More...
 
class  ConfigItem
 An overloaded class of the Item class.
Can be subclassed when you want new MIP Items and modifications to existing MIP Items reflect into the mother environments settings. Used by the Smart Client when creating and modifying Views, layouts and view groups in the smart client.
Used by the Administrators to create, modify and delete generic events. Only supported for e-code family! For c-code use Configuration API instead. More...
 
class  Configuration
 Configuration provides access to all configuration objects within the Milestone Platform.
This covers well known Milestone objects like Cameras, Servers, Presets events etc, but also 3rd party plug-in objects can be accessed though this interface.
Access to this class is done via Configuration.Instance. More...
 
class  CroppingInfo
 Class returned as part of the BitmapData class. More...
 
class  EndpointNotFoundCommunicationMIPException
 Thrown when specified host address, URL or IP address does not exist or is not responding. More...
 
class  EnvironmentCapabilities
 Used by the EnvironmentManager.Instance.HasCapability() method. More...
 
class  EnvironmentManager
 The EnvironmentManager is the top class for the MIP Environment. The class can always be accessed though: EnvironmentManager.Instance As it is a singleton. More...
 
class  EnvironmentOptions
 Options available for the EnvironmentManager.Instance.EnvironmentOptions dictionary. More...
 
class  FQID
 The Fully Qualified ID contains a complete set of fields to contact a server and get further details. The purpose is to identify an Item to the level where it contains enough information for contacting the correct server, on a relevant protocol, and obtain further information for the item from that server. The key identification are build up of:
1) ServerId.Id Guid - identify a specific server or set of configuration.
2) ParentId Guid - the parent FQID will contain this in the ObjectId field
3) ObjectId Guid - a unique id for this object (Item)
If an FQID does not have a parent, the parentId is Guid.Empty
To make lookup easier and to assist in displaying relevant selection choices for users, the following type fields are present:
1) FolderType - identify if this is some kind of grouping or collection
2) Kind Guid - identifies what type of object this FQID identifies.
The Kind class contains a set of predefined values for all Milestone known Kinds, e.g. Kind.Camera is assigned to FQIDs for cameras and groups of cameras.

Note: When some object cannot be identified by a Guid, but rather a string, the ObjectIdString can be used as an alternative to the ObjectId. It is though highly recommended to fill the ObjectId if possible.
The FQID is primarily created by plug-in developed ItemManagers and during deserialization of configurations.
This method is NOT intended for overrides, as MIP Environment need to be able to deserialize a XML string to a correct FQID object.
A camera sample for XProtect Corporate:
More...
 
class  GenericEventConfigItem
 A base class which allows generic events to be reflected in the administrator kernels' as "shadow" user-defined events. This base class is not supposed to be instanciated directly. You must use the CreateGenericEventConfigItem() method from the Configuration class to create instance. More...
 
class  ImplementationMIPException
 Thrown when some part of the plug-in has not been implemented correctly.
A fix is often possible by changing the code. More...
 
class  InternalMIPException
 Throw by MIP Environment. This may be a 'should not happen' and indicate some internal MIP implementation problem. More...
 
class  InvalidOperationMIPException
 This exception is thrown if request sent from the client is invalid due to the state of the server. More...
 
class  InvalidParameterMIPException
 Thrown when a parameter is not valid
A fix is often possible by changing the code. More...
 
interface  ISourceData
 Base interface for common properties between different video source datas. More...
 
class  Item
 This class is used as a base class of all objects and items, be it cameras, audio sources or plug-in developed objects. For simple Items that does not have any Children this base class itself can be used, often though you will need to implement a class that inherit from this Item and make overrides to GetChildren, HasChildren, GetParent and perhaps more methods. More...
 
class  ItemProperties
 
interface  IVideoSourceData
 Interface for common properties between different video source datas. More...
 
class  Kind
 Kind is a class that contains Milestone defined kinds as static members. Each field is a GUID.
New plugins defines their own Kinds on the plugins ItemNodes.
In the ItemPicker each Kind is represented with a specific icon. The ItemPicker uses the icon defined on the ItemNode.
During load of the plugins the plug-in defined ItemNodes and their Kinds and Icons are added to the static Hashtable members of this class.
More...
 
class  LicenseMIPException
 Throw by MIP Environment when the server license limit has been reached. Ask operator to check Management Client license overview.. More...
 
class  LicenseServiceMIPException
 Throw when concurrent license check cannot get hold of the LicenseService.
Check that the LicenseService is running in the EventServer, and that the ServiceRegistration contains the correct URL to this service. More...
 
class  MessageFilterNotRegisteredMIPException
 Thrown when MessageCommunication is used, and the server does not have any filter registered. More...
 
class  MIPException
 The common Exception for all exceptions thrown by the MIP environment. More...
 
class  NotAuthorizedMIPException
 Throw by the SecurityAccess class when calling CheckPermission, or when using the configuration API and the server is accessed for an object that is not accessible for user that is logged in. More...
 
class  NotDualAuthorizedMIPException
 Throw by the Login process if server requires dual authentication. More...
 
class  NotSupportedMIPException
 Throw by MIP Environment when calling a server that does not support the current method, check version of server side product. More...
 
class  NoVideoInTimeSpanMIPException
 Thrown when an export is started, but video is available in the given time span. More...
 
class  PathNotFoundMIPException
 Throw by MIP Environment when calling a server that does not have a configuration item corresponding to the provided path. More...
 
class  PluginDefinition
 The PluginDefinition is the ‘entry’ point to any plug-in.
This is the starting point for any plug-in development and the class MUST be available for a plug-in to be loaded.
Here the references to all other plug-in known objects and classes are defined. The class is an abstract class where all implemented methods and properties need to be declared with override. The class is constructed when the environment is loading the DLL. More...
 
class  PositioningInformation
 Defines the position for an Item, the direction and view zone. More...
 
class  RestApiMIPException
 Thrown when RestAPI communication has issues
More...
 
class  ServerFaultMIPException
 Is thrown by the server having internal issues. Can be thrown when using configuration api. More...
 
class  ServerId
 The ServerId holds enough information for creating a connection.
Typically this can be used to construct an URL.
For plug-in developed solutions the ServerId need to be understood by the plug-ins own ItemManager, as this class is the primary place for creating, deleting and getting Items.
More...
 
class  TimeoutCommunicationMIPException
 Thrown when a timeout has happened on an underlying session. More...
 
class  UserContext
 This class is used for stand alone applications and services that need to handle multiple users logging in to the same set of server(s).
Some functions and methods are required to be called though this class instead of the usual Configuration.Instance.SomeMethod. More...
 
class  ValidateAndSaveMIPException
 Can be thrown by the ValidateAndSaveUserControl and ValidateAndSaveItemSummary methods implemented by MIP Plug-ins, when the user entry is not correct.
The management client/application will show a standard error dialog containing the message from the exception. More...
 

Enumerations

enum  AdminPlacementHint { Hidden , Default , Root }
 The placement enumeration is used to place or hide the plug-in's root UI node. Currently, the only visible location is Default: Under the MIP plug-in root node, and Root: Directly under the root node. More...
 
enum  BitmapColorSpace { NotApplicable = 0 , YCbCr_JFIF = 1 , YCbCr_RecBT601 = 2 , YCbCr_FullRange = 3 }
 Specifies the ColorSpace for bitmaps coming from the multimedia toolkit when one of the YCbCr formats are returned. More...
 
enum  BitmapFormat {
  Unknown = 0 , RGB24 = 1 , BGR24 = 2 , RGB32 = 3 ,
  BGR32 = 4 , YCbCr420_Planar = 5 , YCbCr422_Planar = 6 , YCbCr444_Planar = 7 ,
  RGBA = 8 , BGRA = 9 , Gray = 10
}
 Use for defining the format of a Bitmap coming from the multi media Toolkit. More...
 
enum  EnvironmentType {
  Administration , SmartClient , Standalone , Service ,
  ManagementServer
}
 Available types of Environments available.
More...
 
enum  FolderType { No , SystemDefined , UserDefined }
 Defines if this FQID is a single object or collection of objects, e.g. usually a group of same kind. Servers themselves are FolderType.SystemDefined, e.g. the top Item for XProtect Management Server and Recording servers are considered SystemDefined. More...
 
enum  HasChildren { Yes , No , Maybe }
 Specifies if Item has any Children. Used to enhance UI by only displaying the plus sign when relevant. More...
 
enum  HasRelated { Yes , No , Maybe }
 Specifies if Item has any related Items. More...
 
enum  ItemHierarchy { UserDefined , SystemDefined , Both }
 When getting items, the ItemHierarchy is used to specify which hierarchy to return. The UserDefined hierarchy returns user defined groups and content , when possible. The SystemDefined hierarchy returns ManagementServer, Recorderer, Items. More...
 
enum  MIPSoapErrorCode {
  None = 0 , EnterpriseServerUnknown = 10000 , EnterpriseClientSoap = 10002 , EnterpriseClientMethod = 10003 ,
  EnterpriseClientRequestRejectedDueToDualAuthorizationRequired = 10100 , EnterpriseClientAuthorizationRejectedDueToSelfAuthorization = 14000 , EnterpriseClientAuthorizationRejectedDueToNotMemberOfAuthorizeRole = 14100 , EnterpriseClientToken = 20001 ,
  EnterpriseServerTokenMax = 20002 , EnterpriseClientPermission = 20003 , EnterpriseClientParameterInvalid = 30001 , EnterpriseClientDevice = 30002 ,
  EnterpriseServerOperation = 40000 , EnterprisePresetLimit = 40001 , EnterprisePresetDuplicateName = 40002 , CorporateClientRequestRejectDueToTimeProfile = 50000 ,
  CorporateClientRequestReject = 51000 , CorporateClientRequestRejectedDueToDualAuthorizationRequired = 51100 , CorporateServerServiceNotStarted = 52000 , CorporateAuthorizationRejectedDueToSelfAuthorization = 54000 ,
  CorporateAuthorizationRejectedDueToNotMemberOfAuthorizeRole = 54100 , CorporateAuthorizationRejectedDueAuthorizationNotRequired = 54200 , CorporatePresetDuplicateName = 55001 , CorporatePresetUsedInPatrollingProfile = 55002
}
 Internal codes from VMS servers. More...
 
enum  Mode {
  ServerSetup , ClientSetup , ClientLive , ClientPlayback ,
  ServerService , StandAlone
}
 The Mode the application is running right now.
When the Mode changes, the message System.ModeChangedIndication is send with data set to the new Mode. Note: The current Mode is always available in: EnvironmentManager.Instance.Mode Note: Do not use Mode in Smart Client plugins. Instead use ShownWorkSpace, WorkSpaceState and associated messages. More...
 
enum  SearchResult { CountExceeded , TimeExceeded , OK , Error }
 SearchResult is used by the GetItemsBySearchAsync method to indicate the result of the command. More...
 
enum  WorkSpaceState { Normal , Setup }
 The available Smart Client work space states. More...
 

Functions

delegate void AsyncItemHandler (Item item, object callerReference)
 Defines how a Handler for retrieving a single Item looks like.
 
delegate void AsyncItemsHandler (List< Item > items, object callerReference)
 Defines how a Handler for retrieving multiple Items looks like.
 
delegate void AsyncItemsSearchHandler (List< Item > items, object callerReference, SearchResult result)
 Defines how a Handler for a Search Result looks like.
 
delegate object MessageReceiver (Message message, FQID destination, FQID sender)
 A method to receive Messages.
 

Enumeration Type Documentation

◆ AdminPlacementHint

The placement enumeration is used to place or hide the plug-in's root UI node. Currently, the only visible location is Default: Under the MIP plug-in root node, and Root: Directly under the root node.

Enumerator
Hidden 
Default 
Root 

◆ BitmapColorSpace

Specifies the ColorSpace for bitmaps coming from the multimedia toolkit when one of the YCbCr formats are returned.

Enumerator
NotApplicable 
YCbCr_JFIF 
YCbCr_RecBT601 
YCbCr_FullRange 

◆ BitmapFormat

Use for defining the format of a Bitmap coming from the multi media Toolkit.

Enumerator
Unknown 
RGB24 
BGR24 
RGB32 
BGR32 
YCbCr420_Planar 
YCbCr422_Planar 
YCbCr444_Planar 
RGBA 
BGRA 
Gray 

◆ EnvironmentType

Available types of Environments available.

Enumerator
Administration 

When running in the Management Client (Corporate, Expert, Professional+ or Express+ products)

SmartClient 

When running in the Smart Client.

Standalone 

When running .Net component library (VideoOS.Platform.SDK implementation)

Service 

When running in the Event Server.

ManagementServer 

When running in the Management Server.

◆ FolderType

Defines if this FQID is a single object or collection of objects, e.g. usually a group of same kind. Servers themselves are FolderType.SystemDefined, e.g. the top Item for XProtect Management Server and Recording servers are considered SystemDefined.

A user defined group will have FolderType.UserDefined.

This field is used by some of the UI components to select what Items to display.

If a user selects to find a camera by logical hierarchy, then TreeNodes is displayed based on Items with FolderType.UserDefined while drilling down groups by pressing the plus sign.

If a user selects to find a camera by physical hierarchy, then TreeNodes are displayed based on Items with FolderType.SystemDefined as this will show the Recorders, that again will contain all cameras for one recorder node being expanded.

Plug-in developed items can choose to implement the top node as SystemDefined (The 'server' of their system), and all children as FolderType.UserDefined if grouping applies, and then FolderType.No for lowest Item in the hierarchy - the 'real' item.

Enumerator
No 

Defines a specific item.

SystemDefined 

Defines a folder as defined by the physical hierarchym e.g. Server/Recorder/Hardware.

UserDefined 

Defines a folder that was defined as a device group.

◆ HasChildren

Specifies if Item has any Children. Used to enhance UI by only displaying the plus sign when relevant.

Enumerator
Yes 
No 
Maybe 

◆ HasRelated

Specifies if Item has any related Items.

Enumerator
Yes 
No 
Maybe 

◆ ItemHierarchy

When getting items, the ItemHierarchy is used to specify which hierarchy to return. The UserDefined hierarchy returns user defined groups and content , when possible. The SystemDefined hierarchy returns ManagementServer, Recorderer, Items.

Enumerator
UserDefined 

The hierarchy defined via the device groups in the Management Client.

SystemDefined 

The hierarchy defined via the recorders and devices on that recorder.

Both 

Both hierarchys, with top level server available 2 times.

◆ MIPSoapErrorCode

Internal codes from VMS servers.

Enumerator
None 
EnterpriseServerUnknown 
EnterpriseClientSoap 
EnterpriseClientMethod 
EnterpriseClientRequestRejectedDueToDualAuthorizationRequired 
EnterpriseClientAuthorizationRejectedDueToSelfAuthorization 
EnterpriseClientAuthorizationRejectedDueToNotMemberOfAuthorizeRole 
EnterpriseClientToken 
EnterpriseServerTokenMax 
EnterpriseClientPermission 
EnterpriseClientParameterInvalid 
EnterpriseClientDevice 
EnterpriseServerOperation 
EnterprisePresetLimit 
EnterprisePresetDuplicateName 
CorporateClientRequestRejectDueToTimeProfile 
CorporateClientRequestReject 
CorporateClientRequestRejectedDueToDualAuthorizationRequired 
CorporateServerServiceNotStarted 
CorporateAuthorizationRejectedDueToSelfAuthorization 
CorporateAuthorizationRejectedDueToNotMemberOfAuthorizeRole 
CorporateAuthorizationRejectedDueAuthorizationNotRequired 
CorporatePresetDuplicateName 
CorporatePresetUsedInPatrollingProfile 

◆ Mode

The Mode the application is running right now.
When the Mode changes, the message System.ModeChangedIndication is send with data set to the new Mode. Note: The current Mode is always available in: EnvironmentManager.Instance.Mode Note: Do not use Mode in Smart Client plugins. Instead use ShownWorkSpace, WorkSpaceState and associated messages.

Enumerator
ServerSetup 

Environment is in one of the administrators.

ClientSetup 

Environment is in the Client in the Setup mode.

ClientLive 

Environment is in the Client in the Live mode.

ClientPlayback 

Environment is in the Client in the Playback mode.

ServerService 

Environment is in the EventServer.

StandAlone 

Environment is in a standalone SDK Environment.

◆ SearchResult

SearchResult is used by the GetItemsBySearchAsync method to indicate the result of the command.

Enumerator
CountExceeded 

Search stopped because it found too many matching items.

TimeExceeded 

Search stopped bacause it took too long.

OK 

Search found some matching Items.

Error 

An internal error occurred, please check log file.

◆ WorkSpaceState

The available Smart Client work space states.

Enumerator
Normal 
Setup 

Function Documentation

◆ AsyncItemHandler()

delegate void VideoOS.Platform.AsyncItemHandler ( Item item,
object callerReference )

Defines how a Handler for retrieving a single Item looks like.

Parameters
itemThe Item, or null if not found
callerReferenceA user defined object that can be used for interpreting the result.

◆ AsyncItemsHandler()

delegate void VideoOS.Platform.AsyncItemsHandler ( List< Item > items,
object callerReference )

Defines how a Handler for retrieving multiple Items looks like.

Parameters
itemsThe result
callerReferenceA user defined object that can be used for interpreting the result.

◆ AsyncItemsSearchHandler()

delegate void VideoOS.Platform.AsyncItemsSearchHandler ( List< Item > items,
object callerReference,
SearchResult result )

Defines how a Handler for a Search Result looks like.

Parameters
itemsThe actual found Items that matches the search criteria.
callerReferenceUser defined reference.
resultIdentifies how the search stopped, e.g. hitting a limit or with content.

◆ MessageReceiver()

delegate object VideoOS.Platform.MessageReceiver ( Message message,
FQID destination,
FQID sender )

A method to receive Messages.

Parameters
messageThe Message
destinationId of destination, if relevant
senderId of the sender, if known