Issue 7581: file Service becomes part of the CF name space. (swradio-ftf) Source: PrismTech (Mr. Gerald Lee Bickle, jerry.bickle@prismtechusa.com) Nature: Uncategorized Issue Severity: Summary: Circular Dependency between CF and File Services IDL Name space. This got introduced from the errata. Proposed Solution: file Service becomes part of the CF name space. Resolution: Revised Text: Resolution: file Service becomes part of the CF name space. Rest of the resolution is discussed below. Revised Text: Section 9.1 Remove Section 9.1 Common Radio Facilities and move section 9.1 .1 File Services and its subsection to new section 8.3.1.7 File Services. Reword last sentence in section 8.3.1 from "The following subsections provide the definitions for IStateManagement, ManagedServiceComponent, ServiceComponent, and CapabilityModel(s)." to "The following subsections provide the definitions for IStateManagement, ManagedServiceComponent, ServiceComponent, CapabilityModel(s), and File Services.". CF Devices Interfaces IDL Replace IDL text in section A.4 CF Devices Interfaces with the following text: Update IDL by replacing two statements: · #include "DsFileSystem.idl" with #include "CFFileSystem.idl" · Replace load operation with void load ( in FileSystem fs, in string fileName, in LoadType loadKind ) raises (InvalidState,InvalidLoadKind,InvalidFileName,LoadFail); The resulting IDL is as follows: //Source file: CFDevices.idl #ifndef __CFDEVICES_DEFINED #define __CFDEVICES_DEFINED #include "CFResources.idl" #include "CFFileSystem.idl" #include "CFStateManagement.idl" #include "CFBaseTypes.idl" #include "CFCommonTypes.idl" #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #endif module CF { interface DeviceAggregation; interface Device; typedef sequence <Device> DeviceSequence; interface DeviceAggregation { readonly attribute DeviceSequence devices; void addDevice ( in Device associatedDevice ) raises (InvalidObjectReference); void removeDevice ( in Device associatedDevice ) raises (InvalidObjectReference); }; interface Device : Resource, StateManagement { exception InvalidState { string msg; }; exception InvalidCapacity { string msg; Properties capacities; }; readonly attribute string softwareProfile; readonly attribute string label; readonly attribute DeviceAggregation compositeDevice; boolean allocateCapacity ( in Properties capacities ) raises (InvalidCapacity,InvalidState); void deallocateCapacity ( in Properties capacities ) raises (InvalidCapacity,InvalidState); }; interface LoadableDevice : Device { enum LoadType { KERNEL_MODULE, SHARED_LIBRARY, DRIVER, EXECUTABLE }; exception InvalidLoadKind { }; exception LoadFail { ErrorNumberType errorNumber; string msg; }; void load ( in FileSystem fs, in string fileName, in LoadType loadKind ) raises (InvalidState,InvalidLoadKind,InvalidFileName,LoadFail); void unload ( in string fileName ) raises (InvalidState,InvalidFileName); }; interface ExecutableDevice : LoadableDevice { exception InvalidProcess { ErrorNumberType errorNumber; string msg; }; exception InvalidFunction { }; typedef unsigned long ProcessID_Type; exception InvalidParameters { Properties invalidParms; }; exception InvalidOptions { Properties invalidOpts; }; const string STACK_SIZE = "STACK_SIZE"; const string PRIORITY_ID = "PRIORITY"; exception ExecuteFail { ErrorNumberType errorNumber; string msg; }; const string THREAD_CREATE_REQUEST = "CREATE_THREAD"; const string RUNTIME_OPTIONS = "RUNTIME_OPTIONS"; const string RUNTIME_REQUEST = "RUNTIME_REQUEST"; void terminate ( in ProcessID_Type processId ) raises (InvalidProcess,InvalidState); ProcessID_Type execute ( in string name, in Properties options, in Properties parameters ) raises (InvalidState,InvalidFunction,InvalidParameters,InvalidOptions,InvalidFileName,ExecuteFail); }; }; #endif Update IDL text in section A.6.4 CF Domain Manager Interface with the following text: · Replace "#include "DsFileManager.idl"" with "#include "CFFileManager.idl" " · Replace fileMgr attribute with "readonly attribute FileManager fileMgr;" · The resulting IDL is as follows: //Source file: CFDomainManager.idl #ifndef __CFDOMAINMANAGER_DEFINED #define __CFDOMAINMANAGER_DEFINED #include "CFDeviceManager.idl" #include "CFFileManager.idl" #include "CFResources.idl" #include "CFApplications.idl" #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #endif module CF { interface DomainManager : PropertySet, PortSupplier, ComponentIdentifier { typedef sequence <Application> ApplicationSequence; typedef sequence <ApplicationFactory> ApplicationFactorySequence; typedef sequence <DeviceManager> DeviceManagerSequence; readonly attribute DeviceManagerSequence deviceManagers; readonly attribute ApplicationSequence applications; readonly attribute ApplicationFactorySequence applicationFactories; readonly attribute FileManager fileMgr; readonly attribute string domainManagerProfile; boolean portExists ( in string portName ); }; }; #endif Rename Annex C.1 File Services to Annex C.1 CF File Services Rename Annex C.1.1 DS File Interface to CF File Interface Replace IDL Text in Annex C.1.1 CF File Interface with the following text: //Source file: CFFile.idl #ifndef __CFFILE_DEFINED #define __CFFILE_DEFINED #include "CFCommonTypes.idl" #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #endif module CF { exception FileException { ErrorNumberType errorNumber; string msg; }; interface File { exception IOException { ErrorNumberType errorNumber; string msg; }; exception InvalidFilePointer { }; readonly attribute string fileName; readonly attribute unsigned long filePointer; void read ( out OctetSequence data, in unsigned long length ) raises (IOException); void write ( in OctetSequence data ) raises (IOException); unsigned long sizeOf () raises (FileException); void close () raises (FileException); void setFilePointer ( in unsigned long filePointer ) raises (InvalidFilePointer,FileException); }; }; #endif Replace IDL Text in Annex C.1.2 FileSystem with the following text: //Source file: CFFileSystem.idl #ifndef __CFFILESYSTEM_DEFINED #define __CFFILESYSTEM_DEFINED #include "CFFile.idl" #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #endif module CF { interface FileSystem { exception UnknownFileSystemProperties { Properties invalidProperties; }; const string SIZE = "SIZE"; const string AVAILABLE_SIZE = "AVAILABLE_SPACE"; enum FileType { PLAIN, DIRECTORY, FILE_SYSTEM }; struct FileInformationType { string name; FileType kind; unsigned long long size; Properties fileProperties; }; typedef sequence <FileInformationType> FileInformationSequence; const string CREATED_TIME_ID = "CREATED_TIME"; const string MODIFIED_TIME_ID = "MODIFIED_TIME"; const string LAST_ACCESS_TIME_ID = "LAST_ACCESS_TIME"; void remove ( in string fileName ) raises (FileException,InvalidFileName); void copy ( in string sourceFileName, in string destinationFileName ) raises (InvalidFileName,FileException); boolean exists ( in string fileName ) raises (InvalidFileName); FileInformationSequence list ( in string pattern ) raises (FileException,InvalidFileName); File create ( in string fileName ) raises (InvalidFileName,FileException); File open ( in string fileName, in boolean read_Only ) raises (InvalidFileName,FileException); void mkdir ( in string directoryName ) raises (InvalidFileName,FileException); void rmdir ( in string directoryName ) raises (InvalidFileName,FileException); void query ( inout Properties fileSystemProperties ) raises (UnknownFileSystemProperties); }; }; #endif Replace IDL Text in Annex C.1.3 FileManager with the following text //Source file: CFFileManager.idl #ifndef __CFFILEMANAGER_DEFINED #define __CFFILEMANAGER_DEFINED #include "CFFileSystem.idl" #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #endif module CF { interface FileManager : FileSystem { struct MountType { FileSystem fs; string mountPoint; }; typedef sequence <MountType> MountSequence; exception NonExistentMount { }; exception InvalidFileSystem { }; exception MountPointAlreadyExists { }; void mount ( in string mountPoint, in FileSystem file_System ) raises (InvalidFileName,InvalidFileSystem,MountPointAlreadyExists); void unmount ( in string mountPoint ) raises (NonExistentMount); MountSequence getMounts (); }; }; #endif Update Table 10-14 Core Framework CORBA Module Overview · Replace DsFile.idl with CFFile.idl · Replace DsFileSystem.idl with CFFileSystem.idl · Replace DsFileManager.idl with CFFileManager.idl · Replace DsFileServices in Annex C with CF File Services in Annex C Rose Files Rose Cat files were updated. The File Services package was moved from PIM Facilities To UML profile for SWRadio in the Radio Services package. Update DeviceManager IDL in A.5.2 · Replace "#include "DsFileSystem.idl"" with "#include "CFFileSystem.idl" " · Replace fileSys attribute with "readonly attribute FileSystem fileSys;" Actions taken: July 13, 2004: received issue August 2, 2005: closed issue Discussion: End of Annotations:===== ssue 4: Circular Dependency between CF and File Services IDL Name space. This got introduced from the errata. Proposed Solution: file Service becomes part of the CF name space.