OpenDOF Project
Modules | Macros | Typedefs | Functions | Variables
DOF
Distributed Object Framework (DOF)

The DOF class represents a DOF networking node. More...

Modules

 DOFConfig
 The DOFConfig class specifies the initial configuration to use when creating a DOF.
 
 DOFLog
 DOFLog is a static logging class for use by the application to facilitate notification of runtime log information.
 
 DOFMem
 The DOF Memory Allocator is responsible for allocating memory used internally by the C OAL.
 
 DOFState
 A DOFState instance represents a snapshot of the DOF's configuration information as it exists at the moment when you call DOF_CreateState.
 

Macros

#define DOF_TIMEOUT_NEVER
 Platform-specific public function prototype declaration specification.
 
#define DOF_UNLIMITED
 Specifies no limit or the maximum limit allowed.
 

Typedefs

typedef struct DOF_t * DOF
 DOF is the foundation class of the DOF Framework.
 

Functions

DOF DOF_Create (DOFConfig config)
 Creates a DOF instance that uses the specified configuration.
 
void DOF_Destroy (DOF self)
 Frees resources allocated during the creation of a DOF.
 
DOFState DOF_CreateState (const DOF self)
 Creates a DOFState, which represents a snapshot of the DOF's configuration information as it exists at the moment when you call this function.
 
DOFSystem DOF_CreateSystem (DOF self, DOFSystemConfig config, uint32 timeout, DOFException *pException)
 Creates a DOFSystem that uses the specified configuration.
 
DOFConnection DOF_CreateConnection (DOF self, DOFConnectionConfig config)
 Creates a DOFConnection that uses the specified configuration.
 
DOFServer DOF_CreateServer (DOF self, DOFServerConfig config)
 Creates a DOFServer that uses the specified configuration.
 
boolean DOF_SetNodeDown (DOF self)
 Notifies the network that a DOF is about to be destroyed.
 
boolean DOF_SetConnectionLimit (DOF self, uint32 max)
 Changes the maximum number of simultaneous connections the DOF supports.
 
DOFRuntime DOF_GetRuntime (DOF self)
 Gets this DOF's runtime, which contains data about the internal runtime state of the DOF.
 
boolean DOF_ResolveCredentials (DOF self, DOFCredentials credentials, int timeout, DOFException *pException)
 Attempts to resolve the given credentials.
 
DOFAuthenticator DOF_GetAuthenticator (const DOF self, DOFObjectIDDomain domainID)
 Returns a DOFAuthenticator known to the DOF.
 
DOFSystemList DOF_CreateSystemList (const DOF self)
 Create a list of all systems associated with the DOF.
 
void DOF_CancelAllOperations (DOF self)
 Cancels all outstanding operations sourced by a DOF.
 
void DOF_Close (DOF self, DOFConnection connection)
 Forces a connection to close.
 
void DOF_Stop (DOF self, DOFServer server)
 Forces a server to stop.
 
DOFAuthenticator DOF_CreateAuthenticator (DOF self, DOFAuthenticatorConfig config)
 Creates a DOFAuthenticator that uses the specified configuration.
 
DOFAuthenticatorList DOF_CreateAuthenticatorList (const DOF self)
 Creates a DOFAuthenticatorList with all DOFAuthenticators known to the given DOF.
 
DOFDomain DOF_CreateDomain (DOF self, DOFDomainConfig config)
 Creates a DOFDomain that uses the specified configuration.
 
DOFDomainList DOF_CreateDomainList (DOF self)
 Create a DOFDomainList of all the domains associated with the DOF.
 
boolean DOF_AddDomainListener (DOF self, DOFDomainListener listener)
 Adds a DOFDomainListener to the given DOF, which is used to monitor the DOF's known security domains.
 
void DOF_RemoveDomainListener (DOF self, DOFDomainListener listener)
 Removes a DOFDomainListener from the given DOF.
 
boolean DOF_AddInterestListener (DOF self, DOFInterestListener listener)
 Adds a DOFInterestListener to the DOF.
 
void DOF_RemoveInterestListener (DOF self, DOFInterestListener listener)
 Removes a DOFInterestListener from the DOF.
 

Variables

DOFProtocolNegotiator DOF_DEFAULT_PROTOCOL_NEGOTIATOR
 The standard Default Protocol Negotiator.
 
DOFProtocolNegotiator DOF_DEFAULT_AS_PROTOCOL_NEGOTIATOR
 The standard Authentication Server (AS) Protocol Negotiator, for AS-only connections.
 

Initialization and Shutdown

The Initialization and Shutdown module provides functions to initialize or shut down the library as a whole.

These functions are included only with the C OAL. Other OALs do not require them.

void DOF_Init (void)
 Initializes the C Object Access Library.
 
void DOF_Shutdown (void)
 Terminates use of the C Object Access Library.
 

Detailed Description

The DOF class represents a DOF networking node.

Every program that uses DOF requires a DOF instance. The DOF controls routing between the components that form the basis of DOF connectivity: systems (DOFSystem), servers (DOFServer), and connections (DOFConnection). While systems initiate and process operations, it is the DOF that determines where to route those operations (which other systems, connections, or servers associated with that DOF will receive the traffic). The DOF uses operation state, routing tables, security constraints, and similar information to make this determination.

Because each DOF represents a separate DOF networking node, even when two DOFs reside in the same application, each is a separate logical node in the DOF network. So for example, while security-compatible systems on the same DOF can communicate directly, systems on separate DOFs require connections and servers to communicate—even if both DOFs are in the same application.

The DOF is created using DOF_Create and is initialized during creation. Some configuration parameters can be changed after creation to modify the behavior of an existing DOF and any objects created by it (for example, see DOF_SetConnectionLimit). However, changing other configuration parameters associated with the DOF requires taking the node down and building a new DOF with a new configuration. For information about all configuration parameters, see the functions of DOFConfigBuilder.

The DOF is used to create:

Each DOF uses several threads internally. These are started when the DOF is created.

The library itself must be initialized before creating a DOF instance, using DOF_Init.

core-c-dof-oal Version 8.0.1 Build 0
2018-01-22