Archived

This forum has been archived. Please start a new discussion on GitHub.

Compiler problems with #include

Hello,

I have created an ICE structure in a module which I would like to use for an input and output parameter in an interface. The 'ice2java' compiler told me that the the specific struct does not exist -> 'PositionTime' is not defined

Her is my code:

1. The File with the structure: 'PositionTime.ice'
#ifndef POSITION_TIME_ICE
#define POSITION_TIME_ICE

/// 1. Module: calculators
module calculators {

	module generated {
	
		/// 1.1 Struct: PositionTime
		struct PositionTime {
		
			/// pointOfTime
			long pointOfTime;
		};
	};
};

#endif

2. Second code which uses the structure 'PositionTime'
\\File 2: Plain.ice
#ifndef PLAIN_ICE
#define PLAIN_ICE

#include <PositionTime.ice>

/// 2. File: Plain.ice

module plainPackage {

	module modelPackage {
	
		module generated {
	
			/// 1.1 Struct: AbsolutePlainPosition 
			struct AbsolutePlainPosition {
				
				/// absoluteDistance
				double absoluteDistance;
				/// latitude
				double latitude;
				/// longitude
				double longitude;		
			};
			
			interface Plain {
					
				idempotent PositionTime getStartTime();
				
				idempotent PositionTime getEndTime();
								
				idempotent AbsolutePlainPosition getCurrentPlainPosition(PositionTime positionTimeValue);
			};
		};
	};
};
#endif


3. The failure message:

Buildfile: D:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\build.xml
slice2java:
[slice2java] slice2java --output-dir D:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\generatedTargets -IC:\Programme\Ice-3.3.0\bin -ID:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\modules\target D:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\modules\target\Target.ice
[exec] D:/Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:50: `PositionTime' is not defined
[exec] D:/Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:52: `PositionTime' is not defined
[exec] D:/Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:60: `PositionTime' is not defined

BUILD FAILED
D:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\build.xml:21: exec returned: 1

Total time: 312 milliseconds

These files are in the same directory. Finally when the names of the modules in the 'PositionTime.ice' file are the same as the modules in the file 'Plain.ice" file everythink works fine. But I would like to put the structure in a separate module, because it will be used from several classes.

Thanks,

Maverik888

Comments

  • marc
    marc Florida
    Since PositionTime is defined in a different module, you must use its fully qualified name, e.g.:
    idempotent ::calculators::generated::PositionTime getStartTime();
    
  • Thank you for that hint.

    Now my airplanes can speak over the network ;)

    Tomorrow, I will create some sensor objects and I hope i can establish my first registry

    Thanks,

    Maverik888