openfam::fam::fam_lookup
Look up a descriptor to a region or data item in the metadata service.
Synopsis
Fam_Region_Descriptor *fam_lookup_region(char *regionName);
Fam_Descriptor *fam_lookup(char *itemName, char *regionName);
Description
These methods look up a descriptor registered with the metadata service using its name.
Input Arguments
| Name | Description |
|---|---|
| itemName | Name of the data item to be looked up. |
| regionName | Name of the region, or region containing the item. |
Return Values
A descriptor to the value in FAM. Throws Fam_Exception on error.
Fam Error Numbers
| Error | Description |
|---|---|
| FAM_ERR_NOPERM | Caller does not have access rights. |
| FAM_ERR_NOTFOUND | Item or region name was not found by the metadata service. |
| FAM_ERR_RPC | Communication error from grpc layer. |
| FAM_ERR_RPC_CLIENT_NOTFOUND | RPC service not available. |
| FAM_ERR_METADATA | Metadata service error. |
Notes
See the fam_create_region() and fam_allocate() APIs for discussion of regions and data items.
Example
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fam/fam.h>
#include <fam/fam_exception.h>
using namespace std;
using namespace openfam;
int main(void) {
fam *myFam = new fam();
// ... initialization code here
try {
// get a region descriptor from the metadata service
Fam_Region_Descriptor *region = myFam->fam_lookup_region("myRegion");
// Get a descriptor (created by another PE) via the metadata service
Fam_Descriptor *arrayDescriptor = myFam->fam_lookup("myArray", "myOtherRegion");
} catch (Fam_Exception &e) {
printf("Look up failed: %d: %s\n", e.fam_error(), e.fam_error_msg());
}
// ... continuation code here
}