Exemplo n.º 1
0
 public static ObjectType Deserialise(Stream stream)
 {
     ObjectType result = new ObjectType();
     result.Path = IPCHelper.ReadString(stream);
     result.ObjectTypeID = IPCHelper.ReadInt32(stream);
     int count = IPCHelper.ReadInt32(stream);
     if (count > 0)
     {
         for (int index = 0; index < count; index++)
         {
             int item = IPCHelper.ReadInt32(stream);
             result.Instances.Add(item);
         }
     }
     return result;
 }
Exemplo n.º 2
0
        public void CancelObserve(ObjectType objectType, string instanceID, string resourceID, bool useReset)
        {
            if (_ObserveRequests != null)
            {
                string uriPath;
                if (string.IsNullOrEmpty(instanceID))
                    uriPath = objectType.Path;
                else if (string.IsNullOrEmpty(resourceID))
                    uriPath = string.Concat(objectType.Path, "/", instanceID);
                else
                    uriPath = string.Concat(objectType.Path, "/", instanceID, "/", resourceID);
                int index = 0;
                while (index < _ObserveRequests.Count)
                {
                    if (_ObserveRequests[index].Request.UriPath == uriPath)
                    {
                        Request observeRequest = _ObserveRequests[index].Request;
                        _ObserveRequests.RemoveAt(index);
                        if (observeRequest != null)
                        {
                            if (useReset)
                            {
                                observeRequest.IsCancelled = true;
                            }
                            else
                            {
                                Request request = new Request(Method.GET);
                                request.Accept = _DataFormat;
                                request.Destination = observeRequest.Destination;
                                request.EndPoint = observeRequest.EndPoint;
                                request.UriPath = observeRequest.UriPath;
                                request.MarkObserveCancel();
                                SendRequest(request);
                                observeRequest.IsCancelled = true;
                            }
                        }

                    }
                    else
                        index++;
                }
            }
        }
Exemplo n.º 3
0
 private void SetupRequest(Request request, ObjectType objectType, string instanceID, string resourceID)
 {
     request.Destination = this.Address;
     request.EndPoint = this.EndPoint;
     if (string.IsNullOrEmpty(instanceID))
         request.UriPath = objectType.Path;
     else if (string.IsNullOrEmpty(resourceID))
         request.UriPath = string.Concat(objectType.Path, "/", instanceID);
     else
         request.UriPath = string.Concat(objectType.Path, "/", instanceID, "/", resourceID);
 }
Exemplo n.º 4
0
 public void Observe( ObjectDefinition objectDefinition, ObjectType objectType, string instanceID, PropertyDefinition propertyDefinition)
 {
     Request request;
     if (propertyDefinition == null)
         request = NewGetRequest(objectType, instanceID, null);
     else
         request = NewGetRequest(objectType, instanceID, propertyDefinition.PropertyID);
     request.MarkObserve();
     if (_ObserveRequests == null)
         _ObserveRequests = new List<ObserveRequest>();
     bool found = false;
     for (int index = 0; index < _ObserveRequests.Count; index++)
     {
         if (_ObserveRequests[index].Request.UriPath == request.UriPath)
         {
             found = true;
             break;
         }
     }
     if (!found)
     {
         _ObserveRequests.Add(new ObserveRequest() { Request = request, ObjectDefinition = objectDefinition, PropertyDefinition = propertyDefinition });
         request.Respond += new EventHandler<ResponseEventArgs>(ObserveResponse);
         SendRequest(request);
     }
 }
Exemplo n.º 5
0
 public Request NewPutRequest(ObjectType objectType, string instanceID, string resourceID, int contentType, byte[] data)
 {
     Request result = new Request(Method.PUT);
     //if (contentType == MediaType.TextPlain)
     //    contentType = TlvConstant.CONTENT_TYPE_PLAIN;
     SetupRequest(result, objectType, instanceID, resourceID);
     result.Payload = data;
     if (contentType != -1)
         result.ContentType = contentType;
     return result;
 }
Exemplo n.º 6
0
 public Request NewPostRequest(ObjectType objectType, string instanceID, string resourceID, int contentType, byte[] data)
 {
     Request result = new Request(Method.POST);
     SetupRequest(result, objectType, instanceID, resourceID);
     result.Payload = data;
     if (contentType != -1)
         result.ContentType = contentType;
     return result;
 }
Exemplo n.º 7
0
 public Request NewPostRequest(ObjectType objectType, string instanceID, int contentType, byte[] data)
 {
     return NewPostRequest(objectType, instanceID, null, contentType, data);
 }
Exemplo n.º 8
0
 public Request NewGetRequest(ObjectType objectType, string instanceID, string resourceID)
 {
     Request result = new Request(Method.GET);
     //result.Accept = TlvConstant.CONTENT_TYPE_TLV;
     result.Accept = _DataFormat;
     //if (_DataFormat == MediaType.TextPlain)
     //    result.Accept = TlvConstant.CONTENT_TYPE_PLAIN;
     SetupRequest(result, objectType, instanceID, resourceID);
     return result;
 }
Exemplo n.º 9
0
 public Request NewGetRequest(ObjectType objectType, string instanceID)
 {
     Request result = new Request(Method.GET);
     //result.Accept = TlvConstant.CONTENT_TYPE_TLV;
     result.Accept = _DataFormat;
     SetupRequest(result, objectType, instanceID, null);
     return result;
 }
Exemplo n.º 10
0
 public Request NewDeleteRequest(ObjectType objectType, string instanceID, string resourceID)
 {
     Request result = new Request(Method.DELETE);
     SetupRequest(result, objectType, instanceID, resourceID);
     return result;
 }
Exemplo n.º 11
0
 public Request NewDeleteRequest(ObjectType objectType, string instanceID)
 {
     return NewDeleteRequest(objectType, instanceID, null);
 }
Exemplo n.º 12
0
 private Client LoadClientFromDoc(BsonDocument doc)
 {
     Client result = null;
     if (doc != null)
     {
         result = new Client();
         result.ClientID = BsonHelper.GetGuid(doc, "_id");
         result.Name = BsonHelper.GetString(doc, "Name");
         result.OrganisationID = BsonHelper.GetInt32(doc, "OrganisationID");
         result.Lifetime = BsonHelper.GetDateTime(doc, "Lifetime");
         string versionText = BsonHelper.GetString(doc, "Version");
         Version version;
         if (Version.TryParse(versionText, out version))
             result.Version = version;
         result.BindingMode = (TBindingMode)BsonHelper.GetInt32(doc, "BindingMode");
         result.SMSNumber = BsonHelper.GetString(doc, "SMSNumber");
         result.Server = BsonHelper.GetString(doc, "Server");
         result.LastActivityTime = BsonHelper.GetDateTime(doc, "LastActivityTime");
         result.LastUpdateActivityTime = result.LastActivityTime;
         if (doc.Contains("SupportedTypes"))
         {
             BsonArray array = doc["SupportedTypes"].AsBsonArray;
             foreach (BsonValue arrayItem in array)
             {
                 BsonDocument supportedTypeDoc = arrayItem.AsBsonDocument;
                 if (supportedTypeDoc != null)
                 {
                     ObjectType supportedType = new ObjectType();
                     supportedType.ObjectTypeID = BsonHelper.GetInt32(supportedTypeDoc, "_id");
                     supportedType.Path = BsonHelper.GetString(supportedTypeDoc, "Path");
                     if (supportedTypeDoc.Contains("Instances"))
                     {
                         BsonArray instances = supportedTypeDoc["Instances"].AsBsonArray;
                         foreach (BsonValue instance in instances)
                         {
                             supportedType.Instances.Add(instance.AsInt32);
                         }
                     }
                     if (result.SupportedTypes == null)
                         result.SupportedTypes = new ObjectTypes();
                     result.SupportedTypes.AddObjectType(supportedType);
                 }
             }
         }
     }
     return result;
 }
Exemplo n.º 13
0
 internal static int Compare(ObjectType x, ObjectType y)
 {
     int result = x.ObjectTypeID.CompareTo(y.ObjectTypeID);
     if (result == 0)
     {
         result = x.Instances.Count.CompareTo(y.Instances.Count);
         if (result == 0)
         {
             foreach (int xItem in x.Instances)
             {
                 bool found = false;
                 foreach (int yItem in y.Instances)
                 {
                     if (xItem == yItem)
                     {
                         found = true;
                         break;
                     }
                 }
                 if (!found)
                 {
                     result = 1;
                     break;
                 }
             }
         }
     }
     return result;
 }