summaryrefslogtreecommitdiff
path: root/qpid/dotnet/client-010/management/console/QMFObject.cs
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/dotnet/client-010/management/console/QMFObject.cs')
-rw-r--r--qpid/dotnet/client-010/management/console/QMFObject.cs294
1 files changed, 0 insertions, 294 deletions
diff --git a/qpid/dotnet/client-010/management/console/QMFObject.cs b/qpid/dotnet/client-010/management/console/QMFObject.cs
deleted file mode 100644
index 905422efd9..0000000000
--- a/qpid/dotnet/client-010/management/console/QMFObject.cs
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-using System;
-using System.Collections.Generic ;
-using log4net ;
-using org.apache.qpid.transport.codec ;
-
-namespace org.apache.qpid.console
-{
-
- /**
- * An object which is returned from an agent by the Session. It can have
- * methods, properties, and statistics.
- */
- public class QMFObject
- {
-
- public static ILog log = LogManager.GetLogger(typeof(QMFObject)) ;
-
- public Session Session {get;set;}
- protected SchemaClass _Schema ;
- virtual public SchemaClass Schema {get {return _Schema;} set {_Schema=value;}}
- bool Managed ;
- public DateTime CurrentTime {get;set;}
- public DateTime CreateTime {get;set;}
- public DateTime DeleteTime {get;set;}
- public ObjectID ObjectID {get;set;}
- public Dictionary<string, object> Properties = new Dictionary<string, object>() ;
- public Dictionary<string, object> Statistics = new Dictionary<string, object>() ;
-
-
- // This constructor is the "naked" constructor which creates
- // an object without a session or a schema. It is used by
- // subclasses which are auto generated
- public QMFObject() {
- }
-
- public QMFObject(QMFObject source) {
- this.Session = source.Session ;
- this.Schema = source.Schema ;
- this.Managed = source.Managed ;
- this.CurrentTime = source.CurrentTime ;
- this.CreateTime = source.CreateTime ;
- this.DeleteTime = source.DeleteTime ;
- this.ObjectID = source.ObjectID ;
- this.Properties = source.Properties ;
- this.Statistics = source.Statistics ;
- }
-
- // This constructor is used by a session make object call to
- // create a blank object from a schema.
- public QMFObject(Session session, SchemaClass schema, bool hasProperties, bool hasStats , bool isManaged) {
- Session = session ;
- Schema = schema ;
- Managed = isManaged ;
-
- if (hasProperties) {
- foreach (SchemaProperty prop in Schema.GetAllProperties()) {
- object propValue = null ;
- if (!prop.Optional) {
- propValue = Util.DefaultValue(prop.Type) ;
- }
- this.SetProperty(prop.Name, propValue) ;
- }
- }
-
- if (hasStats) {
- foreach (SchemaStatistic stat in Schema.Statistics) {
- SetStatistic(stat.Name, Util.DefaultValue(stat.Type)) ;
- }
- }
- }
-
- // This constructor is used by the session to create an object based on a data
- // stream by the agent.
- public QMFObject(Session session, SchemaClass schema, IDecoder dec, bool hasProperties, bool hasStats , bool isManaged)
- {
- Session = session ;
- Schema = schema ;
- Managed = isManaged ;
-
- if (Managed) {
- // FIXME DateTime or Uint64??
- CurrentTime = new DateTime(dec.ReadDatetime()) ;
- CreateTime = new DateTime(dec.ReadDatetime()) ;
- DeleteTime = new DateTime(dec.ReadDatetime()) ;
- ObjectID = new ObjectID(dec) ;
- }
-
- if (hasProperties) {
- List<string> excluded = ProcessPresenceMasks(dec, Schema) ;
-
- foreach (SchemaProperty prop in Schema.GetAllProperties()) {
- if (excluded.Contains(prop.Name)) {
- log.Debug(String.Format("Setting Property Default {0}", prop.Name)) ;
- safeAddProperty(prop.Name, null) ;
- } else {
- //log.Debug(String.Format("Setting Property {0}", prop.Name)) ;
- safeAddProperty(prop.Name, session.DecodeValue(dec, prop.Type)) ;
- }
- }
- }
-
- if (hasStats) {
- foreach (SchemaStatistic stat in Schema.GetAllStatistics()) {
- //log.Debug(String.Format("Setting Statistic {0}", stat.Name)) ;
- Statistics.Add(stat.Name, session.DecodeValue(dec, stat.Type)) ;
- }
- }
-
- }
-
- protected List<string> ProcessPresenceMasks(IDecoder dec, SchemaClass schema) {
- List<string> excludes = new List<string> () ;
- short bit = 0 ;
- short mask = 0 ;
- foreach (SchemaProperty prop in Schema.GetAllProperties()) {
- if (prop.Optional) {
- //log.Debug(String.Format("Property named {0} is optional", prop.Name)) ;
- if (bit == 0) {
- mask=dec.ReadUint8() ;
- bit = 1 ;
- }
-
- if ((mask & bit) == 0) {
- //log.Debug(String.Format("Property named {0} is not present", prop.Name)) ;
- excludes.Add(prop.Name) ;
- }
- bit *= 2 ;
- if (bit == 256) {
- bit = 0 ;
- }
- }
- }
- return excludes ;
- }
-
- protected List<SchemaMethod> getMethods() {
- return Schema.GetAllMethods() ;
- }
-
- public object GetProperty(string attributeName) {
- //FIXME any object refs?
- object returnValue = null ;
- Properties.TryGetValue(attributeName, out returnValue) ;
- return returnValue ;
- }
-
- protected void SetStatistic(string attributeName, object newValue) {
- Statistics.Remove(attributeName) ;
- Statistics.Add(attributeName, newValue) ;
- }
-
- public void SetProperty(string attributeName, object newValue) {
- Properties.Remove(attributeName) ;
- Properties.Add(attributeName, newValue) ;
- }
-
- public bool IsDeleted() {
- return !DeleteTime.Equals(new DateTime(0)) ;
- }
-
- public string RoutingKey() {
- return ObjectID.RoutingCode() ;
- }
-
- public long AgentBank() {
- return ObjectID.AgentBank() ;
- }
-
- public long BrokerBank() {
- return ObjectID.BrokerBank() ;
- }
-
- override public string ToString() {
- string propertyString = "" ;
- foreach (KeyValuePair<string, object> pair in Properties) {
- propertyString = propertyString + String.Format("(Name: '{0}' Value: '{1}')", pair.Key, pair.Value) ;
- }
-
- string statsString = "" ;
- foreach (KeyValuePair<string, object> sPair in Statistics) {
- statsString = statsString + String.Format("(Name: '{0}' Value: '{1}')", sPair.Key, sPair.Value) ;
- }
- if (Managed) {
- return String.Format("Managed QMFObject {0}:{1}({2}) Properties: [{3}] Statistics: [{4}])", Schema.PackageName, Schema.ClassName, ObjectID, propertyString, statsString) ;
- } else {
- return String.Format("QMFObject {0}:{1} Properties: [{2}] Statistics: [{3}]", Schema.PackageName, Schema.ClassName, propertyString, statsString) ;
- }
- }
-
- public MethodResult InvokeMethod(string name, params object[] args) {
- return this.InternalInvokeMethod(name, new List<object>(args), true, Broker.SYNC_TIME ) ;
- }
-
- public MethodResult InvokeMethod(string name, int timeToLive, params object[] args) {
- return this.InternalInvokeMethod(name, new List<object>(args), true, timeToLive) ;
- }
-
- public MethodResult InvokeMethod(string name, bool synchronous, int timeToLive, params object[] args) {
- return this.InternalInvokeMethod(name, new List<object>(args), synchronous, timeToLive ) ;
- }
-
- public MethodResult InvokeMethod(string name, bool synchronous, params object[] args) {
- return this.InternalInvokeMethod(name, new List<object>(args), synchronous, Broker.SYNC_TIME) ;
- }
-
- protected MethodResult InternalInvokeMethod(string name, List<object> args, bool synchronous, int timeToLive) {
- if (!Managed) {
- throw new Exception ("Object is not Managed") ;
- }
- if (Schema.GetMethod(name) == null) {
- throw new Exception (String.Format("Method named '{0}' does not exist", name)) ;
- }
- return Session.InvokeMethod(this, name, args, synchronous, timeToLive) ;
- }
-
- public void Encode (IEncoder enc) {
- int mask = 0 ;
- int bit = 0 ;
- List<SchemaProperty> propsToEncode = new List<SchemaProperty>() ;
- log.Debug(String.Format("Encoding class {0}:{1}", Schema.PackageName, Schema.ClassName)) ;
-
- enc.WriteUint8(20) ;
- Schema.Key.encode(enc) ;
-
- foreach (SchemaProperty prop in Schema.GetAllProperties()) {
- if (prop.Optional) {
- if (bit == 0) {
- bit =1 ;
- }
- if ((Properties.ContainsKey(prop.Name)) && (Properties[prop.Name] != null)) {
- mask |= bit ;
- propsToEncode.Add(prop) ;
- } else {
- }
- bit = bit << 1 ;
- if (bit == 256) {
- bit = 0 ;
- enc.WriteUint8((short)mask) ;
- mask = 0 ;
- }
- } else {
- propsToEncode.Add(prop) ;
- }
- }
- if (bit != 0) {
- enc.WriteUint8((short)mask) ;
- }
-
- foreach (SchemaProperty prop in propsToEncode) {
- object obj = Properties[prop.Name] ;
- //log.Debug(String.Format("Encoding property {0}", prop.Name)) ;
- Session.EncodeValue(enc, prop.Type, obj) ;
- }
- foreach (SchemaStatistic stat in Schema.Statistics) {
- object obj = Statistics[stat.Name] ;
- Session.EncodeValue(enc, stat.Type, obj) ;
- }
- log.Debug("Done") ;
-
- }
-
-
- protected void safeAddProperty(string propName, object value) {
- if (Properties.ContainsKey(propName)) {
- Properties[propName] = value ;
- } else {
- Properties.Add(propName, value) ;
- }
- }
-
-
- }
-}