1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  *
26  *ident	"%Z%%M%	%I%	%E% SMI"
27  *
28  */
29 
30 package com.sun.solaris.domain.pools;
31 
32 import java.util.*;
33 import java.util.logging.*;
34 
35 import com.sun.solaris.service.logging.Severity;
36 import com.sun.solaris.service.pools.*;
37 
38 /**
39  * The <code>LogDRM</code> class implements the Distributed Resource
40  * Management (DRM) protocol as a logger.
41  *
42  * All actions are logged using the logging facilities offered by
43  * <code>Poold</code>.
44  */
45 class LogDRM implements DRM
46 {
47 	/**
48 	 * Supported protocol version.
49 	 */
50 	private final int version = 1;
51 
52 	/**
53 	 * Location of higher level resource manager.
54 	 */
55 	private String url;
56 
57 	/**
58 	 * Connect to a higher level partitioning agent.
59 	 *
60 	 * @param requested The requested version of the protocol.
61 	 * @param url The location of the agent.
62 	 * @throws Exception If the connect fails.
63 	 */
connect(int requested, String url)64 	public void connect(int requested, String url) throws Exception
65 	{
66 		if (requested > version) {
67 			Poold.CONF_LOG.log(Severity.NOTICE,
68 			    "Requested protocol version (" + requested +
69 			    ") not supported");
70 			return;
71 		}
72 		this.url = url;
73 		Poold.CONF_LOG.log(Severity.INFO, "DRM protocol version:" +
74 		    version + ", server: " + url);
75 	}
76 
77 
78 	/**
79 	 * Disconnect from a higher level partitioning agent.
80 	 *
81 	 * @throws Exception If the client is not connected.
82 	 */
disconnect()83 	public void disconnect() throws Exception
84 	{
85 		Poold.CONF_LOG.log(Severity.INFO, "Disconnected from " + url);
86 	}
87 
88 
89 	/**
90 	 * Request resources via a higher level partitioning agent.
91 	 *
92 	 * TODO: Define request parameters.
93 	 *
94 	 * @throws Exception If the request fails.
95 	 */
request()96 	public void request() throws Exception
97 	{
98 		Poold.MON_LOG.log(Severity.INFO, "Requesting additional " +
99 		    "resources ");
100 	}
101 
102 
103 	/**
104 	 * Offer resources via a higher level partitioning agent.
105 	 *
106 	 * TODO: Define offer parameters.
107 	 *
108 	 * @throws Exception If the offer fails.
109 	 */
offer()110 	public void offer() throws Exception
111 	{
112 		Poold.MON_LOG.log(Severity.INFO, "Requesting additional " +
113 		    "resources ");
114 	}
115 
116 	/**
117 	 * Canel a previous offer or request.
118 	 *
119 	 * TODO: Define cancel parameters.
120 	 *
121 	 * @throws Exception If the cancel fails.
122 	 */
cancel()123 	public void cancel() throws Exception
124 	{
125 		Poold.MON_LOG.log(Severity.INFO, "Requesting additional " +
126 		    "resources ");
127 	}
128 }
129