Classes | Typedefs | Enumerations | Enumerator | Functions | Variables

CORBA Interface Definitions
[Interprocess Communication]

Backbone of IVD is implemented using CORBA. More...

Collaboration diagram for CORBA Interface Definitions:

Classes

class  i_Collection_i
class  i_Component_i
struct  i_VolInfo_t
 Used to get current media info and to specify initialisation parameters. More...
interface  i_BackEndAgent
interface  i_Collection
struct  i_Version
interface  i_Component
struct  i_FSCNumCopVsNumPoolsCheckStatus_t
struct  i_FSCfileState_t
struct  i_FRIBlockInfo_t
struct  i_IvdfsFileInfo_t
struct  i_FileHistory_t
interface  i_FSC
struct  i_FileSystemInfo_t
interface  i_FsEvMgr
struct  i_FileExpiration_t
struct  i_ClientConf_t
struct  i_HsmInfo_t
interface  i_HSM
interface  i_Job
struct  i_JobParams
interface  i_LibraryAgent
struct  i_PartitionInfo_t
interface  i_ManagementInterface
interface  i_UploadAgent
interface  i_DownloadAgent
interface  i_BackupAgent
 Uses UploadAgent to write to named pipe connected to ivddd (writing tape). More...
interface  i_RestoreAgent
 Uses DownloadAgent to read from named pipe connected to ivddd (reading tape). More...
interface  i_PartitionManager
interface  i_ResourceManager
struct  i_Library_t
struct  i_Drive_t
struct  i_MajorCol_t
struct  i_MinorCol_t
struct  i_ColMediaVol_t
struct  i_DriveHost_t
struct  i_DiskSubsys_t
struct  i_Slot_t
struct  i_SlotUpdate_t
 Used to set current state of the library's slots. More...
struct  i_MediaPool_t
struct  i_Medium_t
struct  i_MediumVol_t
struct  i_Partition_t
struct  i_PoolInfo_t
struct  i_VolumeInfo_t
struct  i_MediaInfo_t
interface  i_Service
exception  i_IvdException
 all possible data members from ivd_Exception are included More...
struct  i_FileAge_t
struct  i_File_t
struct  i_JobRequest_t
struct  i_MediumPos_t
struct  i_Resource_t
struct  i_FileLocationData_t
 WARNING: members of this structure must be binary equal to ivd_FileLocationData_t (include/ivd/ivd_FileLocationData_t.h). More...
struct  i_Recall_t
struct  i_ActivateResult_t
struct  i_ColInfo_t
struct  i_HL7Info_t
struct  i_UIResultCell_t
struct  i_UIResultRow_t
struct  i_UIResult_t
interface  i_UIMessageServer
class  ipc_Corba
 CORBA helper class. More...

Typedefs

typedef sequence< i_VolInfo_ti_VolInfoList_t
typedef sequence
< i_FSCfileState_t
i_FSCfileState_v_t
typedef sequence
< i_IvdfsFileInfo_t
i_IvdfsFileInfo_v_t
typedef sequence< i_FileHistory_ti_FileHistoryList_t
typedef unsigned long long i_CollocationID_t
typedef sequence
< i_CollocationID_t
i_CollocationIDs_t
typedef sequence
< i_FileSystemInfo_t
i_FSInfoList_t
typedef sequence
< i_FileExpiration_t
i_FileExpirationList_t
typedef sequence< i_JobParamsi_JobParamsSeq_t
typedef sequence< i_Jobi_JobList_t
typedef sequence
< i_PartitionInfo_t
i_PartInfoList_t
typedef sequence< i_Library_ti_LibrarySeq_t
typedef sequence< i_Drive_ti_DriveSeq_t
typedef sequence< i_MajorCol_ti_MajorColSeq_t
typedef sequence< i_MinorCol_ti_MinorColSeq_t
typedef sequence< i_ColMediaVol_ti_ColMediaVolSeq_t
typedef sequence< i_DriveHost_ti_DriveHostSeq_t
typedef sequence< i_DiskSubsys_ti_DssSeq_t
typedef sequence< i_Slot_ti_SlotSeq_t
typedef sequence< i_SlotUpdate_ti_UpdateList_t
typedef sequence< i_MediaPool_ti_MediaPoolSeq_t
typedef sequence< i_Medium_ti_MediumSeq_t
typedef sequence< i_MediumVol_ti_MediumVolSeq_t
typedef sequence
< i_MediumVolSeq_t
i_MediumSeqByVol_t
typedef sequence< i_Partition_ti_PartSeq_t
typedef sequence< i_PoolInfo_ti_PoolInfoSeq_t
typedef sequence< i_VolumeInfo_ti_VolumeInfoSeq_t
typedef sequence< i_MediaInfo_ti_MediaInfoSeq_t
typedef unsigned long i_FileID_t
typedef unsigned long long i_MigID_t
 File ID.
typedef unsigned long i_CopyID_t
 Migration ID.
typedef unsigned long i_DataType_t
 Copy ID (used in FSC).
typedef unsigned long i_DBKey_t
 Copy ID (used in FSC).
typedef unsigned long i_Count_t
 RMDB Key.
typedef long i_Index_t
 Any kind of number of elements.
typedef unsigned long long i_FileSize_t
 Any kind of index (revision#, HSM job index, volume #...).
typedef unsigned long i_BlkSize_t
 Files' size, offset and similar.
typedef unsigned long i_VolSize_t
 Tape block size.
typedef unsigned long i_BlkOffset_t
 Volume size in MB.
typedef unsigned long long i_JobID_t
 Absolute block position on media.
typedef long i_Time_t
 Job ID.
typedef long i_Type_t
 Time member/argument.
typedef unsigned long i_BitFlag_t
 Any kind of type (library, medium family...).
typedef unsigned long i_Status_t
 Bitflags (options, capabilities...).
typedef string i_UUID_t
 Various statuses.
typedef unsigned long i_JobType_t
 Stringified UUID.
typedef unsigned long long i_ColID_t
 job type enum as UInt value
typedef sequence< string > i_StringList_t
typedef sequence< long > i_LongList_t
typedef sequence< unsigned long > i_ULongList_t
typedef sequence< unsigned
long long > 
i_ULongLongList_t
typedef sequence< booleani_BoolList_t
typedef sequence< octet > i_DataBlock_t
typedef sequence< i_FileID_ti_FileIDs_t
typedef sequence< i_VolSize_ti_VolSizes_t
typedef sequence< i_JobID_ti_JobIDList_t
typedef sequence< i_Index_ti_VolNumList_t
typedef sequence< i_FileAge_ti_FileAgeList_t
typedef sequence< i_File_ti_FileList_t
typedef sequence< i_FileList_ti_FileGroups_t
typedef sequence< i_JobRequest_ti_JobRequestList_t
typedef sequence< i_MediumPos_ti_MediumPos_v_t
typedef sequence< i_MediumPos_v_ti_CopiesPos_v_t
typedef sequence< i_Resource_ti_ResourceList_t
typedef sequence
< i_FileLocationData_t
i_FileLocationDataList_t
typedef sequence< i_Recall_ti_RecallList_t
typedef sequence< i_ColInfo_ti_ColInfoList_t
typedef sequence< i_HL7Info_ti_HL7InfoList_t
typedef sequence
< i_UIResultCell_t
i_UIResultCellSeq_t
typedef sequence< i_UIResultRow_ti_UIResultTable_t

Enumerations

enum  i_VolumeType {
  i_VOL_BLANK, i_VOL_IVD,
  i_VOL_ECMA, i_VOL_TAR,
  i_VOL_OTHER, i_VOL_IVD_NT
}
 

Used for detection of current volume.

More...
enum  i_SysVolAction_e {
  i_SV_NOTHING, i_SV_OVERWRITE,
  i_SV_APPEND, i_SV_REPLACE
}
 

These actions are used when FRIs are recreated on demand using the CLI.

More...
enum  i_OSType_e {
  i_Linux, i_Windows,
  i_HPUX, i_OtherOS
}
enum  i_FileSystemStatus_e {
  hsmfs_UNKNOWN, hsmfs_REGULAR,
  hsmfs_WORMFS, hsmfs_LAM,
  hsmfs_LAM_OFFLINE, hsmfs_NOT_ATTACHED,
  hsmfs_NOT_CONFIGURED, hsmfs_NOT_ACTIVE
}
enum  i_FSType_e { i_FST_REGULAR, i_FST_WORM }
enum  i_HsmTask_e { i_htCheckFSCvsIVDFS, i_htCheckFSCvsMedia }
enum  i_JobStatus_e {
  job_NOT_STARTED, job_STARTED,
  job_PRE_MED_PROC, job_MED_PROC,
  job_POST_MED_PROC, job_NA
}
enum  i_JobPriorityMod_e {
  jp_RELATIVE, jp_ABSOLUTE,
  jp_UNKNOWN
}
enum  i_PartitionStatus_e {
  part_UNKNOWN, part_DISABLED,
  part_STOPPED, part_RUNNING,
  part_MOUNTED
}
enum  i_Binaries_e {
  i_IVDFSEVTMGR, i_IVDHSM,
  i_IVDPM, i_IVDRM,
  i_IVDBEA, i_IVDLAS,
  i_IVDLAM, i_IVDDD,
  i_IVD, i_IVDBCK,
  i_IVDRST, i_ECHO,
  i_SENTINEL
}
enum  i_DirectoryType_e {
  dt_ETC, dt_DISKBUF,
  dt_FRI, dt_LOG,
  dt_PART, dt_TMP,
  dt_PIPE
}
 

Directory tranfer type to specify the directory where to perform file operations on.

More...
enum  i_DbgLevel_e {
  i_dbgLOW, i_dbgNORMAL,
  i_dbgDETAIL
}
 

Major or minor collocation ID type.

More...
enum  i_ExceptionType_e {
  et_IVD_INTERNAL_ERROR, et_IVD_EXCEPTION,
  et_SYS_ERROR, et_IVD_ERROR,
  et_IVD_DF_ERROR, et_IVD_DB_EXCEPTION,
  et_UNKNOWN_ERROR
}
enum  i_FileState_e {
  fs_NOSTATE, fs_FORMIGRATION,
  fs_DOMIGRATION, fs_MIGRATED
}
enum  i_ResourceBusy_e {
  i_RESOURCE_UNKNOWN, i_MEDIUM_BUSY,
  i_MEDIUM_NOT_AVAILABLE, i_DRIVE_BUSY,
  i_DRIVE_NOT_AVAILABLE, i_PRIORITY_BELOW_THRESHOLD,
  i_LIBRARY_NOT_AVAILABLE, i_MAX_NUM_DRIVES,
  i_COL_GRP_SIZE_EXC
}
enum  i_BufType_t {
  i_DISK_BUF, i_SHMEM_BUF,
  i_REMOTE_BUF, i_NA
}
enum  i_CompletionStatus_e {
  i_SUCCEDED, i_FAILED,
  i_INV_PARAMS, i_CLIENT_ERROR,
  i_CLIENT_NOFILES, i_RESOURCE_ERROR,
  i_FSC_ERROR, i_RMCOPYPOS_ERROR,
  i_NO_HOST, i_LA_ERROR,
  i_SVC_ERROR, i_BEA_ERROR,
  i_MEDIUM_ERROR, i_HW_ERROR,
  i_INV_MEDVOLID, i_DATA_ERROR,
  i_REMOVED, i_ABORTED,
  i_UNKNOWN
}
enum  i_UIResultType_e {
  uires_TEXT, uires_NUM,
  uires_BOOL, uires_RAW,
  uires_LIBRARYSTATUS, uires_SLOTSTATUS,
  uires_DRIVESTATUS, uires_POOLSTATUS,
  uires_PARTITIONSTATUS, uires_PARTITIONACTIVITY,
  uires_MEDIUMSTATUS, uires_VOLUMESTATUS,
  uires_JOBSTATUS, uires_LIBRARYTYPE,
  uires_MEDIAFAMILYTYPE, uires_MEDIAPOOLTYPE,
  uires_SLOTTYPE, uires_MEDIATYPE,
  uires_SYSVOLLOCATION, uires_VOLTYPE,
  uires_NA, uires_FSTYPE,
  uires_PARTITIONOPTIONS, uires_JOBTYPE,
  uires_NO_TYPE
}
enum  i_UIItemType_e {
  uiitem_CELL, uiitem_TABLE,
  uiitem_UNKNOWN
}
enum  i_UIAlignType_e {
  uialign_LEFT, uialign_CENTER,
  uialign_RIGHT
}

Functions

template<class TGT_SEQ_TYPE >
void ipc_ReceiveCompleteCollection (TGT_SEQ_TYPE &a_tgtSeq, i_Collection_ptr a_colref)
 Template function to read all batches from a sequence and append them to the a_tgtSeq.
const UInt32_t ipc_MAX_CONNECTIONS_c (64)
 Maximum connections that are opened by omniORB to another address space.
const UInt32_t ipc_CLIENT_TIMEOUT_MS_c (2 *24 *60 *60 *1000)
 Client side call timeout to prevent starvation (in ms).
const char * ipc_CLIENT_TIMEOUT_ENV_c ("HSM_CALL_TIMEOUT")
 Environment variable to override the default (in ms).
const UInt32_t ipc_NS_ACCESS_RETRIES_c (30)
 How long should the process try to get access to CORBA Naming Service.
const char *const ipc_nilStr ("\0")
static void ipc_DbgOn (log_DbgLevel_t a_level, bool a_verbose)
 Turn on omniORB debugging by changing debug levels.
static void ipc_DbgOff ()
 Turn off omniORB debugging by lowering debug levels.
void ipc_ORBLogCallback (const char *a_logText)
static const char * ipc_corbaLiteral_c ("CORBA::")
const char * ipc_unknownExcLiteral_c ("** Unknown exception **")
const char * ipc_corbaFatalExcLiteral_c ("** CORBA::fatalException: ")
const char * ipc_iIVDExcLiteral_c ("** i_IvdException: ")
string ipc_CORBAExceptionToString (const CORBA::Exception &a_exc)
 Operator to display a CORBA exception in human readable form to an C++ string.
string ipc_CORBASysExceptionToString (const CORBA::SystemException &a_exc)
ostream & operator<< (ostream &a_os, const CORBA::Exception &a_exc)
ostream & operator<< (ostream &a_os, const CORBA::SystemException &a_sysExc)
ostream & operator<< (ostream &a_os, const omniORB::fatalException &a_fe)
ostream & operator<< (ostream &a_os, const omni_thread_fatal &otf)
ostream & operator<< (ostream &a_os, const omni_thread_invalid &otf)
ostream & operator<< (ostream &a_os, const i_IvdException &a_exc)
ostream & operator<< (ostream &a_os, const CORBA::Object_ptr &a_obj)
 Displays type code ID of the CORBA::Object reference.
void ipc_ConvertIpcExToIvdEx (i_IvdException &a_ie)
static ipc_Corbaipc_Corba::Singleton ()
 ipc_Corba::ipc_Corba ()
virtual ipc_Corba::~ipc_Corba ()
void ipc_Corba::StopSignalHandler ()
static void ipc_Corba::Destroy ()
static void ipc_Corba::Init (bool a_waitNamingSvc=true, bool a_shutdownOnSignal=true, int a_argc=0, char *a_argv[]=NULL)
 Initializes ORB and root naming context from Naming service.
static void ipc_Corba::ActivatePOA ()
static void ipc_Corba::RegisterMajorServant (i_Component_i *a_majServant)
static void ipc_Corba::RemoveMajorServant ()
static bool ipc_Corba::IsMajorServant (const i_Component_i *a_obj)
static void ipc_Corba::ResetMajorServant ()
static void ipc_Corba::Run ()
static void ipc_Corba::Shutdown ()
 This function must be called by the destructor of the major servant to shut down the ORB (exit from its run() function).
static void ipc_Corba::RegisterRM (const CORBA::Object_ptr a_objref)
static CORBA::Object_ptr ipc_Corba::ResolveRM (bool a_wait=true)
static void ipc_Corba::RegisterMIF (const CORBA::Object_ptr a_objref)
static CORBA::Object_ptr ipc_Corba::ResolveMIF (const string &a_serverHost, bool a_wait=true)
static void ipc_Corba::RegisterPMByPMID (const CORBA::Object_ptr a_objref, const string &a_partID)
static void ipc_Corba::RegisterPMByFSID (const CORBA::Object_ptr a_objref, const string &a_clientHost, const string &a_fsID)
static void ipc_Corba::RegisterPMByDeviceName (const CORBA::Object_ptr a_objref, const string &a_clientHost, const string &a_fsDevName)
static CORBA::Object_ptr ipc_Corba::ResolvePMByPartID (const string &a_serverHost, const string &a_partID, bool a_wait=true)
static CORBA::Object_ptr ipc_Corba::ResolvePMByFSID (const string &a_clientHost, const string &a_fsID, bool a_wait=true)
static CORBA::Object_ptr ipc_Corba::ResolvePMByDeviceName (const string &a_clientHost, const string &a_fsDevName, bool a_wait=true)
static void ipc_Corba::RegisterFSEvtMgr (const CORBA::Object_ptr a_objref)
static CORBA::Object_ptr ipc_Corba::ResolveFSEvtMgr (const string &a_serverHost, bool a_wait=true)
static void ipc_Corba::RegisterSvc (const CORBA::Object_ptr a_objref)
static CORBA::Object_ptr ipc_Corba::ResolveSvc (const string &a_serverHost, bool a_wait=true)
static void ipc_Corba::RegisterLA (const CORBA::Object_ptr a_objref, const string &a_libraryName)
static CORBA::Object_ptr ipc_Corba::ResolveLA (const string &a_serverHost, const string &a_libraryName, bool a_wait=true)
CORBA::Object_ptr ipc_Corba::ResolveTargetPM (const string &a_serverHost, const string &a_partName)
static const string ipc_Corba::MangledHostName (const string &a_hostName)
 CORBA Naming service treats '.
static const string ipc_Corba::MangledDeviceName (const string &a_devName)
 CORBA Naming service treats '/' as a special character.
static const string ipc_Corba::GetRM_NSEntry ()
static const string ipc_Corba::GetMIF_NSEntry (const string &a_serverHost)
static const string ipc_Corba::GetPMID_NSEntry (const string &a_serverHost, const string &a_partID)
static const string ipc_Corba::GetPMFSID_NSEntry (const string &a_serverHost, const string &a_fsID)
static const string ipc_Corba::GetPMFSName_NSEntry (const string &a_serverHost, const string &a_fsID)
static const string ipc_Corba::GetFSEvtMgr_NSEntry (const string &a_serverHost)
static const string ipc_Corba::GetSvc_NSEntry (const string &a_serverHost)
static const string ipc_Corba::GetLA_NSEntry (const string &a_serverHost, const string &a_libName)
void ipc_Corba::Register (const CORBA::Object_ptr a_objref, const string &a_objectName)
CORBA::Object_ptr ipc_Corba::Resolve (const string &a_objectName, bool a_wait=true)
static void ipc_Corba::InitDebug ()
 Sets pointers to functions that are called at each dbg_On() and dbg_Off().

Variables

class _OMNIORB_NTDLL_IMPORT POA_i_Component
i_MigID_t i_JobParams::migID
long i_JobParams::jobPriority
long i_JobParams::priorityModifier
string i_JobParams::partName
i_UUID_t i_JobParams::partUUID
i_JobType_t i_JobParams::jobType
i_BufType_t i_JobParams::bufType
unsigned long long i_JobParams::bufId
i_Time_t i_JobParams::startTime
i_Index_t i_JobParams::phase
i_Count_t i_JobParams::copies
i_JobStatus_e i_JobParams::status
string i_JobParams::diskBufferFS
static const char s_orbName [] = "omniORB4"
static const CORBA::ULong ipc_Corba::m_dbgLow
static const CORBA::ULong ipc_Corba::m_dbgNorm
static const CORBA::ULong ipc_Corba::m_dbgDetail
static const CORBA::ULong ipc_Corba::m_dbgVerbose
 Verbose level of debugging: up to 128 bytes of GIOP messages are displayed.
static const string ipc_Corba::m_nsIvdPrefix_c = g_cmn.prod.m_nameShort
static const string ipc_Corba::m_nsIvdRM_c = string("rm")
static const string ipc_Corba::m_nsIvdLib_c = string("lib")
static const string ipc_Corba::m_nsIvdMgr_c = string("mgr")
static const string ipc_Corba::m_nsIvdMIF_c = string("mif")
static const string ipc_Corba::m_nsIvdPart_c = string("part")
static const string ipc_Corba::m_nsIvdClt_c = string("clt")
static const string ipc_Corba::m_nsIvdEvtMgr_c = string("fsevtmgr")
static const string ipc_Corba::m_nsIvdFS_c = string("fs")
static const string ipc_Corba::m_nsIvdSvc_c = string("svc")

Detailed Description

Backbone of IVD is implemented using CORBA.

Interfaces are described using CORBA IDL.

Migration of files is shown on the following UML sequence diagram:

IVD-CORBA-migration.gif

CORBA IPC implementation hints

Author:
Matej Kenda, HERMES SoftLab

Typedef Documentation

typedef unsigned long i_BitFlag_t

Any kind of type (library, medium family...).

Definition at line 24 of file i_types.idl.

typedef unsigned long i_BlkOffset_t

Volume size in MB.

Definition at line 20 of file i_types.idl.

typedef unsigned long i_BlkSize_t

Files' size, offset and similar.

Definition at line 18 of file i_types.idl.

typedef sequence<boolean> i_BoolList_t

Definition at line 36 of file i_types.idl.

typedef unsigned long long i_ColID_t

job type enum as UInt value

Definition at line 28 of file i_types.idl.

typedef sequence<i_ColInfo_t> i_ColInfoList_t

Definition at line 279 of file i_types.idl.

typedef unsigned long long i_CollocationID_t

Definition at line 69 of file i_fsc.idl.

Definition at line 70 of file i_fsc.idl.

Definition at line 94 of file i_rmtypes.idl.

typedef sequence<i_MediumPos_v_t> i_CopiesPos_v_t

Definition at line 109 of file i_types.idl.

typedef unsigned long i_CopyID_t

Migration ID.

Definition at line 12 of file i_types.idl.

typedef unsigned long i_Count_t

RMDB Key.

Definition at line 15 of file i_types.idl.

typedef sequence<octet> i_DataBlock_t

Definition at line 38 of file i_types.idl.

typedef unsigned long i_DataType_t

Copy ID (used in FSC).

Definition at line 13 of file i_types.idl.

typedef unsigned long i_DBKey_t

Copy ID (used in FSC).

Definition at line 14 of file i_types.idl.

typedef sequence<i_DriveHost_t> i_DriveHostSeq_t

Definition at line 104 of file i_rmtypes.idl.

typedef sequence<i_Drive_t> i_DriveSeq_t

Definition at line 67 of file i_rmtypes.idl.

typedef sequence<i_DiskSubsys_t> i_DssSeq_t

Definition at line 117 of file i_rmtypes.idl.

typedef sequence<i_FileAge_t> i_FileAgeList_t

Definition at line 79 of file i_types.idl.

Definition at line 27 of file i_hsm.idl.

typedef sequence<i_FileList_t> i_FileGroups_t

Definition at line 89 of file i_types.idl.

Definition at line 67 of file i_fsc.idl.

typedef unsigned long i_FileID_t

Definition at line 10 of file i_types.idl.

typedef sequence<i_FileID_t> i_FileIDs_t

Definition at line 39 of file i_types.idl.

typedef sequence<i_File_t> i_FileList_t

Definition at line 88 of file i_types.idl.

Definition at line 254 of file i_types.idl.

typedef unsigned long long i_FileSize_t

Any kind of index (revision#, HSM job index, volume #...).

Definition at line 17 of file i_types.idl.

Definition at line 42 of file i_fsc.idl.

Definition at line 30 of file i_fsevmgr.idl.

typedef sequence<i_HL7Info_t> i_HL7InfoList_t

Definition at line 287 of file i_types.idl.

typedef long i_Index_t

Any kind of number of elements.

Definition at line 16 of file i_types.idl.

Definition at line 58 of file i_fsc.idl.

typedef unsigned long long i_JobID_t

Absolute block position on media.

Definition at line 21 of file i_types.idl.

typedef sequence<i_JobID_t> i_JobIDList_t

Definition at line 41 of file i_types.idl.

typedef sequence<i_Job> i_JobList_t

Definition at line 45 of file i_jobdef.idl.

typedef sequence<i_JobParams> i_JobParamsSeq_t

Definition at line 42 of file i_jobdef.idl.

Definition at line 97 of file i_types.idl.

typedef unsigned long i_JobType_t

Stringified UUID.

Definition at line 27 of file i_types.idl.

typedef sequence<i_Library_t> i_LibrarySeq_t

Definition at line 37 of file i_rmtypes.idl.

typedef sequence<long> i_LongList_t

Definition at line 33 of file i_types.idl.

typedef sequence<i_MajorCol_t> i_MajorColSeq_t

Definition at line 77 of file i_rmtypes.idl.

typedef sequence<i_MediaInfo_t> i_MediaInfoSeq_t

Definition at line 279 of file i_rmtypes.idl.

typedef sequence<i_MediaPool_t> i_MediaPoolSeq_t

Definition at line 162 of file i_rmtypes.idl.

typedef sequence<i_MediumPos_t> i_MediumPos_v_t

Definition at line 108 of file i_types.idl.

typedef sequence<i_Medium_t> i_MediumSeq_t

Definition at line 190 of file i_rmtypes.idl.

Definition at line 216 of file i_rmtypes.idl.

typedef sequence<i_MediumVol_t> i_MediumVolSeq_t

Definition at line 215 of file i_rmtypes.idl.

typedef unsigned long long i_MigID_t

File ID.

Definition at line 11 of file i_types.idl.

typedef sequence<i_MinorCol_t> i_MinorColSeq_t

Definition at line 86 of file i_rmtypes.idl.

Definition at line 36 of file i_mif.idl.

typedef sequence<i_Partition_t> i_PartSeq_t

Definition at line 231 of file i_rmtypes.idl.

typedef sequence<i_PoolInfo_t> i_PoolInfoSeq_t

Definition at line 252 of file i_rmtypes.idl.

typedef sequence<i_Recall_t> i_RecallList_t

Definition at line 263 of file i_types.idl.

typedef sequence<i_Resource_t> i_ResourceList_t

Definition at line 177 of file i_types.idl.

typedef sequence<i_Slot_t> i_SlotSeq_t

Definition at line 129 of file i_rmtypes.idl.

typedef unsigned long i_Status_t

Bitflags (options, capabilities...).

Definition at line 25 of file i_types.idl.

typedef sequence<string> i_StringList_t

Definition at line 32 of file i_types.idl.

typedef long i_Time_t

Job ID.

Definition at line 22 of file i_types.idl.

typedef long i_Type_t

Time member/argument.

Definition at line 23 of file i_types.idl.

Definition at line 60 of file i_uims.idl.

Definition at line 67 of file i_uims.idl.

typedef sequence<unsigned long> i_ULongList_t

Definition at line 34 of file i_types.idl.

typedef sequence<unsigned long long> i_ULongLongList_t

Definition at line 35 of file i_types.idl.

typedef sequence<i_SlotUpdate_t> i_UpdateList_t

Definition at line 141 of file i_rmtypes.idl.

typedef string i_UUID_t

Various statuses.

Definition at line 26 of file i_types.idl.

typedef sequence<i_VolInfo_t> i_VolInfoList_t

Definition at line 55 of file i_bea.idl.

typedef sequence<i_Index_t> i_VolNumList_t

Definition at line 42 of file i_types.idl.

typedef unsigned long i_VolSize_t

Tape block size.

Definition at line 19 of file i_types.idl.

typedef sequence<i_VolSize_t> i_VolSizes_t

Definition at line 40 of file i_types.idl.

typedef sequence<i_VolumeInfo_t> i_VolumeInfoSeq_t

Definition at line 272 of file i_rmtypes.idl.


Enumeration Type Documentation

Enumerator:
i_IVDFSEVTMGR 

used for Execute()

i_IVDHSM 
i_IVDPM 
i_IVDRM 
i_IVDBEA 
i_IVDLAS 
i_IVDLAM 
i_IVDDD 
i_IVD 
i_IVDBCK 

used for ExecutePython()

i_IVDRST 
i_ECHO 

used for unit test only

i_SENTINEL 

sentinel for tables

Definition at line 15 of file i_service.idl.

                  {
    i_IVDFSEVTMGR,
    i_IVDHSM,
    i_IVDPM,
    i_IVDRM,
    i_IVDBEA,
    i_IVDLAS,
    i_IVDLAM,
    i_IVDDD,
    i_IVD,

    i_IVDBCK,
    i_IVDRST,

    i_ECHO,

    i_SENTINEL
};

Enumerator:
i_DISK_BUF 
i_SHMEM_BUF 
i_REMOTE_BUF 
i_NA 

Definition at line 179 of file i_types.idl.

{ i_DISK_BUF, i_SHMEM_BUF, i_REMOTE_BUF, i_NA };

Enumerator:
i_SUCCEDED 
i_FAILED 
i_INV_PARAMS 

Problems with parameters.

i_CLIENT_ERROR 

Problems with client connection.

i_CLIENT_NOFILES 

No files for migration.

i_RESOURCE_ERROR 
i_FSC_ERROR 
i_RMCOPYPOS_ERROR 
i_NO_HOST 

problems finding host for running bea

i_LA_ERROR 

Problems with LA commmunication.

i_SVC_ERROR 

Problems with SVC commmunication.

i_BEA_ERROR 

Back end agent probably did not start.

i_MEDIUM_ERROR 
i_HW_ERROR 

Problems with the tape drive.

i_INV_MEDVOLID 

BEA got different media volume ID as expected.

i_DATA_ERROR 

Problems with dataformat,.

i_REMOVED 

Job removed.

i_ABORTED 
i_UNKNOWN 

Definition at line 181 of file i_types.idl.

                          {
    i_SUCCEDED,         //#0 
    i_FAILED,           //#1

    i_INV_PARAMS,       //#2

    i_CLIENT_ERROR,     //#3
    
    i_CLIENT_NOFILES,   //#4

    //Probles with resource allocation
    i_RESOURCE_ERROR,   //#5
    
    //FSC Error
    i_FSC_ERROR,        //#6
    
    //error finding 
    i_RMCOPYPOS_ERROR,  //#7

    i_NO_HOST,          //#8

    i_LA_ERROR,         //#9

    i_SVC_ERROR,        //#10

    i_BEA_ERROR,        //#11

    i_MEDIUM_ERROR,     //#12

    i_HW_ERROR,         //#13

    i_INV_MEDVOLID,     //#14

    i_DATA_ERROR,       //#15

    i_REMOVED,          //#16

    i_ABORTED,          //#17

    i_UNKNOWN           //#18
};

Major or minor collocation ID type.

Enumerator:
i_dbgLOW 
i_dbgNORMAL 
i_dbgDETAIL 

Definition at line 30 of file i_types.idl.

{i_dbgLOW, i_dbgNORMAL, i_dbgDETAIL};

Directory tranfer type to specify the directory where to perform file operations on.

Enumerator:
dt_ETC 
dt_DISKBUF 
dt_FRI 
dt_LOG 
dt_PART 
dt_TMP 
dt_PIPE 

Definition at line 43 of file i_service.idl.

                       {
    dt_ETC, dt_DISKBUF, dt_FRI, dt_LOG, dt_PART, dt_TMP, dt_PIPE };

Enumerator:
et_IVD_INTERNAL_ERROR 
et_IVD_EXCEPTION 
et_SYS_ERROR 
et_IVD_ERROR 
et_IVD_DF_ERROR 
et_IVD_DB_EXCEPTION 
et_UNKNOWN_ERROR 

Definition at line 45 of file i_types.idl.

                       {
    et_IVD_INTERNAL_ERROR,
    et_IVD_EXCEPTION,
    et_SYS_ERROR,
    et_IVD_ERROR,
    et_IVD_DF_ERROR,
    et_IVD_DB_EXCEPTION,
    et_UNKNOWN_ERROR
};

Enumerator:
fs_NOSTATE 
fs_FORMIGRATION 
fs_DOMIGRATION 
fs_MIGRATED 

Definition at line 67 of file i_types.idl.

                   {
    fs_NOSTATE,         // file undefined state
    fs_FORMIGRATION,    // file prepared for migration - to check policies
    fs_DOMIGRATION,     // file is migrated to first level (disk or memory cache)
    fs_MIGRATED         // file is on the tape
};

Enumerator:
hsmfs_UNKNOWN 
hsmfs_REGULAR 
hsmfs_WORMFS 
hsmfs_LAM 
hsmfs_LAM_OFFLINE 
hsmfs_NOT_ATTACHED 
hsmfs_NOT_CONFIGURED 
hsmfs_NOT_ACTIVE 

Definition at line 14 of file i_fsevmgr.idl.

                          {
    hsmfs_UNKNOWN,
    hsmfs_REGULAR,
    hsmfs_WORMFS,
    hsmfs_LAM,
    hsmfs_LAM_OFFLINE,
    hsmfs_NOT_ATTACHED,
    hsmfs_NOT_CONFIGURED,
    hsmfs_NOT_ACTIVE
};

enum i_FSType_e
Enumerator:
i_FST_REGULAR 
i_FST_WORM 

Definition at line 18 of file i_hsm.idl.

                {
    i_FST_REGULAR,
    i_FST_WORM
};

Enumerator:
i_htCheckFSCvsIVDFS 
i_htCheckFSCvsMedia 

Definition at line 97 of file i_hsm.idl.

                 {
    i_htCheckFSCvsIVDFS,
    i_htCheckFSCvsMedia
};

Enumerator:
jp_RELATIVE 
jp_ABSOLUTE 
jp_UNKNOWN 

Definition at line 15 of file i_mif.idl.

                        {
    jp_RELATIVE, //Job Priority has to be change by adding some value
    jp_ABSOLUTE, //Job Priority should be set to a number
    jp_UNKNOWN
};

Enumerator:
job_NOT_STARTED 
job_STARTED 
job_PRE_MED_PROC 
job_MED_PROC 
job_POST_MED_PROC 
job_NA 

Definition at line 12 of file i_jobdef.idl.

                   {
    job_NOT_STARTED,
    job_STARTED,
    job_PRE_MED_PROC,
    job_MED_PROC,
    job_POST_MED_PROC,
    job_NA 
};

enum i_OSType_e
Enumerator:
i_Linux 
i_Windows 
i_HPUX 
i_OtherOS 

Definition at line 12 of file i_component.idl.

{i_Linux, i_Windows, i_HPUX, i_OtherOS};

Enumerator:
part_UNKNOWN 
part_DISABLED 
part_STOPPED 
part_RUNNING 
part_MOUNTED 

Definition at line 21 of file i_mif.idl.

                         {
    part_UNKNOWN,
    part_DISABLED,
    part_STOPPED,
    part_RUNNING,
    part_MOUNTED
};

Enumerator:
i_RESOURCE_UNKNOWN 
i_MEDIUM_BUSY 
i_MEDIUM_NOT_AVAILABLE 
i_DRIVE_BUSY 
i_DRIVE_NOT_AVAILABLE 
i_PRIORITY_BELOW_THRESHOLD 
i_LIBRARY_NOT_AVAILABLE 
i_MAX_NUM_DRIVES 
i_COL_GRP_SIZE_EXC 

Definition at line 112 of file i_types.idl.

                      { 
    i_RESOURCE_UNKNOWN,
    i_MEDIUM_BUSY, 
    i_MEDIUM_NOT_AVAILABLE, 
    i_DRIVE_BUSY, 
    i_DRIVE_NOT_AVAILABLE,
    i_PRIORITY_BELOW_THRESHOLD,
    i_LIBRARY_NOT_AVAILABLE,
    i_MAX_NUM_DRIVES,
    i_COL_GRP_SIZE_EXC
};

These actions are used when FRIs are recreated on demand using the CLI.

BEA will do the following:

  • i_SV_OVERWRITE: system volume will be deleted at the beginning of the recreate process. All FRIs that are created will be appended to the end of system volume. The final effect is that newly created FRIs will be on the system volume also.
  • i_SV_APPEND: Each created FRI will be appended to the end of the existing FRI.
  • i_SV_REPLACE: Created FRIs will be replaced and others will be preserved as they are. NOT YET IMPLEMENTED: behaves just like i_SV_OVERWRITE.
Enumerator:
i_SV_NOTHING 
i_SV_OVERWRITE 
i_SV_APPEND 
i_SV_REPLACE 

Definition at line 73 of file i_bea.idl.

{i_SV_NOTHING, i_SV_OVERWRITE, i_SV_APPEND, i_SV_REPLACE};

Enumerator:
uialign_LEFT 
uialign_CENTER 
uialign_RIGHT 

Definition at line 46 of file i_uims.idl.

                     {
    uialign_LEFT,
    uialign_CENTER,
    uialign_RIGHT
};

Enumerator:
uiitem_CELL 
uiitem_TABLE 
uiitem_UNKNOWN 

Definition at line 40 of file i_uims.idl.

                    {
    uiitem_CELL,
    uiitem_TABLE,
    uiitem_UNKNOWN
};

Enumerator:
uires_TEXT 
uires_NUM 
uires_BOOL 
uires_RAW 
uires_LIBRARYSTATUS 
uires_SLOTSTATUS 
uires_DRIVESTATUS 
uires_POOLSTATUS 
uires_PARTITIONSTATUS 
uires_PARTITIONACTIVITY 
uires_MEDIUMSTATUS 
uires_VOLUMESTATUS 
uires_JOBSTATUS 
uires_LIBRARYTYPE 
uires_MEDIAFAMILYTYPE 
uires_MEDIAPOOLTYPE 
uires_SLOTTYPE 
uires_MEDIATYPE 
uires_SYSVOLLOCATION 
uires_VOLTYPE 
uires_NA 
uires_FSTYPE 
uires_PARTITIONOPTIONS 
uires_JOBTYPE 
uires_NO_TYPE 

Definition at line 12 of file i_uims.idl.

                      {
    uires_TEXT,
    uires_NUM,
    uires_BOOL,
    uires_RAW,
    uires_LIBRARYSTATUS,
    uires_SLOTSTATUS,
    uires_DRIVESTATUS,
    uires_POOLSTATUS,
    uires_PARTITIONSTATUS,
    uires_PARTITIONACTIVITY,
    uires_MEDIUMSTATUS,
    uires_VOLUMESTATUS,
    uires_JOBSTATUS,
    uires_LIBRARYTYPE,
    uires_MEDIAFAMILYTYPE,
    uires_MEDIAPOOLTYPE,
    uires_SLOTTYPE,
    uires_MEDIATYPE,
    uires_SYSVOLLOCATION,
    uires_VOLTYPE,
    uires_NA,
    uires_FSTYPE,
    uires_PARTITIONOPTIONS,
    uires_JOBTYPE,
    uires_NO_TYPE
};

Used for detection of current volume.

Enumerator:
i_VOL_BLANK 
i_VOL_IVD 
i_VOL_ECMA 
i_VOL_TAR 
i_VOL_OTHER 
i_VOL_IVD_NT 

Definition at line 17 of file i_bea.idl.

{i_VOL_BLANK, i_VOL_IVD, i_VOL_ECMA, i_VOL_TAR, i_VOL_OTHER, i_VOL_IVD_NT};


Function Documentation

void ipc_Corba::ActivatePOA (  )  [static, inherited]

Definition at line 440 of file ipc_corba.cpp.

References ipc_EXEC_m, log_FUNC_m, ipc_Corba::m_poa, and ipc_Corba::Singleton().

Referenced by CliConnectToHSM(), CliConnectToMIF(), main(), ServerLoop(), and VerifyNS().

                            {
    log_FUNC_m(ActivatePOA);

    ipc_EXEC_m(

        PortableServer::POAManager_var pman =
            ipc_Corba::Singleton().m_poa->the_POAManager();

        pman->activate();
    );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::Destroy ( void   )  [static, inherited]

Definition at line 170 of file ipc_corba.cpp.

References dbg_EXTAPI, dbg_NORM, cmn_Thread::Join(), log_DBG_m, log_FUNC_m, ipc_Corba::m_destroyed, ipc_Corba::m_orb, ipc_Corba::m_shutdownThread, NULL, ipc_Corba::RemoveMajorServant(), ipc_Corba::Singleton(), and ipc_Corba::StopSignalHandler().

Referenced by _tmain(), and main().

                        {
    log_FUNC_m(Destroy);

    //
    // Do a shutdown of servants (noop if already executed)
    //
    RemoveMajorServant();

    if (ipc_Corba::Singleton().m_shutdownThread != NULL) {
        // We initialise the member and work with a copy to
        // prevent double Join().
        cmn_Thread *thread = ipc_Corba::Singleton().m_shutdownThread;
        ipc_Corba::Singleton().m_shutdownThread = NULL;

        ipc_Corba::Singleton().StopSignalHandler();
        thread->Join(NULL);
    }

    if (!CORBA::is_nil(ipc_Corba::Singleton().m_orb)) {
        log_DBG_m(dbg_EXTAPI, "Destroying ORB.");
        ipc_Corba::Singleton().m_orb->destroy();
        log_DBG_m(dbg_EXTAPI, "ORB destroyed.");
    }
    else {
        log_DBG_m(dbg_NORM, "ORB not initialized, no need to destroy.");
    };
    ipc_Corba::Singleton().m_destroyed = true;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetFSEvtMgr_NSEntry ( const string &  a_serverHost  )  [static, protected, inherited]

Definition at line 982 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdClt_c, ipc_Corba::m_nsIvdEvtMgr_c, ipc_Corba::m_nsIvdPrefix_c, and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterFSEvtMgr(), and ipc_Corba::ResolveFSEvtMgr().

                                                                      {
    string evtEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdClt_c + string("/") +
        MangledHostName(a_serverHost) + string("/") +
        m_nsIvdEvtMgr_c;

    return evtEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetLA_NSEntry ( const string &  a_serverHost,
const string &  a_libName 
) [static, protected, inherited]

Definition at line 1009 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdLib_c, ipc_Corba::m_nsIvdPrefix_c, and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterLA(), and ipc_Corba::ResolveLA().

                                                         {

    string laEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdLib_c + string("/") +
        MangledHostName(a_serverHost)+ string("/") +
        a_libName;

    return laEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetMIF_NSEntry ( const string &  a_serverHost  )  [static, protected, inherited]

Definition at line 917 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdMgr_c, ipc_Corba::m_nsIvdMIF_c, ipc_Corba::m_nsIvdPrefix_c, and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterMIF(), and ipc_Corba::ResolveMIF().

                                                                 {
    string mifEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdMgr_c + string("/") +
        MangledHostName(a_serverHost) + string("/") +
        m_nsIvdMIF_c;

    return mifEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetPMFSID_NSEntry ( const string &  a_serverHost,
const string &  a_fsID 
) [static, protected, inherited]

Definition at line 948 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdClt_c, ipc_Corba::m_nsIvdFS_c, ipc_Corba::m_nsIvdPrefix_c, and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterPMByFSID(), and ipc_Corba::ResolvePMByFSID().

                                                      {

    string pmEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdClt_c + string("/") +
        MangledHostName(a_serverHost) + string("/") +
        m_nsIvdFS_c + string("/id/") +
        a_fsID;

    return pmEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetPMFSName_NSEntry ( const string &  a_serverHost,
const string &  a_fsID 
) [static, protected, inherited]

Definition at line 965 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdClt_c, ipc_Corba::m_nsIvdFS_c, ipc_Corba::m_nsIvdPrefix_c, ipc_Corba::MangledDeviceName(), and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterPMByDeviceName(), and ipc_Corba::ResolvePMByDeviceName().

                                                              {

    string pmEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdClt_c + string("/") +
        MangledHostName(a_serverHost) + string("/") +
        m_nsIvdFS_c + string("/name/") +
        MangledDeviceName(a_fsDeviceName);

    return pmEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetPMID_NSEntry ( const string &  a_serverHost,
const string &  a_partID 
) [static, protected, inherited]

Definition at line 931 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdMgr_c, ipc_Corba::m_nsIvdPart_c, ipc_Corba::m_nsIvdPrefix_c, and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterPMByPMID(), ipc_Corba::ResolvePMByPartID(), and ipc_Corba::ResolveTargetPM().

                                                        {

    string pmEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdMgr_c + string("/") +
        MangledHostName(a_serverHost) + string("/") +
        m_nsIvdPart_c + string("/") +
        a_partID;

    return pmEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::GetRM_NSEntry (  )  [static, protected, inherited]

Definition at line 906 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdPrefix_c, and ipc_Corba::m_nsIvdRM_c.

Referenced by ipc_Corba::RegisterRM(), and ipc_Corba::ResolveRM().

                                      {
    static const string rmEntryName =
        m_nsIvdPrefix_c + string("/") + m_nsIvdRM_c;

    return rmEntryName;
}

Here is the caller graph for this function:

const string ipc_Corba::GetSvc_NSEntry ( const string &  a_serverHost  )  [static, protected, inherited]

Definition at line 996 of file ipc_corba.cpp.

References ipc_Corba::m_nsIvdPrefix_c, ipc_Corba::m_nsIvdSvc_c, and ipc_Corba::MangledHostName().

Referenced by ipc_Corba::RegisterSvc(), and ipc_Corba::ResolveSvc().

                                                                 {
    string svcEntryName =
        m_nsIvdPrefix_c + string("/") +
        m_nsIvdSvc_c + string("/") +
        MangledHostName(a_serverHost);

    return svcEntryName;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::Init ( bool  a_waitNamingSvc = true,
bool  a_shutdownOnSignal = true,
int  a_argc = 0,
char *  a_argv[] = NULL 
) [static, inherited]

Initializes ORB and root naming context from Naming service.

Stores the references for future use.

TIP: Use a_waitNamingSvc=false in CLI.

Parameters:
a_waitNamingSvc Wait for the naming service to become available
a_argc Optional parameters for ORB passed via CLI
a_argv Optional parameters for ORB passed via CLI

Definition at line 212 of file ipc_corba.cpp.

References cmn_GetEnvVariable(), cmn_SetEnvVariable(), dbg_EXTAPI, dbg_LOW, dbg_NORM, cmn_Global::dirs, ivd_Directories::etc, g_cmn, ie_IPC_FATAL, ie_IPC_NAMESERVICE, ipc_CATCH_CORBA_THROW_IVD_m, ipc_CLIENT_TIMEOUT_ENV_c(), ipc_CLIENT_TIMEOUT_MS_c(), ipc_MAX_CONNECTIONS_c(), ipc_NS_ACCESS_RETRIES_c, ivd_Error, ivd_Sleep, log_DBG_m, log_ERR_m, log_FUNC_m, cmn_SysInfo::m_masterHost, ipc_Corba::m_orb, ipc_Corba::m_poa, ipc_Corba::m_rootContext, ipc_Corba::m_shutdownThread, NULL, s_orbName, cmn_Global::si, ipc_Corba::Singleton(), and cmn_Thread::StartUndetached().

Referenced by CliConnectToHSM(), CliConnectToMIF(), and main().

                                                                                              {
    log_FUNC_m(Init);

#if TGT_OS_hpux
    const size_t stackSize_c(2*1024*1024);
    size_t oldStackSize(0);
    log_DBG_m(dbg_LOW, "Setting new default stack: " << stackSize_c);
    int retval = pthread_default_stacksize_np(stackSize_c, &oldStackSize);
    log_DBG_m(dbg_LOW, "Retval: " << retval << ", old stack size: " << oldStackSize);
#endif

    try { // Initialise the ORB.
        char initRef[1024];
        char defInitRef[1024];
        char maxgiop[1024];
        char clienttimeout[1024];

        sprintf(initRef, "NameService=corbaname:iiop:%s:2809", g_cmn.si.m_masterHost.c_str());
        sprintf(defInitRef, "corbaloc:iiop:%s:2809", g_cmn.si.m_masterHost.c_str());
        //
        // See omniORB documentation (Chapter 8) about Connection Management.
        // ORBmaxGIOPConnectionPerServer is limited by the max number of
        // open file handles (default on RedHat 7.2 is 1024).
        //
        // The reason for setting this variable is described in bug 110 (Bugzilla).
        //
        sprintf(maxgiop, "%d", ipc_MAX_CONNECTIONS_c);

        //
        // See omniORB documentation (Chapter 4.3) about Client Side options.
        //
        // The reason for setting this variable is to prevent starvation
        // if the Windows external client dies and the sockets are not closed
        // (most often case).
        //

        string clTimeoutStr = cmn_GetEnvVariable(ipc_CLIENT_TIMEOUT_ENV_c);

        if (clTimeoutStr.empty()) {
            sprintf(clienttimeout, "%d", ipc_CLIENT_TIMEOUT_MS_c);
        }
        else {
            log_DBG_m(dbg_LOW, ipc_CLIENT_TIMEOUT_ENV_c << "=" << clTimeoutStr);
            sprintf(clienttimeout, "%s", clTimeoutStr.c_str());
        }

        // ORB options
    /* const char* options[][2]  = {
            {"InitRef",                     initRef},
            {"DefaultInitRef",              defInitRef},
            {"maxGIOPConnectionPerServer",  maxgiop},
            {"clientCallTimeOutPeriod",     clienttimeout},
            {"nativeCharCodeSet",           "UTF-8"},
            {NULL, NULL}
        };*/

    // Previous initialization will not work on HP-UX, so we redefine this array initialization
    const char* options[7][2];
        options[0][0] = "InitRef";
        options[0][1] = initRef;
        options[1][0] = "DefaultInitRef";
        options[1][1] = defInitRef;
        options[2][0] = "maxGIOPConnectionPerServer";
        options[2][1] = maxgiop;
        options[3][0] = "clientCallTimeOutPeriod";
        options[3][1] = clienttimeout;
        options[4][0] = "nativeCharCodeSet";
        options[4][1] = "UTF-8";
        options[5][0] = "giopMaxMsgSize";
        options[5][1] = "8388608"; // 8MB
        options[6][0] = NULL;
        options[6][1] = NULL;

        log_DBG_m(dbg_EXTAPI, "ORB parameters:" << endl <<
            "InitRef = " << initRef << endl <<
            "DefaultInitRef = " << defInitRef << endl <<
            "maxGIOPConnectionPerServer = " << maxgiop << endl <<
            "clientCallTimeOutPeriod = " << clienttimeout << endl <<
            "nativeCharCodeSet = " << "UTF-8" );

        string cfgFile = g_cmn.dirs.etc + "omniORB.cfg";

        log_DBG_m(dbg_EXTAPI,
            "Set EV: OMNIORB_CONFIG = \""<< cfgFile << "\"");


#if TGT_OS_windows
        // omniORB uses posix (not Win32) functions for reading
        // env. variables.
        {
            static char env[1024];
            sprintf(env, "OMNIORB_CONFIG=%s\0", cfgFile.c_str());
            _putenv(env);
        }
#else
        cmn_SetEnvVariable("OMNIORB_CONFIG", cfgFile);
#endif

        log_DBG_m(dbg_EXTAPI, "Initializing ORB.");
        ipc_Corba::Singleton().m_orb = CORBA::ORB_init(a_argc, a_argv, s_orbName, options);

        // Obtain a reference to the root POA.
        log_DBG_m(dbg_EXTAPI, "Obtaining reference to RootPOA.");
        CORBA::Object_var obj =
            ipc_Corba::Singleton().m_orb->resolve_initial_references("RootPOA");
        ipc_Corba::Singleton().m_poa = PortableServer::POA::_narrow(obj);

        try { // Obtain a reference to the root context of the Name service:
            log_DBG_m(dbg_EXTAPI, "Getting reference to NameService.");

            CORBA::Object_var obj;

            // Do retries if COMM_FAILURE occurs.
            // It most probably means that NS is currently not available
            // This situation can happen at system startup.

            ivd_Time_t timeNSStart = time(NULL);

            // Trying to get the reference to NS for 30 seconds.
            while(1) {
                ivd_Time_t now;

                try {
                    obj = ipc_Corba::Singleton().m_orb->resolve_initial_references("NameService");
                    // System exception here ^^^ if naming service can't be located

                    // Narrow the reference returned.
                    ipc_Corba::Singleton().m_rootContext = CosNaming::NamingContext::_narrow(obj);

                    // Break the loop if everything is OK.
                    break;
                }
                catch (CORBA::TRANSIENT&) {
                    if (!a_waitNamingSvc) {
                        log_DBG_m(dbg_LOW, "Can't contact Naming Service on host " <<
                                           g_cmn.si.m_masterHost.c_str() << ".");
                        throw;
                    };
                    now = time(NULL);
                    if ( (now - timeNSStart) > ipc_NS_ACCESS_RETRIES_c) {
                        // Timeout elapsed. Will not continue.
                        log_ERR_m(
                            "Timeout elapsed when trying to access " <<
                            "CORBA Naming Service. " << endl <<
                            "NS not running or host can't be reached. " <<
                            "Giving up." << endl <<
                            "m_orb->resolve_initial_references(\"NameService\")" );
                        throw;
                    }
                }
                catch (CORBA::COMM_FAILURE&) {
                    if (!a_waitNamingSvc) {
                        log_DBG_m(dbg_LOW, "Can't contact Naming Service on host " <<
                                           g_cmn.si.m_masterHost.c_str() << ".");
                        throw;
                    };
                    now = time(NULL);
                    if ( (now - timeNSStart) > ipc_NS_ACCESS_RETRIES_c) {
                        // Timeout elapsed. Will not continue.
                        log_ERR_m(
                            "Timeout elapsed when trying to access " <<
                            "CORBA Naming Service. " << endl <<
                            "NS not running or host can't be reached. " <<
                            "Giving up." << endl <<
                            "m_orb->resolve_initial_references(\"NameService\")" );
                        throw;
                    }
                }
                catch (CORBA::OBJECT_NOT_EXIST&) {
                    if (!a_waitNamingSvc) {
                        log_DBG_m(dbg_LOW, "Can't contact Naming Service on host " <<
                                           g_cmn.si.m_masterHost.c_str() << ".");
                        throw;
                    };
                    now = time(NULL);
                    if ( (now - timeNSStart) > ipc_NS_ACCESS_RETRIES_c) {
                        // Timeout elapsed. Will not continue.
                        log_ERR_m(
                            "Timeout elapsed when trying to access " <<
                            "CORBA Naming Service. " << endl <<
                            "NS not running or host can't be reached. " <<
                            "Giving up." << endl <<
                            "m_orb->resolve_initial_references(\"NameService\")" );
                        throw;
                    }
                }
                {
                    log_DBG_m(dbg_NORM,
                        "Communication problems accessing Naming Service on host " <<
                        g_cmn.si.m_masterHost.c_str() <<
                        ". Retrying in 1 sec.");
                    ivd_Sleep(1);
                }
            } // while

            if( CORBA::is_nil(ipc_Corba::Singleton().m_rootContext) ) {
                // IMPOSSIBLE SITUATION (corrupted ORB)
                throw ivd_InternalError(
                    ie_IPC_NAMESERVICE,
                    "Failed to narrow to CosNaming::NamingContext. Is ORB corrupted?"
                );
            }
        }
        catch(CORBA::ORB::InvalidName&) {
            // IMPOSSIBLE SITUATION (corrupted ORB)
            throw ivd_Error(
                ie_IPC_NAMESERVICE,
                "Invalid name of NameService. Is ORB corrupted?", true
            );
        }
    }
    ipc_CATCH_CORBA_THROW_IVD_m
    catch(...) {
        throw ivd_InternalError(ie_IPC_FATAL, "Caught unknown exception.", true);
    }

    {
        log_DBG_m(dbg_NORM, "Starting shutdown handler thread.");
        ipc_Corba::Singleton().m_shutdownThread = new ipc_Shutdown(a_shutdownOnSignal);
        ipc_Corba::Singleton().m_shutdownThread->StartUndetached();
    }
    // ORB and naming service initialized.
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::InitDebug (  )  [static, inherited]

Sets pointers to functions that are called at each dbg_On() and dbg_Off().

Sets callback function that is called by omniORB4.

Definition at line 1323 of file ipc_corba.cpp.

References dbg_SetExternalDebugger(), ipc_DbgOff(), ipc_DbgOn(), and ipc_ORBLogCallback().

Referenced by CliConnectToHSM(), CliConnectToMIF(), and main().

Here is the call graph for this function:

Here is the caller graph for this function:

const char* ipc_CLIENT_TIMEOUT_ENV_c ( "HSM_CALL_TIMEOUT"   ) 

Environment variable to override the default (in ms).

Referenced by ipc_Corba::Init().

Here is the caller graph for this function:

const UInt32_t ipc_CLIENT_TIMEOUT_MS_c ( 2 *24 *60 *60 *  1000  ) 

Client side call timeout to prevent starvation (in ms).

Referenced by ipc_Corba::Init().

Here is the caller graph for this function:

void ipc_ConvertIpcExToIvdEx ( i_IvdException a_ie  ) 

Definition at line 1485 of file ipc_corba.cpp.

References i_IvdException::blockOffset, i_IvdException::code, i_IvdException::detailed, et_IVD_DF_ERROR, et_IVD_ERROR, et_IVD_INTERNAL_ERROR, et_SYS_ERROR, i_IvdException::exceptionType, ie_IPC_UNKNOWN_IVD_EXCEPTION, ivd_Error, and i_IvdException::text.

                                                   {
    switch (a_ie.exceptionType) {
        case et_IVD_INTERNAL_ERROR:
            throw ivd_InternalError(
                ivd_ErrorCode_e(a_ie.code),
                string(a_ie.text), string(a_ie.detailed));
        case et_SYS_ERROR :
            throw ivd_SysError(
                ivd_ErrorCode_e(a_ie.code),
                string(a_ie.text), string(a_ie.detailed));
        case et_IVD_ERROR :
            throw ivd_Error(
                ivd_ErrorCode_e(a_ie.code),
                string(a_ie.text), string(a_ie.detailed));
        case et_IVD_DF_ERROR :
            throw ivd_DFError(
                ivd_ErrorCode_e(a_ie.code),
                a_ie.blockOffset, string(a_ie.text), string(a_ie.detailed));
        default :
            throw ivd_InternalError(
                ie_IPC_UNKNOWN_IVD_EXCEPTION,
                string(a_ie.text), string(a_ie.detailed));
    }
}

ipc_Corba::ipc_Corba (  )  [private, inherited]

Definition at line 133 of file ipc_corba.cpp.

References log_FUNC_m.

string ipc_CORBAExceptionToString ( const CORBA::Exception &  a_exc  ) 

Operator to display a CORBA exception in human readable form to an C++ string.

(Source: Duncan Grisby on omniORB mailing list)

Definition at line 1388 of file ipc_corba.cpp.

References ipc_corbaLiteral_c().

Referenced by operator<<(), ipc_Corba::Resolve(), and ipc_Corba::ResolveTargetPM().

                                                               {

    try {
        string exText(ipc_corbaLiteral_c);
        exText.reserve(50);

        exText += a_exc._name();

        return exText;
    }
    catch(...) {
        return string("CORBA::Exception?");
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

const char* ipc_corbaFatalExcLiteral_c ( "** CORBA::fatalException: "   ) 
static const char* ipc_corbaLiteral_c ( "CORBA::"   )  [static]

Referenced by ipc_CORBAExceptionToString(), and ipc_CORBASysExceptionToString().

Here is the caller graph for this function:

string ipc_CORBASysExceptionToString ( const CORBA::SystemException &  a_exc  ) 

Definition at line 1403 of file ipc_corba.cpp.

References ipc_corbaLiteral_c().

Referenced by operator<<().

                                                                        {

    try {
        string exText(ipc_corbaLiteral_c);
        exText.reserve(80);

        exText += a_exc._name();
        exText += "#";
        exText += a_exc.NP_minorString();

        return exText;
    }
    catch(...) {
        return string("CORBA::SystemException?");
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void ipc_DbgOff (  )  [static]

Turn off omniORB debugging by lowering debug levels.

Definition at line 1370 of file ipc_corba.cpp.

Referenced by ipc_Corba::InitDebug().

                         {
    omniORB::traceLevel = 0;
    omniORB::traceInvocations = false;
}

Here is the caller graph for this function:

static void ipc_DbgOn ( log_DbgLevel_t  a_level,
bool  a_verbose 
) [static]

Turn on omniORB debugging by changing debug levels.

Debugging verbosity depends on both IVD debug level and verbosity flag.

Parameters:
a_level Debug level as specified by parameters
a_verbose Turn on verbose 3rd party debugging

Definition at line 1340 of file ipc_corba.cpp.

References dbg_DETAIL, dbg_EXTAPI, dbg_LOW, dbg_NORM, ipc_Corba::m_dbgDetail, ipc_Corba::m_dbgLow, ipc_Corba::m_dbgNorm, and ipc_Corba::m_dbgVerbose.

Referenced by ipc_Corba::InitDebug().

                                                              {

    if (a_verbose) {
        switch (a_level) {
            case dbg_LOW: omniORB::traceLevel = ipc_Corba::m_dbgLow; break;
            case dbg_NORM: omniORB::traceLevel = ipc_Corba::m_dbgNorm; break;
            case dbg_EXTAPI: omniORB::traceLevel = ipc_Corba::m_dbgDetail; break;
            case dbg_DETAIL: omniORB::traceLevel = ipc_Corba::m_dbgVerbose; break;
            default: omniORB::traceLevel = ipc_Corba::m_dbgNorm; break;
        }
    }
    else {
        switch (a_level) {
            case dbg_LOW: omniORB::traceLevel = ipc_Corba::m_dbgLow; break;
            case dbg_NORM: omniORB::traceLevel = ipc_Corba::m_dbgLow; break;
            case dbg_EXTAPI: omniORB::traceLevel = ipc_Corba::m_dbgNorm; break;
            case dbg_DETAIL: omniORB::traceLevel = ipc_Corba::m_dbgNorm; break;
            default: omniORB::traceLevel = ipc_Corba::m_dbgLow; break;
        }
    };
    omniORB::traceInvocations = true;
}

Here is the caller graph for this function:

const char* ipc_iIVDExcLiteral_c ( "** i_IvdException: "   ) 
const UInt32_t ipc_MAX_CONNECTIONS_c ( 64   ) 

Maximum connections that are opened by omniORB to another address space.

Referenced by ipc_Corba::Init().

Here is the caller graph for this function:

const char* const ipc_nilStr ( "\0"   ) 
const UInt32_t ipc_NS_ACCESS_RETRIES_c ( 30   ) 

How long should the process try to get access to CORBA Naming Service.

void ipc_ORBLogCallback ( const char *  a_logText  ) 

Definition at line 1299 of file ipc_corba.cpp.

References dbg_EXTAPI, dbg_IsActive(), log_DBG_m, log_ERR_m, log_FUNC_m, and log_FUNCTAG_m.

Referenced by ipc_Corba::InitDebug().

                                               {
    if ( dbg_IsActive() ) {
        log_FUNCTAG_m(ipc_ORBLogCallback);
        log_DBG_m(dbg_EXTAPI, a_logText);
    }
    else {
        log_FUNC_m(ipc_ORBLogCallback);
        // Even if debugging is not running
        // critical errors are logged in the error.log file, because
        // ipc_DbgOff() sets trace level to 0 (critical errors only).
        log_ERR_m(a_logText);
    };
}

Here is the call graph for this function:

Here is the caller graph for this function:

template<class TGT_SEQ_TYPE >
void ipc_ReceiveCompleteCollection ( TGT_SEQ_TYPE &  a_tgtSeq,
i_Collection_ptr  a_colref 
)

Template function to read all batches from a sequence and append them to the a_tgtSeq.

Definition at line 70 of file i_collection_impl.h.

References ie_IPC_ANY_TYPE, ivd_Error, len, and NULL.

                                                                                          {

        CORBA::Boolean more;
        do {
            CORBA::Any_var a = a_colref->NextBatch(more);

            TGT_SEQ_TYPE* batch(NULL);
            if (a >>= batch) {
                CORBA::ULong len = a_tgtSeq.length();
                CORBA::ULong blen = batch->length();
                a_tgtSeq.length(len + blen);
                for (CORBA::ULong i(0), j(len); i < blen; ++i, ++j) {
                    a_tgtSeq[j] = (*batch)[i];
                }
            }
            else {
                CORBA::TypeCode_var tc = a->type();
                ostringstream sstr;
                sstr
                    << "CORBA::Any doesn't contain expected type, but: "
                    << tc->name() << ".";
                throw ivd_Error(ie_IPC_ANY_TYPE, sstr.str(), true);
            }
        } while (more);
    }

const char* ipc_unknownExcLiteral_c ( "** Unknown exception **"   ) 
bool ipc_Corba::IsMajorServant ( const i_Component_i a_obj  )  [static, inherited]

Definition at line 491 of file ipc_corba.cpp.

References ipc_Corba::m_majorServant, and ipc_Corba::Singleton().

Referenced by i_Component_i::Remove().

                                                         {
    return (ipc_Corba::Singleton().m_majorServant == a_obj);
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::MangledDeviceName ( const string &  a_devName  )  [static, protected, inherited]

CORBA Naming service treats '/' as a special character.

Therefore we must convert all '/' to '$'

Definition at line 892 of file ipc_corba.cpp.

References cmn_StrLowerCase().

Referenced by ipc_Corba::GetPMFSName_NSEntry().

                                                                 {
    string mangledDevice = a_devName;
    cmn_StrLowerCase(mangledDevice);
    for (string::size_type i = 0; i < mangledDevice.length(); i++) {
        if (mangledDevice[i] == '/') mangledDevice[i] = '$';
    }

    return mangledDevice;
}

Here is the call graph for this function:

Here is the caller graph for this function:

const string ipc_Corba::MangledHostName ( const string &  a_hostName  )  [static, protected, inherited]

CORBA Naming service treats '.

' as a special character. Therefore we must convert all '.' to '@'.

Definition at line 875 of file ipc_corba.cpp.

References cmn_StrLowerCase().

Referenced by ipc_Corba::GetFSEvtMgr_NSEntry(), ipc_Corba::GetLA_NSEntry(), ipc_Corba::GetMIF_NSEntry(), ipc_Corba::GetPMFSID_NSEntry(), ipc_Corba::GetPMFSName_NSEntry(), ipc_Corba::GetPMID_NSEntry(), and ipc_Corba::GetSvc_NSEntry().

                                                                {
    string mangledHost = a_hostName;
    cmn_StrLowerCase(mangledHost);
    for (string::size_type i = 0; i < mangledHost.length(); i++) {
        if (mangledHost[i] == '.') mangledHost[i] = '@';
    }
    return mangledHost;
}

Here is the call graph for this function:

Here is the caller graph for this function:

ostream& operator<< ( ostream &  a_os,
const CORBA::SystemException &  a_sysExc 
)

Definition at line 1425 of file ipc_corba.cpp.

References ipc_CORBASysExceptionToString().

                                                                          {
    // Appends omniORB's proprietary string that describes the
    // system exception better.
    a_os << ipc_CORBASysExceptionToString(a_sysExc);
    return a_os;
}

Here is the call graph for this function:

ostream& operator<< ( ostream &  a_os,
const omniORB::fatalException &  a_fe 
)

Definition at line 1432 of file ipc_corba.cpp.

                                                                        {
    a_os
        <<"** MAJOR PROBLEM: Caught omniORB::fatalException:" << endl
        << "  file: " << a_fe.file() << endl
        << "  line: " << a_fe.line() << endl
        << "  mesg: " << a_fe.errmsg();
    return a_os;
}

ostream& operator<< ( ostream &  a_os,
const omni_thread_fatal &  otf 
)

Definition at line 1441 of file ipc_corba.cpp.

                                                                  {
    a_os << "ATTENTION: omni_thread_fatal: " << otf.error;
    return a_os;
}

ostream& operator<< ( ostream &  a_os,
const omni_thread_invalid &  otf 
)

Definition at line 1446 of file ipc_corba.cpp.

                                                                    {
    a_os << "ATTENTION: omni_thread_invalid.";
    return a_os;
}

ostream& operator<< ( ostream &  a_os,
const i_IvdException a_exc 
)

Definition at line 1451 of file ipc_corba.cpp.

References i_IvdException::code.

                                                                 {
    a_os << "CORBA::i_IvdException(" << a_exc.code << ")";
    return a_os;
}

ostream& operator<< ( ostream &  a_os,
const CORBA::Object_ptr &  a_obj 
)

Displays type code ID of the CORBA::Object reference.

(Source: Henning, Vinoski: Advanced CORBA Programming with C++)

Definition at line 1461 of file ipc_corba.cpp.

                                                                  {

    try {
        CORBA::Any anyTmp;
        anyTmp <<= a_obj;
        CORBA::TypeCode_var tc = anyTmp.type();
        const char* p = tc->name();
        a_os << ipc_corbaLiteral_c;
        if (*p != '\0') {
            a_os << p;
        };
        a_os << "#" << tc->id();
    }
    catch(...) {
        a_os << "CORBA::Object?";
    }
    return a_os;
}

ostream& operator<< ( ostream &  a_os,
const CORBA::Exception &  a_exc 
)

Definition at line 1420 of file ipc_corba.cpp.

References ipc_CORBAExceptionToString().

                                                                 {
    a_os << ipc_CORBAExceptionToString(a_exc);
    return a_os;
}

Here is the call graph for this function:

void ipc_Corba::Register ( const CORBA::Object_ptr  a_objref,
const string &  a_objectName 
) [protected, inherited]

Definition at line 1025 of file ipc_corba.cpp.

References dbg_DETAIL, dbg_EXTAPI, dbg_LOW, dbg_NORM, ie_IPC_OBJ_ACTIVE, ie_IPC_ORB, ie_IPC_REGISTER, ivd_Error, log_DBG_m, log_FUNC_A_m, ipc_Corba::m_orb, and ipc_Corba::m_rootContext.

Referenced by ipc_Corba::RegisterFSEvtMgr(), ipc_Corba::RegisterLA(), ipc_Corba::RegisterMIF(), ipc_Corba::RegisterPMByDeviceName(), ipc_Corba::RegisterPMByFSID(), ipc_Corba::RegisterPMByPMID(), ipc_Corba::RegisterRM(), ipc_Corba::RegisterSvc(), and ipc_Corba::RegisterUT().

                                                                                   {
    log_FUNC_A_m(Register,
        "obj id " << a_objref <<
        ", name " << a_objectName
    );

    if (CORBA::is_nil(m_orb) == true) {
        log_MARKLINE_m;
        throw ivd_InternalError(
            ie_IPC_ORB,
            "ORB is not yet initialized. Use Init(argv, argc)",
            true
        );
    }

    log_DBG_m(dbg_NORM,
        "Object id : " << a_objref);

    log_DBG_m(dbg_DETAIL,
        "Object reference : " << CORBA::String_var(m_orb->object_to_string(a_objref)));

    try {
        string          objPath = a_objectName;
        string          name;
        CosNaming::Name ctxName;

        // Bind all contexts (similar to directories) first
        if (objPath.at(0) == '/') {
            objPath = objPath.substr(1);
        }
        while (true) {
            size_t slashPos = objPath.find_first_of('/');
            if (slashPos == string::npos) {
                name = objPath;
                // Break out of "endless" loop here
                break;
            }
            else {
                name = objPath.substr(0, slashPos);
                objPath = objPath.substr(slashPos+1);
            }

            CORBA::ULong    pathSize = ctxName.length();
            // Increase sequence
            ctxName.length(pathSize+1);
            ctxName[pathSize].id = name.c_str();

            CosNaming::NamingContext_var ctx;
            try {
                log_DBG_m(dbg_EXTAPI, "Binding context: " << name);
                ctx = m_rootContext->bind_new_context(ctxName);
            }
            catch(CosNaming::NamingContext::AlreadyBound&) {
                // If the context already exists, this exception will be raised.
                // In this case, just resolve the name and assign ctx
                // to the object returned:
                log_DBG_m(dbg_DETAIL, "Already bound (rebinding context)");

                CORBA::Object_var obj;
                obj = m_rootContext->resolve(ctxName);
                CosNaming::NamingContext_var ctx;
                ctx = CosNaming::NamingContext::_narrow(obj);
                if( CORBA::is_nil(ctx) ) {
                    log_MARKLINE_m;
                    throw ivd_Error(
                        ie_IPC_REGISTER,
                        "Can't bind context " + name + ". Maybe it is not a context?",
                        true
                    );
                }
            }
        }

        // Check if the existing object reference is still alive
        // if the new object reference is not nil
        if (!CORBA::is_nil(a_objref)) {
            try {
                CosNaming::Name_var name =
                    omni::omniURI::stringToName(a_objectName.c_str());
                CORBA::Object_var prevObj = m_rootContext->resolve(name);

                if (!CORBA::is_nil(prevObj) && !prevObj->_non_existent()) {
                    // An object is already active on this node.
                    // Prevent overwriting!
                    log_MARKLINE_m;
                    throw ivd_Error(ie_IPC_OBJ_ACTIVE, "Object: " + a_objectName);
                }
            }
            catch (CORBA::SystemException&) {
                log_DBG_m(dbg_NORM,
                    "Caught CORBA::SystemException. Assuming object not active.");
            }
            catch(CosNaming::NamingContext::NotFound&) {
                log_DBG_m(dbg_NORM,
                    "Caught CosNaming::NamingContext::NotFound. " <<
                    "Assuming object not active.");
            }
        }
        else {
            // empty
            // allow overwriting IOR if writing nil IOR
            log_DBG_m(dbg_LOW, "Writing nil IOR to object " << a_objectName);
        }

        // else bind object reference (similar to file).

        CORBA::ULong    pathSize = ctxName.length();
        // Increase sequence
        ctxName.length(pathSize+1);
        ctxName[pathSize].id = name.c_str();

        try {
            log_DBG_m(dbg_EXTAPI, "Binding object name: " << name);
            m_rootContext->bind(ctxName, a_objref);
        }
        catch(CosNaming::NamingContext::AlreadyBound&) {
            log_DBG_m(dbg_EXTAPI, "Already bound (rebinding)");
            m_rootContext->rebind(ctxName, a_objref);
        }
    }
    ipc_CATCH_CORBA_THROW_IVD_m;
}

Here is the caller graph for this function:

void ipc_Corba::RegisterFSEvtMgr ( const CORBA::Object_ptr  a_objref  )  [static, inherited]

Definition at line 674 of file ipc_corba.cpp.

References g_cmn, ipc_Corba::GetFSEvtMgr_NSEntry(), log_FUNC_m, cmn_SysInfo::m_hostName, ipc_Corba::Register(), cmn_Global::si, and ipc_Corba::Singleton().

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterLA ( const CORBA::Object_ptr  a_objref,
const string &  a_libraryName 
) [static, inherited]

Definition at line 716 of file ipc_corba.cpp.

References g_cmn, ipc_Corba::GetLA_NSEntry(), log_FUNC_m, cmn_SysInfo::m_hostName, ipc_Corba::Register(), cmn_Global::si, and ipc_Corba::Singleton().

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterMajorServant ( i_Component_i a_majServant  )  [static, inherited]

Definition at line 456 of file ipc_corba.cpp.

References dbg_LOW, log_DBG_m, log_FUNC_m, ipc_Corba::m_majorServant, and ipc_Corba::Singleton().

Referenced by CliConnectToMIF(), i_BackEndAgent_i::i_BackEndAgent_i(), and main().

                                                                {
    log_FUNC_m(RegisterMajorServant);

    log_DBG_m(dbg_LOW, "Registering major servant: " << a_majServant);
    ipc_Corba::Singleton().m_majorServant = a_majServant;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterMIF ( const CORBA::Object_ptr  a_objref  )  [static, inherited]

Definition at line 567 of file ipc_corba.cpp.

References g_cmn, ipc_Corba::GetMIF_NSEntry(), log_FUNC_m, cmn_SysInfo::m_hostName, ipc_Corba::Register(), cmn_Global::si, and ipc_Corba::Singleton().

Referenced by i_ManagementInterface_i::i_ManagementInterface_i().

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterPMByDeviceName ( const CORBA::Object_ptr  a_objref,
const string &  a_clientHost,
const string &  a_fsDevName 
) [static, inherited]

Definition at line 617 of file ipc_corba.cpp.

References ipc_Corba::GetPMFSName_NSEntry(), log_FUNC_m, ipc_Corba::Register(), and ipc_Corba::Singleton().

Referenced by i_PartitionManager_i::i_PartitionManager_i(), and i_PartitionManager_i::RefreshCfg().

                               {

    log_FUNC_m(RegisterPMByDeviceName);

    ipc_Corba::Singleton().Register(
        a_objref, GetPMFSName_NSEntry(a_clientHost, a_fsDevName) );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterPMByFSID ( const CORBA::Object_ptr  a_objref,
const string &  a_clientHost,
const string &  a_fsID 
) [static, inherited]

Definition at line 602 of file ipc_corba.cpp.

References ipc_Corba::GetPMFSID_NSEntry(), log_FUNC_m, ipc_Corba::Register(), and ipc_Corba::Singleton().

Referenced by i_PartitionManager_i::RegisterFSID(), and i_PartitionManager_i::UnRegisterFSID().

                          {

    log_FUNC_m(RegisterPMByFSID);

    ipc_Corba::Singleton().Register(
        a_objref, GetPMFSID_NSEntry(a_clientHost, a_fsID) );
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterPMByPMID ( const CORBA::Object_ptr  a_objref,
const string &  a_partID 
) [static, inherited]

Definition at line 588 of file ipc_corba.cpp.

References g_cmn, ipc_Corba::GetPMID_NSEntry(), log_FUNC_m, cmn_SysInfo::m_hostName, ipc_Corba::Register(), cmn_Global::si, and ipc_Corba::Singleton().

Referenced by i_PartitionManager_i::i_PartitionManager_i().

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterRM ( const CORBA::Object_ptr  a_objref  )  [static, inherited]

Definition at line 547 of file ipc_corba.cpp.

References ipc_Corba::GetRM_NSEntry(), log_FUNC_m, ipc_Corba::Register(), and ipc_Corba::Singleton().

Referenced by i_ResourceManager_i::i_ResourceManager_i().

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RegisterSvc ( const CORBA::Object_ptr  a_objref  )  [static, inherited]

Definition at line 695 of file ipc_corba.cpp.

References g_cmn, ipc_Corba::GetSvc_NSEntry(), log_FUNC_m, cmn_SysInfo::m_hostName, ipc_Corba::Register(), cmn_Global::si, and ipc_Corba::Singleton().

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::RemoveMajorServant (  )  [static, inherited]

Definition at line 467 of file ipc_corba.cpp.

References dbg_LOW, log_DBG_m, log_FUNC_m, ipc_Corba::m_majorServant, ipc_Corba::m_majorServantRemoveLock, NULL, i_Component_i::Remove(), ipc_Corba::Shutdown(), and ipc_Corba::Singleton().

Referenced by ipc_Corba::Destroy(), and ipc_Shutdown::RunUndetached().

                                   {
    log_FUNC_m(RemoveMajorServant);

    cmn_MutexLock l(ipc_Corba::Singleton().m_majorServantRemoveLock);
    if (ipc_Corba::Singleton().m_majorServant != NULL) {
        log_DBG_m(dbg_LOW,
            "Removing major servant. It will do cleanup and ORB shutdown.");

        // Major (principal) servant must call Shutdown in its
        // destructor.
        ipc_Corba::Singleton().m_majorServant->Remove();
    }
    else {
        log_DBG_m(dbg_LOW, "No major servant registered. Just shut down ORB.");

        // Otherwise just do a Shutdown.
        ipc_Corba::Shutdown();
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::ResetMajorServant (  )  [static, inherited]

Definition at line 495 of file ipc_corba.cpp.

References ipc_Corba::m_majorServant, and ipc_Corba::Singleton().

Referenced by i_Component_i::Remove().

Here is the call graph for this function:

Here is the caller graph for this function:

CORBA::Object_ptr ipc_Corba::Resolve ( const string &  a_objectName,
bool  a_wait = true 
) [protected, inherited]

Definition at line 1152 of file ipc_corba.cpp.

References dbg_DETAIL, dbg_EXTAPI, dbg_LOW, dbg_NORM, ie_IPC_ORB, ie_IPC_ORB_EXCEPTION, ie_IPC_RESOLVE, ie_TIMEOUT, ipc_CORBAExceptionToString(), ipc_NS_ACCESS_RETRIES_c, ivd_Error, ivd_Sleep, log_DBG_m, log_ERR_m, log_FUNC_A_m, ipc_Corba::m_orb, ipc_Corba::m_rootContext, and NULL.

Referenced by ipc_Corba::ResolveFSEvtMgr(), ipc_Corba::ResolveLA(), ipc_Corba::ResolveMIF(), ipc_Corba::ResolvePMByDeviceName(), ipc_Corba::ResolvePMByFSID(), ipc_Corba::ResolvePMByPartID(), ipc_Corba::ResolveRM(), ipc_Corba::ResolveSvc(), and ipc_Corba::ResolveUT().

                                                                          {
    log_FUNC_A_m(Resolve,
        "Name: " << a_objectName <<
        " Wait: " << (a_wait? "Yes" : "No") );

    if (CORBA::is_nil(m_orb) == true) {
        log_MARKLINE_m;
        throw ivd_InternalError(
            ie_IPC_ORB,
            "ORB is not yet initialized. Use Init(argv, argc)",
            true
        );
    }

    try {
        // Resolve the name to an object reference.
        log_DBG_m(dbg_EXTAPI, "Getting object reference of " << a_objectName.c_str());
        CosNaming::Name_var name =
            omni::omniURI::stringToName( a_objectName.c_str() );

        log_DBG_m(dbg_DETAIL, "After omniURI::stringToName.");

        CORBA::Object_var obj;

        // Do retries if object can't be accessed.
        // It most probably means that NS is currently not available
        // or that the object is not (yet) ready (System Startup).

        ivd_Time_t timeResStart = time(NULL);

        while(1) {
            ivd_Time_t now;

            try {
                obj = m_rootContext->resolve(name);
                if (!CORBA::is_nil(obj) && !obj->_non_existent()) {
                    // It is OK. Object reference resolved.

                    log_DBG_m(dbg_DETAIL,
                        "Seems like a valid reference.");

                    break;
                }
                // Resolved reference is NIL or non-existent.
                if (!a_wait) {
                    log_DBG_m(dbg_NORM,
                        "Won't wait for the object to become available. returning _nil().");

                    return CORBA::Object::_nil();
                }
                now = time(NULL);
                if ( (now - timeResStart) > ipc_NS_ACCESS_RETRIES_c) {
                    // Timeout elapsed. Will not continue.
                    log_ERR_m(
                        "Timeout accessing object. " <<
                        "Most probably not available. Giving up." << endl <<
                        a_objectName);
                    throw ivd_Error(ie_TIMEOUT, "Object: " + a_objectName);
                }
            }
            catch (CORBA::COMM_FAILURE&) {
                now = time(NULL);
                if ( !a_wait || (now - timeResStart) > ipc_NS_ACCESS_RETRIES_c) {
                    // Timeout elapsed. Will not continue.
                    log_DBG_m(dbg_LOW,
                        "Problems accessing Naming Service/(Object?). " <<
                        "Most probably not running. Giving up." << endl <<
                        a_objectName);
                    throw;
                }
            }
            catch (CORBA::TRANSIENT& e) {
                now = time(NULL);
                if ( !a_wait || (now - timeResStart) > ipc_NS_ACCESS_RETRIES_c) {
                    // Timeout elapsed. Will not continue.
                    log_DBG_m(dbg_LOW,
                        "Problems accessing Naming Service/(Object?). " <<
                        "Most probably not running. Giving up." << endl <<
                        a_objectName);
                    //
                    // This is to avoid too many entries to error.log:
                    // TRANSIENT can mean that the process (object) is not yet running
                    //
                    throw ivd_Error(
                        ie_IPC_ORB_EXCEPTION, ipc_CORBAExceptionToString(e));
                }
            }
            catch(CORBA::INV_OBJREF&) {
                now = time(NULL);
                if ( !a_wait || (now - timeResStart) > ipc_NS_ACCESS_RETRIES_c) {
                    // Timeout elapsed. Will not continue.
                    log_ERR_m(
                        "Invalid object reference. " <<
                        "Most probably not available any more. Giving up." << endl <<
                        a_objectName);
                    throw;
                }
            }
            catch(CORBA::OBJECT_NOT_EXIST&) {
                now = time(NULL);
                if ( !a_wait || (now - timeResStart) > ipc_NS_ACCESS_RETRIES_c) {
                    // Timeout elapsed. Will not continue.
                    log_DBG_m(dbg_LOW,
                        "Object does not exist. Giving up." << endl <<
                        a_objectName);
                    throw;
                }
            }
            catch(CosNaming::NamingContext::NotFound&) {
                // This exception is thrown if any of the components of the
                // path [contexts or the object] isn't found:
                now = time(NULL);
                if ( !a_wait || (now - timeResStart) > ipc_NS_ACCESS_RETRIES_c) {
                    //
                    // Throw exception, but don't log unsuccessful resolving immediately.
                    // Leave this to the caller.
                    //
                    throw ivd_Error(
                        ie_IPC_RESOLVE,
                        "Requested name does not yet exist in the NameService. Giving up. " +
                        a_objectName
                    );
                }
            }
            {
                log_DBG_m(dbg_NORM,
                    "Problems accessing Naming Service or object. Retrying in 1 sec.");
                ivd_Sleep(1);
            }
        };

        // Reference resolved, return a duplicate.

        log_DBG_m(dbg_NORM, "Object id : " << obj);
        log_DBG_m(dbg_DETAIL, "Object ref : " << CORBA::String_var(m_orb->object_to_string(obj)));

        return obj._retn();
    }
    ipc_CATCH_CORBA_THROW_IVD_m;

    return CORBA::Object::_nil();
}

Here is the call graph for this function:

Here is the caller graph for this function:

CORBA::Object_ptr ipc_Corba::ResolveFSEvtMgr ( const string &  a_serverHost,
bool  a_wait = true 
) [static, inherited]

Definition at line 685 of file ipc_corba.cpp.

References ipc_Corba::GetFSEvtMgr_NSEntry(), log_FUNC_m, ipc_Corba::Resolve(), and ipc_Corba::Singleton().

Referenced by i_ManagementInterface_i::DisableDebug(), i_ManagementInterface_i::EnableDebug(), main(), and mif_PartMgr::SendClientFSIDs().

Here is the call graph for this function:

Here is the caller graph for this function:

CORBA::Object_ptr ipc_Corba::ResolveLA ( const string &  a_serverHost,
const string &  a_libraryName,
bool  a_wait = true 
) [static, inherited]
CORBA::Object_ptr ipc_Corba::ResolveMIF ( const string &  a_serverHost,
bool  a_wait = true 
) [static, inherited]

Definition at line 578 of file ipc_corba.cpp.

References ipc_Corba::GetMIF_NSEntry(), log_FUNC_m, ipc_Corba::Resolve(), and ipc_Corba::Singleton().

Referenced by CliConnectToMIF(), and main().

                                                                             {
    log_FUNC_m(ResolveMIF);

    return ipc_Corba::Singleton().Resolve(GetMIF_NSEntry(a_serverHost), a_wait);
}

Here is the call graph for this function:

Here is the caller graph for this function:

CORBA::Object_ptr ipc_Corba::ResolvePMByDeviceName ( const string &  a_clientHost,
const string &  a_fsDevName,
bool  a_wait = true 
) [static, inherited]

Definition at line 660 of file ipc_corba.cpp.

References ipc_Corba::GetPMFSName_NSEntry(), log_FUNC_m, ipc_Corba::Resolve(), and ipc_Corba::Singleton().

Referenced by main().

                 {

    log_FUNC_m(ResolvePMByDeviceName);

    return ipc_Corba::Singleton().Resolve(GetPMFSName_NSEntry(a_clientHost, a_fsDevName), a_wait);
}

Here is the call graph for this function:

Here is the caller graph for this function:

CORBA::Object_ptr ipc_Corba::ResolvePMByFSID ( const string &  a_clientHost,
const string &  a_fsID,
bool  a_wait = true 
) [static, inherited]
CORBA::Object_ptr ipc_Corba::ResolvePMByPartID ( const string &  a_serverHost,
const string &  a_partID,
bool  a_wait = true 
) [static, inherited]
CORBA::Object_ptr ipc_Corba::ResolveRM ( bool  a_wait = true  )  [static, inherited]
CORBA::Object_ptr ipc_Corba::ResolveSvc ( const string &  a_serverHost,
bool  a_wait = true 
) [static, inherited]
CORBA::Object_ptr ipc_Corba::ResolveTargetPM ( const string &  a_serverHost,
const string &  a_partName 
) [inherited]

Definition at line 743 of file ipc_corba.cpp.

References dbg_DETAIL, dbg_EXTAPI, dbg_LOW, dbg_NORM, ipc_Corba::GetPMID_NSEntry(), ie_IPC_ORB, ie_IPC_ORB_EXCEPTION, ie_IPC_RESOLVE, ie_NOFINDOBJ, ipc_CORBAExceptionToString(), ivd_Error, log_DBG_m, log_ERR_m, log_FUNC_A_m, and ipc_Corba::m_orb.

Referenced by i_PartitionManager_i::GetReplicationPM().

                              {

    log_FUNC_A_m(ResolveTargetPM,
        "Server: " << a_serverHost <<
        " Partition: " << a_partName );

    if (CORBA::is_nil(m_orb) == true) {
        log_MARKLINE_m;
        throw ivd_InternalError(
            ie_IPC_ORB,
            "ORB is not yet initialized. Use Init(argv, argc)",
            true
        );
    }

    try {
        CosNaming::NamingContext_var nsContext;
        {
            // Resolve the naming service reference
            log_DBG_m(dbg_EXTAPI, "Getting object reference of NS on " << a_serverHost);
            string objectUri = string("corbaname:iiop:") + a_serverHost + string(":2809");
            log_DBG_m(dbg_LOW, "Resolving uri: " << objectUri);
            CORBA::Object_var obj = m_orb->string_to_object(objectUri.c_str());
            log_DBG_m(dbg_LOW, "URI resolved.");
            nsContext = CosNaming::NamingContext::_narrow(obj);

            if (CORBA::is_nil(nsContext)) {
                throw ivd_Error(ie_NOFINDOBJ, "Can't contact Naming Service on target host.");
            }
        }

        // resolve PM
        string objectName(GetPMID_NSEntry(a_serverHost, a_partName));
        CosNaming::Name_var name = omni::omniURI::stringToName(objectName.c_str());

        log_DBG_m(dbg_DETAIL, "After omniURI::stringToName.");

        CORBA::Object_var obj;
        try {
            obj = nsContext->resolve(name);
            if (!CORBA::is_nil(obj) && !obj->_non_existent()) {
                // It is OK. Object reference resolved.
                log_DBG_m(dbg_DETAIL,
                    "Seems like a valid reference.");
            }
            else {
                // Resolved reference is NIL or non-existent.
                log_DBG_m(dbg_NORM,
                    "Won't wait for the object to become available. returning _nil().");

                return CORBA::Object::_nil();
            }
        }
        catch (CORBA::COMM_FAILURE&) {
            log_DBG_m(dbg_LOW,
                "Problems accessing Naming Service/(Object?). " <<
                "Most probably not running. Giving up." << endl <<
                objectName);
            throw;
        }
        catch (CORBA::TRANSIENT& e) {
            log_DBG_m(dbg_LOW,
                "Problems accessing Naming Service/(Object?). " <<
                "Most probably not running. Giving up." << endl <<
                objectName);
            //
            // This is to avoid too many entries to error.log:
            // TRANSIENT can mean that the process (object) is not yet running
            //
            throw ivd_Error(
                ie_IPC_ORB_EXCEPTION, ipc_CORBAExceptionToString(e));
        }
        catch(CORBA::INV_OBJREF&) {
            log_ERR_m(
                "Invalid object reference. " <<
                "Most probably not available any more. Giving up." << endl <<
                objectName);
            throw;
        }
        catch(CORBA::OBJECT_NOT_EXIST&) {
            log_DBG_m(dbg_LOW,
                "Object does not exist. Giving up." << endl <<
                objectName);
            throw;
        }
        catch(CosNaming::NamingContext::NotFound&) {
            // This exception is thrown if any of the components of the
            // path [contexts or the object] isn't found:
            throw ivd_Error(
                ie_IPC_RESOLVE,
                "Requested name does not yet exist in the NameService. Giving up. " +
                objectName
            );
        }

        // Reference resolved, return a duplicate.
        log_DBG_m(dbg_NORM, "PM Object id : " << obj);
        log_DBG_m(dbg_DETAIL, "PM Object ref : " << CORBA::String_var(m_orb->object_to_string(obj)));

        return obj._retn();
    }
    ipc_CATCH_CORBA_THROW_IVD_m;

    return CORBA::Object::_nil();
}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::Run (  )  [static, inherited]

Definition at line 503 of file ipc_corba.cpp.

References dbg_NORM, ipc_EXEC_m, ipc_Corba::IsInShutdown(), log_DBG_m, log_FUNC_m, ipc_Corba::m_orb, and ipc_Corba::Singleton().

Referenced by _tmain(), main(), and ServerLoop().

                    {
    log_FUNC_m(Run);
    if (ipc_Corba::IsInShutdown()){
        log_DBG_m(dbg_NORM, "ORB already in shutdown.")
        return;
    }

    ipc_EXEC_m (
        ipc_Corba::Singleton().m_orb->run();
    );

}

Here is the call graph for this function:

Here is the caller graph for this function:

void ipc_Corba::Shutdown (  )  [static, inherited]

This function must be called by the destructor of the major servant to shut down the ORB (exit from its run() function).

Definition at line 524 of file ipc_corba.cpp.

References dbg_EXTAPI, dbg_LOW, ipc_EXEC_m, ipc_Corba::IsInShutdown(), log_DBG_m, log_FUNC_m, ipc_Corba::m_inShutdown, ipc_Corba::m_orb, and ipc_Corba::Singleton().

Referenced by ipc_Corba::RemoveMajorServant(), i_BackEndAgent_i::~i_BackEndAgent_i(), i_HSM_i::~i_HSM_i(), i_IvdNet_i::~i_IvdNet_i(), i_LibraryAgentManual_i::~i_LibraryAgentManual_i(), i_LibraryAgentSCSI_i::~i_LibraryAgentSCSI_i(), i_ManagementInterface_i::~i_ManagementInterface_i(), i_PartitionManager_i::~i_PartitionManager_i(), i_ResourceManager_i::~i_ResourceManager_i(), i_Service_i::~i_Service_i(), and i_UIMessageServer_i::~i_UIMessageServer_i().

                         {
    log_FUNC_m(Shutdown);

    if (ipc_Corba::IsInShutdown()) {
        log_DBG_m(dbg_LOW, "** Shutdown already in progress. Ignore.");
        return;
    };

    ipc_Corba::Singleton().m_inShutdown = true;

    if (!CORBA::is_nil(ipc_Corba::Singleton().m_orb)) {
        log_DBG_m(dbg_EXTAPI,
            "About to call m_orb->shutdown(0). Won't wait for invocations to finish.");

        ipc_EXEC_m( ipc_Corba::Singleton().m_orb->shutdown( 0 ); );
    }

}

Here is the call graph for this function:

Here is the caller graph for this function:

ipc_Corba & ipc_Corba::Singleton (  )  [static, inherited]
void ipc_Corba::StopSignalHandler (  )  [private, inherited]

Definition at line 156 of file ipc_corba.cpp.

References ivd_STOP_THREAD, log_FUNC_m, and SignalHandler().

Referenced by ipc_Corba::Destroy().

                                  {
    log_FUNC_m(StopSignalHandler);

#if TGT_OS_windows
    CtrlHandler(ivd_STOP_THREAD);
#else
    SignalHandler(ivd_STOP_THREAD);
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

ipc_Corba::~ipc_Corba (  )  [private, virtual, inherited]

Definition at line 146 of file ipc_corba.cpp.

References log_ERR_m, log_FUNC_m, ipc_Corba::m_destroyed, and ipc_Corba::Singleton().

                      {
    log_FUNC_m(~ipc_Corba);
    if (!ipc_Corba::Singleton().m_destroyed) {
        log_ERR_m("ORB didn't shut-down properly!");
    }
}

Here is the call graph for this function:


Variable Documentation

unsigned long long i_JobParams::bufId [inherited]
string i_JobParams::diskBufferFS [inherited]
long i_JobParams::jobPriority [inherited]
const CORBA::ULong ipc_Corba::m_dbgDetail [static, inherited]

Definition at line 162 of file ipc.h.

Referenced by ipc_DbgOn().

const CORBA::ULong ipc_Corba::m_dbgLow [static, inherited]

Definition at line 160 of file ipc.h.

Referenced by ipc_DbgOn().

const CORBA::ULong ipc_Corba::m_dbgNorm [static, inherited]

Definition at line 161 of file ipc.h.

Referenced by ipc_DbgOn().

const CORBA::ULong ipc_Corba::m_dbgVerbose [static, inherited]

Verbose level of debugging: up to 128 bytes of GIOP messages are displayed.

Definition at line 163 of file ipc.h.

Referenced by ipc_DbgOn().

const string ipc_Corba::m_nsIvdClt_c = string("clt") [static, protected, inherited]
const string ipc_Corba::m_nsIvdEvtMgr_c = string("fsevtmgr") [static, protected, inherited]

Definition at line 173 of file ipc.h.

Referenced by ipc_Corba::GetFSEvtMgr_NSEntry().

const string ipc_Corba::m_nsIvdFS_c = string("fs") [static, protected, inherited]

Definition at line 174 of file ipc.h.

Referenced by ipc_Corba::GetPMFSID_NSEntry(), and ipc_Corba::GetPMFSName_NSEntry().

const string ipc_Corba::m_nsIvdLib_c = string("lib") [static, protected, inherited]

Definition at line 168 of file ipc.h.

Referenced by ipc_Corba::GetLA_NSEntry().

const string ipc_Corba::m_nsIvdMgr_c = string("mgr") [static, protected, inherited]

Definition at line 169 of file ipc.h.

Referenced by ipc_Corba::GetMIF_NSEntry(), and ipc_Corba::GetPMID_NSEntry().

const string ipc_Corba::m_nsIvdMIF_c = string("mif") [static, protected, inherited]

Definition at line 170 of file ipc.h.

Referenced by ipc_Corba::GetMIF_NSEntry().

const string ipc_Corba::m_nsIvdPart_c = string("part") [static, protected, inherited]

Definition at line 171 of file ipc.h.

Referenced by ipc_Corba::GetPMID_NSEntry().

const string ipc_Corba::m_nsIvdPrefix_c = g_cmn.prod.m_nameShort [static, protected, inherited]
const string ipc_Corba::m_nsIvdRM_c = string("rm") [static, protected, inherited]

Definition at line 167 of file ipc.h.

Referenced by ipc_Corba::GetRM_NSEntry().

const string ipc_Corba::m_nsIvdSvc_c = string("svc") [static, protected, inherited]

Definition at line 175 of file ipc.h.

Referenced by ipc_Corba::GetSvc_NSEntry().

string i_JobParams::partName [inherited]
class _OMNIORB_NTDLL_IMPORT POA_i_Component

Definition at line 44 of file i_component_impl.h.

const char s_orbName[] = "omniORB4" [static]

Definition at line 107 of file ipc_corba.cpp.

Referenced by ipc_Corba::Init().