[saga-core-wg] Grid RPC data management & SAGA

Andre Merzky andre at merzky.net
Tue Sep 22 23:33:17 CDT 2009


Quoting [Ga?l Le Mahec] (Sep 23 2009):
> 
> Yes, it is a good idea. We can also maybe add a type for the containers.
> 
> So we would have classes like that:

Some suggested changes below:
> 
> package saga.rpc
> {
> 	...
> 	enum parameter_type
> 	{
> 		Buffer		=	0,
> 		Handle		=	1,
> 		Container	=	2
> 	}
> 
> 	class parameter : extends saga::object
> 	{
> 		/*  private constructor. For SIDL definition, just do not 
> 		define it.
> 		 *  For the implementation it should look like that:
> 		 *  CONSTRUCTOR(in parameter_type type,
> 		 *				     out parameter obj);
> 		 */
> 
> 		get_type(out parameter_type type);
> 	}
> 
> 	class buffer_parameter : extends parameter

This one should then also inherit saga::buffer I guess.


> 	{
> 		/*   We use the same constructor that the previous  
> saga::rpc::parameter
> 		 *   In the implementation it calls the constructor of the 
> 		 inherited  class:
> 		 *    	  parameter(Buffer)
> 		 */
> 		CONSTRUCTOR (in array<byte> data = "",
> 						  in int size = 0,
> 						  in io_mode mode = In,
> 						  out parameter obj);
> 		...
> 	}
> 
> 	class handle_parameter : extends parameter
> 	{
> 		/* In the implementation the constructor calls 
> 		parameter(Handle) */
> 		CONSTRUCTOR(in array<int> dim_sizes,
> 						 in array<uri> input_uris,
> 						 in array<uri> output_uris,
> 						 in data_type type,
> 						 in array<data_mode> 
> 						 data_modes
> 						 out parameter obj);
> 		...
> 	}
> 
> 	...

What would a container_parameter look like?  I am not sure I
understood that one, yet.


> }
> 
> With these definitions, we have an uniform way to call a service  
> regardless to the data type (buffer, handle or container). Moreover,  
> the containers can also manage these different types.
> 
> >Well, that would make the class concrete (i.e. not
> >abstract), but so what?  One could leave the constructor
> >private, so that the user cannot accidentically create the
> >base class itself...
> >
> >Just thinking out loud here...
> 
> Indeed, I think this is a good way to prevent such a problem.
> 
> Gaël.

Nice, looks like things are converging :-))

Best, Andre.



-- 
Nothing is ever easy.


More information about the saga-core-wg mailing list