//File: CosPersistencePDS_DA.idl
//Part of the Persistence Service

#ifndef _COS_PERSISTENCE_PDS_DA_IDL_
#define _COS_PERSISTENCE_PDS_DA_IDL_

// omniORB specific pragmas to insert extra includes into the stub header.
#pragma hh #include "COS_sysdep.h"

#include <CosPersistencePDS.idl>

#pragma prefix "omg.org"

module CosPersistencePDS_DA {

	typedef string DAObjectID;

	interface PID_DA : CosPersistencePID::PID {
		attribute DAObjectID oid;
	};
	
	interface DAObject {
		boolean dado_same(in DAObject d);
		DAObjectID dado_oid();
		PID_DA dado_pid();
		void dado_remove();
		void dado_free();
	};

	interface DAObjectFactory {
		DAObject create();
	};

	interface DAObjectFactoryFinder {
		DAObjectFactory find_factory(in string key);
	};

	interface PDS_DA : CosPersistencePDS::PDS {
		DAObject get_data();
		void set_data(in DAObject new_data);
		DAObject lookup(in DAObjectID id);
		PID_DA get_pid();
		PID_DA get_object_pid(in DAObject dao);
		DAObjectFactoryFinder data_factories();
	};

};
#endif /* ifndef _COS_PERSISTENCE_PDS_DA_IDL_ */
