6.6 Legion C++ type manipulation

The following section contains functions which allow for manipulation of typedefs which are normally C++ classes.

void
Show_CLegionHostReservation(
CLegionHostReservation, FILE*
);
void
Show_CLegionHostReservationRecord(
CLegionHostReservationRecord, FILE*
);
void
Show_CLegionVaultReservation(
CLegionVaultReservation, FILE*
);
void
Show_CLegionVaultReservationRecord(
CLegionVaultReservationRecord, FILE*
);
void
Show_CLegionReservation(CLegionReservation, FILE*);
void
Show_CLegionBinding(CLegionBinding, FILE*);
void
Show_CLegionHostObjectStatus(
CLegionHostObjectStatus, FILE*
);
void
Show_CLegionOPRAddress(CLegionOPRAddress, FILE*);
void
Show_CUVaL_InstanceRecord(CUVaL_InstanceRecord, FILE*);
void
Show_CInstancePlacementInfo(
CInstancePlacementInfo, FILE*
);
void
Show_CLegionCollectionData(CLegionCollectionData, FILE*);

Call the C++ show function on the given C++ class (named by Show_xxx).

Parameters:
All show functions take two parameters, the type to show
and the stream to "show" the output on.

Return Values:
NONE

User Responsibility: NONE

void
DestroyHostReservation(CLegionHostReservation);
void
DestroyHostReservationRecord(
CLegionHostReservationRecord
);
void
DestroyVaultReservation(CLegionVaultReservation);
void
DestroyVaultReservationRecord(
CLegionVaultReservationRecord
);
void
DestroyReservation(CLegionReservation);
void
DestroyLegionBinding(CLegionBinding);
void
DestroyHostObjectStatus(CLegionHostObjectStatus);
void
DestroyLegionOPRAddress(CLegionOPRAddress);
void
DestroyUVaL_InstanceRecord(CUVaL_InstanceRecord);
void
DestroyInstancePlacementInfo(CInstancePlacementInfo);
void
DestroyLegionCollectionData(CLegionCollectionData);

All of the complicated C++ types that are indirectly represented here as typedefs to ints must be explicitly destroyed so that there destructors may be called. To destroy an object of type xxx, call the Destroyxxx() function on its C typedef.

Parameters:
All destroy functions take one parameter, the variable of the
given type to destroy.

Return Values:
NONE

User Responsibility: NONE

int
HostReservationRecord_GetStatus(
CLegionHostReservationRecord
);
char*
HostReservationRecord_GetObjLoid(
CLegionHostReservationRecord
);
int
VaultReservationRecord_GetStatus(
CLegionVaultReservationRecord
);
char*
VaultReservationRecord_GetObjLoid(
CLegionVaultReservationRecord
);
CLegionHostReservation
LegionReservation_GetHostReservation(
CLegionReservation
);
CLegionVaultReservation
LegionReservation_GetVaultReservation(
CLegionReservation
);
CLegionHostReservation
CreateLegionHostReservation(LegionIdType, char *HostName,
int identity, int flags
);
CLegionVaultReservation
CreateLegionVaultReservation(LegionIdType,
char *VaultName, int identity
);
CLegionReservation
CreateReservation(CLegionHostReservation,
CLegionVaultReservation
);
char*
InstancePlacementInfo_GetInstance(
CInstancePlacementInfo
);
char*
InstancePlacementInfo_GetHost(CInstancePlacementInfo);
char*
InstancePlacementInfo_GetImpl(CInstancePlacementInfo);
char*
InstancePlacementInfo_GetVault(CInstancePlacementInfo);
CLegionReservation
InstancePlacementInfo_GetRSVN(CInstancePlacementInfo);
int
InstancePlacementInfo_GetArch(CInstancePlacementInfo);
CInstancePlacementInfo
CreateInstancePlacementInfo(char *InstanceLOID,
LegionIdType, char *HostName,
LegionIdType, char *ImplName,
LegionIdType, char *VaultName,
CLegionReservation, int Arch
);
char*
HostObjectStatus_GetLoid(CLegionHostObjectStatus);
char*
HostObjectStatus_GetOwner(CLegionHostObjectStatus);
int
HostObjectStatus_GetActivationID(
CLegionHostObjectStatus
);
int
HostObjectStatus_GetStatus(CLegionHostObjectStatus);
int
HostObjectStatus_GetErrorCode(CLegionHostObjectStatus);
CLegionBinding
HostObjectStatus_GetBinding(CLegionHostObjectStatus);
char*
UVaL_InstanceRecord_GetLoid(CUVaL_InstanceRecord);
char*
UVaL_InstanceRecord_GetOwner(CUVaL_InstanceRecord);
int
UVaL_InstanceRecord_GetStatus(CUVaL_InstanceRecord);
char
UVaL_InstanceRecord_GetCommandLineObj(
CUVaL_InstanceRecord
);
unsigned long
UVaL_InstanceRecord_GetLastTransitionTime(
CUVaL_InstanceRecord
);
int
UVaL_InstanceRecord_GetActivationId(
CUVaL_InstanceRecord
);
char*
UVaL_InstanceRecord_GetHost(CUVaL_InstanceRecord);
char*
UVaL_InstanceRecord_GetVault(CUVaL_InstanceRecord);
int
UVaL_InstanceRecord_GetTransferringOpr(
CUVaL_InstanceRecord
);
char*
UVaL_InstanceRecord_GetTransferringToVault(
CUVaL_InstanceRecord
);
int
UVaL_InstanceRecord_GetTesting(CUVaL_InstanceRecord);
unsigned long
UVaL_InstanceRecord_GetStartTestTime(
CUVaL_InstanceRecord
);
unsigned long
UVaL_InstanceRecord_GetXferTime(CUVaL_InstanceRecord);
unsigned int
UVaL_InstanceRecord_GetHostTries(CUVaL_InstanceRecord);
char*
LegionCollectionData_GetLOID(CLegionCollectionData);
long
LegionCollectionData_GetLastUpdateTime(
CLegionCollectionData
);

*/ These resource descriptions are in the form of a	/*
*/ null terminated list of UVaL_ObjAttributes 	/*
*/ (in string form)	/*

char**
LegionCollectionData_GetResourceDesc(
CLegionCollectionData
);

All of the complicated C++ types that are indirectly represented here as typedefs to ints have internal members which are useful to access. For that purpose, a number of "accessor" functions are provided. All function names are of the form <C++ TypeName>_Get<C++ Field>.

Parameters:
All "accessor" functions take one parameter, the variable of
from which the user wishes to access a member.

Return Values:
All "accessor" functions return one of three things:

  • A basic integral type
  • Another C typedef for a C++ class
  • a char* which is the LOID of the value requested

User Responsibility:
When a C typedef for a C++ class is returned, the user is
responsible for Destroying that type when done. When a
char* is returned, the user is responsible for "free"ing the
dynamically created memory.

Directory of Legion 1.6.4 Manuals
[Home] [General] [Documentation] [Software]
[Testbeds] [Et Cetera] [Map/Search]

Free JavaScripts provided by The JavaScript Source

legion@Virginia.edu
http://legion.virginia.edu/