Classes | Typedefs | Enumerations | Variables

maci Namespace Reference

Classes

interface  LoggingConfigurable
struct  ComponentInfo
struct  AuthenticationData
interface  Client
struct  ClientInfo
interface  CBComponentInfo
interface  Container
struct  ContainerInfo
interface  Administrator
interface  SynchronousAdministrator
struct  ComponentSpec
interface  Manager

Typedefs

typedef unsigned long AccessDescriptor
typedef sequence< string > stringSeq
typedef unsigned long Handle
typedef string CURL
typedef sequence< string > CURLSeq
typedef sequence< unsigned long > ulongSeq
typedef ulongSeq HandleSeq
typedef long long ExecutionId
typedef sequence< ComponentInfoComponentInfoSeq
typedef sequence< ClientInfoClientInfoSeq
typedef sequence< ContainerInfoContainerInfoSeq
typedef sequence< Object > ObjectSeq
typedef sequence< ComponentSpecComponentSpecSeq

Enumerations

enum  ImplLangType { JAVA, CPP, PYTHON }
enum  ClientType { CLIENT_TYPE, ADMINISTRATOR_TYPE, CONTAINER_TYPE }

Variables

const string COMPONENT_SPEC_ANY = "*"

Detailed Description

MACI Management and Access Control Interface. In abstract terms, a control system can be viewed as a collection of services that enable the interaction between the controlled entities and the clients.

The MACI module provides meta-services to manage the services themself. In particular it provides a uniform environment in which the services function and handles their life cycle.


Typedef Documentation

typedef unsigned long maci::AccessDescriptor

A 32-bit integer representing access rights. It is used to describe access rights possessed by accessors and those required by objects being accessed). In order for access to be granted, bitwise and of POSSESED and REQUIRED must equal REQUIRED.

typedef sequence<ClientInfo> maci::ClientInfoSeq

Convenience typedef for sequences of ClientInfo

Convenience typedef for sequences of ComponentInfo

Convenience typedef for sequences of ComponentSpec

Convenience typedef for sequences of ContainerInfo.

typedef string maci::CURL

Every component must have a unique designation, which clients use to identify that component. As a metaservice, MACI provides name resolution that from a well-formed component designation generates the component reference that can be returned to the client. Well-formed component designations are component URLs or CURLs. CURL is a hierarchical name implemented as a string of arbitrary length that consists of a static prefix (curl:// ), domain identifier and the component name. An example of a CURL might be "curl://antenna1.alma/mount/motor2", representing the 2nd motor of the mount component for ALMA antenna number 1.

The syntax of the CURL is:

curl://subdomain.domain/object/subobject

Both the domain and the object part form a hierarchy. Components of the domain name are separated by a dot, and parts of the object name are separated by a slash.

typedef sequence<string> maci::CURLSeq

Convenience typedef for sequences of CURLs.

typedef long long maci::ExecutionId

Convenience typedef for sequences of ExecutionId

typedef unsigned long maci::Handle

The Handle alias defines a universal handle used by MACI to uniquely tag the object instances. Handles optimize access and identifications of MACI components and replace the use of string identifiers. Handles are not unique globally and are not static. Manager guarantees only that they are unique in their scope and only for the duration of the object denoted by the handle.

Upper 8 bits (24 to 31) of the handle denote the type of the object that the handle is representing. Possible values of the upper-most byte are:

  • 0 - the handle is reserved
  • 1 - the handle represents a component
  • 2 - the handle represents a client
  • 3 - the handle represents an administrator
  • 4 - the handle represents a container
  • 5 - the handle represents a Manager (for inter-domain communcation).

Bits 0 thru 15 uniquely tag object instance. Bits 16 thru 23 are reserved.

Convenience typedef for sequences of Handle

typedef sequence<Object> maci::ObjectSeq

Convenience typedef for sequences of objects.

typedef sequence<string> maci::stringSeq

Convenience typedef for sequences of strings.

typedef sequence<unsigned long> maci::ulongSeq

Convenience typedef for sequences of unsigned longs.


Enumeration Type Documentation

Enumerator:
CLIENT_TYPE 
ADMINISTRATOR_TYPE 
CONTAINER_TYPE 
Enumerator:
JAVA 
CPP 
PYTHON 

Variable Documentation

const string maci::COMPONENT_SPEC_ANY = "*"

String constant denoting any entry in the component specification, the value will be determined by the Manager.