module com {
	module interpress_project {
		module modernshare {
			module orb {
				module generated {
					exception AccountNotFound		{ wstring msg; };
					exception AccountExist				{ wstring msg; };
					exception NoPrivilege					{ wstring msg; };					
					exception InternalError				{ wstring msg; };
					exception LicenseError				{ wstring msg; };					

					valuetype MdsClientInfo {
						private wstring account;
						private wstring clientid;
						private wstring xmldata;

						wstring getAccount();
						wstring getClientId();
						wstring getXMLdata();
					};
					
					valuetype MdsServerInfo {
						private wstring svnhost;
						private long svnport;
						private wstring administratorname;
						private wstring administratoremail;
						private string licType;

						wstring getSVNHost();
						long getSVNPort();
						wstring getAdministratorName();
						wstring getAdministratorEmail();
						string getLicType();
					};

					interface MdsService {
						MdsServerInfo getServerInfo();

						MdsClientInfo getClientInfo(in wstring account, in wstring clientid);
						void setClientInfo(in MdsClientInfo info);
												
						void changePassword(in wstring account, in wstring newpassword) raises (AccountNotFound);
						void addUser(in wstring account, in wstring password) raises(AccountExist, NoPrivilege, InternalError, LicenseError);
						void deleteUser(in wstring account) raises(AccountNotFound, NoPrivilege,InternalError);

						string backup()	raises(NoPrivilege, InternalError);
						void recovery()	raises(NoPrivilege, InternalError);
					};
				};
			};
		};
	};
};