5 // Peter Van Isacker (sclytrack@planetinternet.be)
7 // (C) 2003 Peter Van Isacker
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using System
.ComponentModel
;
34 namespace System
.Messaging
36 [TypeConverter (typeof(ExpandableObjectConverter
))]
37 public class MessagePropertyFilter
39 private bool acknowledgeType
= false;
40 private bool acknowledgment
= false;
41 private bool administrationQueue
= false;
42 private bool appSpecific
= false;
43 private bool arrivedTime
= false;
44 private bool attachSenderId
= false;
45 private bool authenticated
= false;
46 private bool authenticationProviderName
= false;
47 private bool authenticationProviderType
= false;
48 private bool body
= false;
49 private bool connectorType
= false;
50 private bool correlationId
= false;
51 private int defaultBodySize
= 1024;
52 private int defaultExtensionSize
= 255;
53 private int defaultLabelSize
= 255;
54 private bool destinationQueue
= false;
55 private bool destinationSymmetricKey
= false;
56 private bool digitalSignature
= false;
57 private bool encryptionAlgorithm
= false;
58 private bool extension
= false;
59 private bool hashAlgorithm
= false;
60 private bool id
= false;
61 private bool isFirstInTransaction
= false;
62 private bool isLastInTransaction
= false;
63 private bool label
= false;
64 private bool messageType
= false;
65 private bool priority
= false;
66 private bool recoverable
= false;
67 private bool responseQueue
= false;
68 private bool senderCertificate
= false;
69 private bool senderId
= false;
70 private bool senderVersion
= false;
71 private bool sentTime
= false;
72 private bool sourceMachine
= false;
73 private bool timeToBeReceived
= false;
74 private bool timeToReachQueue
= false;
75 private bool transactionId
= false;
76 private bool transactionStatusQueue
= false;
77 private bool useAuthentication
= false;
78 private bool useDeadLetterQueue
= false;
79 private bool useEncryption
= false;
80 private bool useJournalQueue
= false;
81 private bool useTracing
= false;
84 public MessagePropertyFilter ()
90 [MessagingDescription ("MsgAcknowledgeType")]
91 public bool AcknowledgeType
93 get { return acknowledgeType; }
94 set { acknowledgeType = value; }
98 [MessagingDescription ("MsgAcknowledgement")]
99 public bool Acknowledgment
101 get { return acknowledgment; }
102 set { acknowledgment = value; }
105 [DefaultValue (true)]
106 [MessagingDescription ("MsgAdministrationQueue")]
107 public bool AdministrationQueue
109 get { return administrationQueue; }
110 set { administrationQueue = value; }
113 [DefaultValue (false)]
114 [MessagingDescription ("MsgAppSpecific")]
115 public bool AppSpecific
117 get { return appSpecific; }
118 set { appSpecific = value; }
121 [DefaultValue (false)]
122 [MessagingDescription ("MsgArrivedTime")]
123 public bool ArrivedTime
125 get { return arrivedTime; }
126 set { arrivedTime = value; }
129 [DefaultValue (false)]
130 [MessagingDescription ("MsgAttachSenderId")]
131 public bool AttachSenderId
133 get { return attachSenderId; }
134 set { attachSenderId = value; }
137 [DefaultValue (false)]
138 [MessagingDescription ("MsgAuthenticated")]
139 public bool Authenticated
141 get { return authenticated; }
142 set { authenticated = value; }
145 [DefaultValue (false)]
146 [MessagingDescription ("MsgAuthenticationProviderName")]
147 public bool AuthenticationProviderName
149 get { return authenticationProviderName; }
150 set { authenticationProviderName = value; }
153 [DefaultValue (false)]
154 [MessagingDescription ("MsgAuthenticationProviderType")]
155 public bool AuthenticationProviderType
157 get { return authenticationProviderType; }
158 set { authenticationProviderType = value; }
161 [DefaultValue (true)]
162 [MessagingDescription ("MsgBody")]
166 set { body = value; }
169 [DefaultValue (false)]
170 [MessagingDescription ("MsgConnectorType")]
171 public bool ConnectorType
173 get { return connectorType; }
174 set { connectorType = value; }
177 [DefaultValue (false)]
178 [MessagingDescription ("MsgCorrelationId")]
179 public bool CorrelationId
181 get { return correlationId; }
182 set { correlationId = value; }
185 [DefaultValue (1024)]
186 [MessagingDescription ("MsgDefaultBodySize")]
187 public int DefaultBodySize
189 get { return defaultBodySize; }
193 throw new ArgumentException ("DefaultBodySize");
194 defaultBodySize
= value;
199 [MessagingDescription ("MsgDefaultExtensionSize")]
200 public int DefaultExtensionSize
202 get { return defaultExtensionSize; }
206 throw new ArgumentException ("DefaultExtensionSize");
207 defaultExtensionSize
= value;
212 [MessagingDescription ("MsgDefaultLabelSize")]
213 public int DefaultLabelSize
215 get { return defaultLabelSize; }
218 if (value < 0) throw new ArgumentException ("DefaultLabelSize");
219 defaultLabelSize
= value;
223 [DefaultValue (false)]
224 [MessagingDescription ("MsgDestinationQueue")]
225 public bool DestinationQueue
227 get { return destinationQueue; }
228 set { destinationQueue = value; }
231 [DefaultValue (false)]
232 [MessagingDescription ("MsgDestinationSymmetricKey")]
233 public bool DestinationSymmetricKey
235 get { return destinationSymmetricKey; }
236 set { destinationSymmetricKey = value; }
239 [DefaultValue (false)]
240 [MessagingDescription ("MsgDigitalSignature")]
241 public bool DigitalSignature
243 get { return digitalSignature; }
244 set { digitalSignature = value; }
247 [DefaultValue (false)]
248 [MessagingDescription ("MsgEncryptionAlgorithm")]
249 public bool EncryptionAlgorithm
251 get { return encryptionAlgorithm; }
252 set { encryptionAlgorithm = value; }
255 [DefaultValue (false)]
256 [MessagingDescription ("MsgExtension")]
257 public bool Extension
259 get { return extension; }
260 set { extension = value; }
263 [DefaultValue (false)]
264 [MessagingDescription ("MsgHashAlgorithm")]
265 public bool HashAlgorithm
267 get { return hashAlgorithm; }
268 set { hashAlgorithm = value; }
271 [DefaultValue (false)]
272 [MessagingDescription ("MsgId")]
279 [DefaultValue (false)]
280 [MessagingDescription ("MsgIsFirstInTransaction")]
281 public bool IsFirstInTransaction
283 get { return isFirstInTransaction; }
284 set { isFirstInTransaction = value; }
287 [DefaultValue (false)]
288 [MessagingDescription ("MsgIsLastInTransaction")]
289 public bool IsLastInTransaction
291 get { return isLastInTransaction; }
292 set { isLastInTransaction = value; }
295 [DefaultValue (true)]
296 [MessagingDescription ("MsgLabel")]
299 get { return label; }
300 set { label = value; }
303 [DefaultValue (true)]
304 [MessagingDescription ("MsgMessageType")]
305 public bool MessageType
307 get { return messageType; }
308 set { messageType = value; }
311 [DefaultValue (false)]
312 [MessagingDescription ("MsgPriority")]
315 get { return priority; }
316 set { priority = value; }
319 [DefaultValue (false)]
320 [MessagingDescription ("MsgRecoverable")]
321 public bool Recoverable
323 get { return recoverable; }
324 set { recoverable = value; }
327 [DefaultValue (true)]
328 [MessagingDescription ("MsgResponseQueue")]
329 public bool ResponseQueue
331 get { return responseQueue; }
332 set { responseQueue = value; }
335 [DefaultValue (false)]
336 [MessagingDescription ("MsgSenderCertificate")]
337 public bool SenderCertificate
339 get { return senderCertificate; }
340 set { senderCertificate = value; }
343 [DefaultValue (false)]
344 [MessagingDescription ("MsgSenderId")]
347 get { return senderId; }
348 set { senderId = value; }
351 [DefaultValue (false)]
352 [MessagingDescription ("MsgSenderVersion")]
353 public bool SenderVersion
355 get { return senderVersion; }
356 set { senderVersion = value; }
359 [DefaultValue (false)]
360 [MessagingDescription ("MsgSentTime")]
363 get { return sentTime; }
364 set { sentTime = value; }
367 [DefaultValue (false)]
368 [MessagingDescription ("MsgSourceMachine")]
369 public bool SourceMachine
371 get { return sourceMachine; }
372 set { sourceMachine = value; }
375 [DefaultValue (false)]
376 [MessagingDescription ("MsgTimeToBeReceived")]
377 public bool TimeToBeReceived
379 get { return timeToBeReceived; }
380 set { timeToBeReceived = value; }
383 [DefaultValue (false)]
384 [MessagingDescription ("MsgTimeToReachQueue")]
385 public bool TimeToReachQueue
387 get { return timeToReachQueue; }
388 set { timeToReachQueue = value; }
391 [DefaultValue (false)]
392 [MessagingDescription ("MsgTransactionId")]
393 public bool TransactionId
395 get { return transactionId; }
396 set { transactionId = value; }
399 [DefaultValue (false)]
400 [MessagingDescription ("MsgTransactionStatusQueue")]
401 public bool TransactionStatusQueue
403 get { return transactionStatusQueue; }
404 set { transactionStatusQueue = value; }
407 [DefaultValue (false)]
408 [MessagingDescription ("MsgUseAuthentication")]
409 public bool UseAuthentication
411 get { return useAuthentication; }
412 set { useAuthentication = value; }
415 [DefaultValue (true)]
416 [MessagingDescription ("MsgUseDeadLetterQueue")]
417 public bool UseDeadLetterQueue
419 get { return useDeadLetterQueue; }
420 set { useDeadLetterQueue = value; }
423 [DefaultValue (false)]
424 [MessagingDescription ("MsgUseEncryption")]
425 public bool UseEncryption
427 get { return useEncryption; }
428 set { useEncryption = value; }
431 [DefaultValue (true)]
432 [MessagingDescription ("MsgUseJournalQueue")]
433 public bool UseJournalQueue
435 get { return useJournalQueue; }
436 set { useJournalQueue = value; }
439 [DefaultValue (false)]
440 [MessagingDescription ("MsgUseTracing")]
441 public bool UseTracing
443 get { return useTracing; }
444 set { useTracing = value; }
447 public void ClearAll ()
449 acknowledgeType
= false;
450 acknowledgment
= false;
451 administrationQueue
= false;
454 attachSenderId
= false;
455 authenticated
= false;
456 authenticationProviderName
= false;
457 authenticationProviderType
= false;
459 connectorType
= false;
460 correlationId
= false;
461 destinationQueue
= false;
462 destinationSymmetricKey
= false;
463 digitalSignature
= false;
464 encryptionAlgorithm
= false;
466 hashAlgorithm
= false;
468 isFirstInTransaction
= false;
469 isLastInTransaction
= false;
474 responseQueue
= false;
475 senderCertificate
= false;
477 senderVersion
= false;
479 sourceMachine
= false;
480 timeToBeReceived
= false;
481 timeToReachQueue
= false;
482 transactionId
= false;
483 transactionStatusQueue
= false;
484 useAuthentication
= false;
485 useDeadLetterQueue
= false;
486 useEncryption
= false;
487 useJournalQueue
= false;
491 public void SetAll ()
493 acknowledgeType
= true;
494 acknowledgment
= true;
495 administrationQueue
= true;
498 attachSenderId
= true;
499 authenticated
= true;
500 authenticationProviderName
= true;
501 authenticationProviderType
= true;
503 connectorType
= true;
504 correlationId
= true;
505 destinationQueue
= true;
506 destinationSymmetricKey
= true;
507 digitalSignature
= true;
508 encryptionAlgorithm
= true;
510 hashAlgorithm
= true;
512 isFirstInTransaction
= true;
513 isLastInTransaction
= true;
518 responseQueue
= true;
519 senderCertificate
= true;
521 senderVersion
= true;
523 sourceMachine
= true;
524 timeToBeReceived
= true;
525 timeToReachQueue
= true;
526 transactionId
= true;
527 transactionStatusQueue
= true;
528 useAuthentication
= true;
529 useDeadLetterQueue
= true;
530 useEncryption
= true;
531 useJournalQueue
= true;
536 public void SetDefaults ()
538 acknowledgeType
= false;
539 acknowledgment
= false;
540 administrationQueue
= true; //
542 arrivedTime
= true; //
543 attachSenderId
= false;
544 authenticated
= false;
545 authenticationProviderName
= false;
546 authenticationProviderType
= false;
548 connectorType
= false;
549 correlationId
= true; //
550 defaultBodySize
= 1024;
551 defaultExtensionSize
= 255;
552 defaultLabelSize
= 255;
553 destinationQueue
= false;
554 destinationSymmetricKey
= false;
555 digitalSignature
= false;
556 encryptionAlgorithm
= false;
558 hashAlgorithm
= false;
560 isFirstInTransaction
= false;
561 isLastInTransaction
= false;
566 responseQueue
= true; //
567 senderCertificate
= false;
569 senderVersion
= false;
571 sourceMachine
= false;
572 timeToBeReceived
= false;
573 timeToReachQueue
= false;
574 transactionId
= false;
575 transactionStatusQueue
= false;
576 useAuthentication
= false;
577 useDeadLetterQueue
= false;
578 useEncryption
= false;
579 useJournalQueue
= false;