File: CosLicensingManager.idl

package info (click to toggle)
omniorb-dfsg 4.3.3%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,172 kB
  • sloc: cpp: 115,843; python: 24,962; ansic: 13,414; sh: 2,665; makefile: 40
file content (94 lines) | stat: -rw-r--r-- 2,505 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//File: CosLicensingManager.idl
//The only module of the Licensing Service

#ifndef _COS_LICENSING_MANAGER_IDL_
#define _COS_LICENSING_MANAGER_IDL_

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

#include <CosEventComm.idl>
#include <CosPropertyService.idl>
#include <CosEventComm.idl>

#pragma prefix "omg.org"

module CosLicensingManager {
	exception InvalidProducer{}; 
	exception InvalidParameter{};
	exception ComponentNotRegistered{};

	typedef Object ProducerSpecificNotification;

	enum ActionRequired { continue, terminate}; 

	enum Answer { yes, no };

	struct Action_t {
		ActionRequired action ;		
		Answer notification_required ;
		Answer wait_for_user_confirmation_after_notification ;
		unsigned long notification_duration;	
		ProducerSpecificNotification producer_notification; 
		string notification_text; 
	};

	struct ChallengeData {
		unsigned long challenge_index; 
		unsigned long random_number; 
		string digest; 
	};


	enum ChallengeProtocol { default_protocol, producer_defined };	
	struct Challenge {
		ChallengeProtocol challenge_protocol;
		unsigned long challenge_data_size;
		any challenge_data; 
	};

	typedef any LicenseHandle;
	
	interface ProducerSpecificLicenseService {

	readonly attribute   string producer_contact_info;
	readonly attribute   string producer_specific_license_service_info;

	LicenseHandle start_use ( 
// XXX		in CORBA::Principal aPrincipal,
		in string component_name, 
		in string component_version,
		in CosPropertyService::PropertySet license_use_context,
		in CosEventComm::PushConsumer call_back, 
		inout CosLicensingManager::Challenge Challenge)

		raises ( InvalidParameter, ComponentNotRegistered);

  		void check_use (
			in LicenseHandle handle, 
			in CosPropertyService::PropertySet license_use_context,
			out unsigned long recommended_check_interval,
			out Action_t action_to_be_taken, 
			inout CosLicensingManager::Challenge Challenge)

			raises ( InvalidParameter );

		void end_use (
			in LicenseHandle handle, 
			in CosPropertyService::PropertySet license_use_context,
			inout CosLicensingManager::Challenge Challenge)

			raises ( InvalidParameter );
	};

	interface LicenseServiceManager {
		ProducerSpecificLicenseService
		obtain_producer_specific_license_service (
			in string producer_name, 
			inout CosLicensingManager::Challenge Challenge)

			raises ( InvalidProducer, InvalidParameter ) ; 
	};
};

#endif /* ifndef _COS_LICENSING_MANAGER_IDL_ */