Package pyamf :: Package flex :: Module data
[hide private]
[frames] | no frames]

Source Code for Module pyamf.flex.data

  1  # Copyright (c) 2007-2009 The PyAMF Project. 
  2  # See LICENSE.txt for details. 
  3   
  4  """ 
  5  Flex Data Management Service implementation. 
  6   
  7  This module contains the message classes used with Flex Data Management 
  8  Service. 
  9   
 10  @since: 0.1.0 
 11  """ 
 12   
 13  import pyamf 
 14  from pyamf.flex.messaging import AsyncMessage, AcknowledgeMessage, ErrorMessage 
 15   
 16  __all__ = [ 
 17      'DataMessage', 
 18      'SequencedMessage', 
 19      'PagedMessage', 
 20      'DataErrorMessage' 
 21  ] 
 22   
 23   
24 -class DataMessage(AsyncMessage):
25 """ 26 I am used to transport an operation that occured on a managed object 27 or collection. 28 29 This class of message is transmitted between clients subscribed to a 30 remote destination as well as between server nodes within a cluster. 31 The payload of this message describes all of the relevant details of 32 the operation. This information is used to replicate updates and detect 33 conflicts. 34 35 @see: U{DataMessage on Livedocs (external) 36 <http://livedocs.adobe.com/flex/201/langref/mx/data/messages/DataMessage.html>} 37 """ 38
39 - def __init__(self):
40 AsyncMessage.__init__(self) 41 #: Provides access to the identity map which defines the 42 #: unique identity of the item affected by this DataMessage 43 #: (relevant for create/update/delete but not fill operations). 44 self.identity = None 45 #: Provides access to the operation/command of this DataMessage. 46 #: 47 #: Operations indicate how the remote destination should process 48 #: this message. 49 self.operation = None
50 51
52 -class SequencedMessage(AcknowledgeMessage):
53 """ 54 Response to L{DataMessage} requests. 55 56 @see: U{SequencedMessage on Livedocs (external) 57 <http://livedocs.adobe.com/flex/201/langref/mx/data/messages/SequencedMessage.html>} 58 """ 59
60 - def __init__(self):
61 AcknowledgeMessage.__init__(self) 62 #: Provides access to the sequence id for this message. 63 #: 64 #: The sequence id is a unique identifier for a sequence 65 #: within a remote destination. This value is only unique for 66 #: the endpoint and destination contacted. 67 self.sequenceId = None 68 #: 69 self.sequenceProxies = None 70 #: Provides access to the sequence size for this message. 71 #: 72 #: The sequence size indicates how many items reside in the 73 #: remote sequence. 74 self.sequenceSize = None 75 #: 76 self.dataMessage = None
77 78
79 -class PagedMessage(SequencedMessage):
80 """ 81 This messsage provides information about a partial sequence result. 82 83 @see: U{PagedMessage on Livedocs (external) 84 <http://livedocs.adobe.com/flex/201/langref/mx/data/messages/PagedMessage.html>} 85 """ 86
87 - def __init__(self):
88 SequencedMessage.__init__(self) 89 #: Provides access to the number of total pages in a sequence 90 #: based on the current page size. 91 self.pageCount = None 92 #: Provides access to the index of the current page in a sequence. 93 self.pageIndex = None
94 95
96 -class DataErrorMessage(ErrorMessage):
97 """ 98 Special cases of ErrorMessage will be sent when a data conflict 99 occurs. 100 101 This message provides the conflict information in addition to 102 the L{ErrorMessage<pyamf.flex.messaging.ErrorMessage>} information. 103 104 @see: U{DataErrorMessage on Livedocs (external) 105 <http://livedocs.adobe.com/flex/201/langref/mx/data/messages/DataErrorMessage.html>} 106 """ 107
108 - def __init__(self):
109 ErrorMessage.__init__(self) 110 #: The client oringinated message which caused the conflict. 111 self.cause = None 112 #: An array of properties that were found to be conflicting 113 #: between the client and server objects. 114 self.propertyNames = None 115 #: The value that the server had for the object with the 116 #: conflicting properties. 117 self.serverObject = None
118 119 #: Namespace for C{flex.data} messages. 120 MESSAGES_NS = 'flex.data.messages' 121 122 pyamf.register_package(globals(), MESSAGES_NS) 123