Merge branch 'master' of http://github.com/mono/mono
[mono.git] / mcs / class / System.Messaging / System.Messaging / MessagePropertyFilter.cs
1 //\r
2 // System.Messaging\r
3 //\r
4 // Authors:\r
5 //      Peter Van Isacker (sclytrack@planetinternet.be)\r
6 //\r
7 // (C) 2003 Peter Van Isacker\r
8 //\r
9 \r
10 //\r
11 // Permission is hereby granted, free of charge, to any person obtaining\r
12 // a copy of this software and associated documentation files (the\r
13 // "Software"), to deal in the Software without restriction, including\r
14 // without limitation the rights to use, copy, modify, merge, publish,\r
15 // distribute, sublicense, and/or sell copies of the Software, and to\r
16 // permit persons to whom the Software is furnished to do so, subject to\r
17 // the following conditions:\r
18 // \r
19 // The above copyright notice and this permission notice shall be\r
20 // included in all copies or substantial portions of the Software.\r
21 // \r
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
29 //\r
30 \r
31 using System;\r
32 using System.ComponentModel;\r
33 \r
34 namespace System.Messaging\r
35 {\r
36         [TypeConverter (typeof(ExpandableObjectConverter))]\r
37         public class MessagePropertyFilter\r
38         {\r
39                 private bool acknowledgeType = false;\r
40                 private bool acknowledgment = false;\r
41                 private bool administrationQueue = false;\r
42                 private bool appSpecific = false;\r
43                 private bool arrivedTime = false;\r
44                 private bool attachSenderId = false;\r
45                 private bool authenticated = false;\r
46                 private bool authenticationProviderName = false;\r
47                 private bool authenticationProviderType = false;\r
48                 private bool body = false;\r
49                 private bool connectorType = false;\r
50                 private bool correlationId = false;\r
51                 private int defaultBodySize = 1024;\r
52                 private int defaultExtensionSize = 255;\r
53                 private int defaultLabelSize = 255;\r
54                 private bool destinationQueue = false;\r
55                 private bool destinationSymmetricKey = false;\r
56                 private bool digitalSignature = false;\r
57                 private bool encryptionAlgorithm = false;\r
58                 private bool extension = false;\r
59                 private bool hashAlgorithm = false;\r
60                 private bool id = false;\r
61                 private bool isFirstInTransaction = false;\r
62                 private bool isLastInTransaction = false;\r
63                 private bool label = false;\r
64                 private bool messageType = false;\r
65                 private bool priority = false;\r
66                 private bool recoverable = false;\r
67                 private bool responseQueue = false;\r
68                 private bool senderCertificate = false;\r
69                 private bool senderId = false;\r
70                 private bool senderVersion = false;\r
71                 private bool sentTime = false;\r
72                 private bool sourceMachine = false;\r
73                 private bool timeToBeReceived = false;\r
74                 private bool timeToReachQueue = false;\r
75                 private bool transactionId = false;\r
76                 private bool transactionStatusQueue = false;\r
77                 private bool useAuthentication = false;\r
78                 private bool useDeadLetterQueue = false;\r
79                 private bool useEncryption = false;\r
80                 private bool useJournalQueue = false;\r
81                 private bool useTracing = false;\r
82 \r
83                 [MonoTODO]\r
84                 public MessagePropertyFilter ()\r
85                 {\r
86 \r
87                 }\r
88 \r
89                 [DefaultValue (true)]\r
90                 [MessagingDescription ("MsgAcknowledgeType")]\r
91                 public bool AcknowledgeType\r
92                 {\r
93                         get { return acknowledgeType; }\r
94                         set { acknowledgeType = value; }\r
95                 }\r
96 \r
97                 [DefaultValue (true)]\r
98                 [MessagingDescription ("MsgAcknowledgement")]\r
99                 public bool Acknowledgment\r
100                 {\r
101                         get { return acknowledgment; }\r
102                         set { acknowledgment = value; }\r
103                 }\r
104 \r
105                 [DefaultValue (true)]\r
106                 [MessagingDescription ("MsgAdministrationQueue")]\r
107                 public bool AdministrationQueue\r
108                 {\r
109                         get { return administrationQueue; }\r
110                         set { administrationQueue = value; }\r
111                 }\r
112 \r
113                 [DefaultValue (false)]\r
114                 [MessagingDescription ("MsgAppSpecific")]\r
115                 public bool AppSpecific\r
116                 {\r
117                         get { return appSpecific; }\r
118                         set { appSpecific = value; }\r
119                 }\r
120 \r
121                 [DefaultValue (false)]\r
122                 [MessagingDescription ("MsgArrivedTime")]\r
123                 public bool ArrivedTime\r
124                 {\r
125                         get { return arrivedTime; }\r
126                         set { arrivedTime = value; }\r
127                 }\r
128 \r
129                 [DefaultValue (false)]\r
130                 [MessagingDescription ("MsgAttachSenderId")]\r
131                 public bool AttachSenderId\r
132                 {\r
133                         get { return attachSenderId; }\r
134                         set { attachSenderId = value; }\r
135                 }\r
136 \r
137                 [DefaultValue (false)]\r
138                 [MessagingDescription ("MsgAuthenticated")]\r
139                 public bool Authenticated\r
140                 {\r
141                         get { return authenticated; }\r
142                         set { authenticated = value; }\r
143                 }\r
144 \r
145                 [DefaultValue (false)]\r
146                 [MessagingDescription ("MsgAuthenticationProviderName")]\r
147                 public bool AuthenticationProviderName\r
148                 {\r
149                         get { return authenticationProviderName; }\r
150                         set { authenticationProviderName = value; }\r
151                 }\r
152 \r
153                 [DefaultValue (false)]\r
154                 [MessagingDescription ("MsgAuthenticationProviderType")]\r
155                 public bool AuthenticationProviderType\r
156                 {\r
157                         get { return authenticationProviderType; }\r
158                         set { authenticationProviderType = value; }\r
159                 }\r
160 \r
161                 [DefaultValue (true)]\r
162                 [MessagingDescription ("MsgBody")]\r
163                 public bool Body\r
164                 {\r
165                         get { return body; }\r
166                         set { body = value; }\r
167                 }\r
168 \r
169                 [DefaultValue (false)]\r
170                 [MessagingDescription ("MsgConnectorType")]\r
171                 public bool ConnectorType\r
172                 {\r
173                         get { return connectorType; }\r
174                         set { connectorType = value; }\r
175                 }\r
176 \r
177                 [DefaultValue (false)]\r
178                 [MessagingDescription ("MsgCorrelationId")]\r
179                 public bool CorrelationId\r
180                 {\r
181                         get { return correlationId; }\r
182                         set { correlationId = value; }\r
183                 }\r
184 \r
185                 [DefaultValue (1024)]\r
186                 [MessagingDescription ("MsgDefaultBodySize")]\r
187                 public int DefaultBodySize\r
188                 {\r
189                         get { return defaultBodySize; }\r
190                         set\r
191                         {\r
192                                 if (value < 0) \r
193                                         throw new ArgumentException ("DefaultBodySize");\r
194                                 defaultBodySize = value;\r
195                         }\r
196                 }\r
197 \r
198                 [DefaultValue (255)]\r
199                 [MessagingDescription ("MsgDefaultExtensionSize")]\r
200                 public int DefaultExtensionSize\r
201                 {\r
202                         get { return defaultExtensionSize; }\r
203                         set\r
204                         {\r
205                                 if (value < 0) \r
206                                         throw new ArgumentException ("DefaultExtensionSize");\r
207                                 defaultExtensionSize = value;\r
208                         }\r
209                 }\r
210 \r
211                 [DefaultValue (255)]\r
212                 [MessagingDescription ("MsgDefaultLabelSize")]\r
213                 public int DefaultLabelSize\r
214                 {\r
215                         get { return defaultLabelSize; }\r
216                         set\r
217                         {\r
218                                 if (value < 0) throw new ArgumentException ("DefaultLabelSize");\r
219                                 defaultLabelSize = value;\r
220                         }\r
221                 }\r
222 \r
223                 [DefaultValue (false)]\r
224                 [MessagingDescription ("MsgDestinationQueue")]\r
225                 public bool DestinationQueue\r
226                 {\r
227                         get { return destinationQueue; }\r
228                         set { destinationQueue = value; }\r
229                 }\r
230 \r
231                 [DefaultValue (false)]\r
232                 [MessagingDescription ("MsgDestinationSymmetricKey")]\r
233                 public bool DestinationSymmetricKey\r
234                 {\r
235                         get { return destinationSymmetricKey; }\r
236                         set { destinationSymmetricKey = value; }\r
237                 }\r
238 \r
239                 [DefaultValue (false)]\r
240                 [MessagingDescription ("MsgDigitalSignature")]\r
241                 public bool DigitalSignature\r
242                 {\r
243                         get { return digitalSignature; }\r
244                         set { digitalSignature = value; }\r
245                 }\r
246 \r
247                 [DefaultValue (false)]\r
248                 [MessagingDescription ("MsgEncryptionAlgorithm")]\r
249                 public bool EncryptionAlgorithm\r
250                 {\r
251                         get { return encryptionAlgorithm; }\r
252                         set { encryptionAlgorithm = value; }\r
253                 }\r
254 \r
255                 [DefaultValue (false)]\r
256                 [MessagingDescription ("MsgExtension")]\r
257                 public bool Extension\r
258                 {\r
259                         get { return extension; }\r
260                         set { extension = value; }\r
261                 }\r
262 \r
263                 [DefaultValue (false)]\r
264                 [MessagingDescription ("MsgHashAlgorithm")]\r
265                 public bool HashAlgorithm\r
266                 {\r
267                         get { return hashAlgorithm; }\r
268                         set { hashAlgorithm = value; }\r
269                 }\r
270 \r
271                 [DefaultValue (false)]\r
272                 [MessagingDescription ("MsgId")]\r
273                 public bool Id\r
274                 {\r
275                         get { return id; }\r
276                         set { id = value; }\r
277                 }\r
278 \r
279                 [DefaultValue (false)]\r
280                 [MessagingDescription ("MsgIsFirstInTransaction")]\r
281                 public bool IsFirstInTransaction\r
282                 {\r
283                         get { return isFirstInTransaction; }\r
284                         set { isFirstInTransaction = value; }\r
285                 }\r
286 \r
287                 [DefaultValue (false)]\r
288                 [MessagingDescription ("MsgIsLastInTransaction")]\r
289                 public bool IsLastInTransaction\r
290                 {\r
291                         get { return isLastInTransaction; }\r
292                         set { isLastInTransaction = value; }\r
293                 }\r
294 \r
295                 [DefaultValue (true)]\r
296                 [MessagingDescription ("MsgLabel")]\r
297                 public bool Label\r
298                 {\r
299                         get { return label; }\r
300                         set { label = value; }\r
301                 }\r
302 \r
303                 [DefaultValue (true)]\r
304                 [MessagingDescription ("MsgMessageType")]\r
305                 public bool MessageType\r
306                 {\r
307                         get { return messageType; }\r
308                         set { messageType = value; }\r
309                 }\r
310 \r
311                 [DefaultValue (false)]\r
312                 [MessagingDescription ("MsgPriority")]\r
313                 public bool Priority\r
314                 {\r
315                         get { return priority; }\r
316                         set { priority = value; }\r
317                 }\r
318 \r
319                 [DefaultValue (false)]\r
320                 [MessagingDescription ("MsgRecoverable")]\r
321                 public bool Recoverable\r
322                 {\r
323                         get { return recoverable; }\r
324                         set { recoverable = value; }\r
325                 }\r
326 \r
327                 [DefaultValue (true)]\r
328                 [MessagingDescription ("MsgResponseQueue")]\r
329                 public bool ResponseQueue\r
330                 {\r
331                         get { return responseQueue; }\r
332                         set { responseQueue = value; }\r
333                 }\r
334 \r
335                 [DefaultValue (false)]\r
336                 [MessagingDescription ("MsgSenderCertificate")]\r
337                 public bool SenderCertificate\r
338                 {\r
339                         get { return senderCertificate; }\r
340                         set { senderCertificate = value; }\r
341                 }\r
342 \r
343                 [DefaultValue (false)]\r
344                 [MessagingDescription ("MsgSenderId")]\r
345                 public bool SenderId\r
346                 {\r
347                         get { return senderId; }\r
348                         set { senderId = value; }\r
349                 }\r
350 \r
351                 [DefaultValue (false)]\r
352                 [MessagingDescription ("MsgSenderVersion")]\r
353                 public bool SenderVersion\r
354                 {\r
355                         get { return senderVersion; }\r
356                         set { senderVersion = value; }\r
357                 }\r
358 \r
359                 [DefaultValue (false)]\r
360                 [MessagingDescription ("MsgSentTime")]\r
361                 public bool SentTime\r
362                 {\r
363                         get { return sentTime; }\r
364                         set { sentTime = value; }\r
365                 }\r
366 \r
367                 [DefaultValue (false)]\r
368                 [MessagingDescription ("MsgSourceMachine")]\r
369                 public bool SourceMachine\r
370                 {\r
371                         get { return sourceMachine; }\r
372                         set { sourceMachine = value; }\r
373                 }\r
374 \r
375                 [DefaultValue (false)]\r
376                 [MessagingDescription ("MsgTimeToBeReceived")]\r
377                 public bool TimeToBeReceived\r
378                 {\r
379                         get { return timeToBeReceived; }\r
380                         set { timeToBeReceived = value; }\r
381                 }\r
382 \r
383                 [DefaultValue (false)]\r
384                 [MessagingDescription ("MsgTimeToReachQueue")]\r
385                 public bool TimeToReachQueue\r
386                 {\r
387                         get { return timeToReachQueue; }\r
388                         set { timeToReachQueue = value; }\r
389                 }\r
390 \r
391                 [DefaultValue (false)]\r
392                 [MessagingDescription ("MsgTransactionId")]\r
393                 public bool TransactionId\r
394                 {\r
395                         get { return transactionId; }\r
396                         set { transactionId = value; }\r
397                 }\r
398 \r
399                 [DefaultValue (false)]\r
400                 [MessagingDescription ("MsgTransactionStatusQueue")]\r
401                 public bool TransactionStatusQueue\r
402                 {\r
403                         get { return transactionStatusQueue; }\r
404                         set { transactionStatusQueue = value; }\r
405                 }\r
406 \r
407                 [DefaultValue (false)]\r
408                 [MessagingDescription ("MsgUseAuthentication")]\r
409                 public bool UseAuthentication\r
410                 {\r
411                         get { return useAuthentication; }\r
412                         set { useAuthentication = value; }\r
413                 }\r
414 \r
415                 [DefaultValue (true)]\r
416                 [MessagingDescription ("MsgUseDeadLetterQueue")]\r
417                 public bool UseDeadLetterQueue\r
418                 {\r
419                         get { return useDeadLetterQueue; }\r
420                         set { useDeadLetterQueue = value; }\r
421                 }\r
422 \r
423                 [DefaultValue (false)]\r
424                 [MessagingDescription ("MsgUseEncryption")]\r
425                 public bool UseEncryption\r
426                 {\r
427                         get { return useEncryption; }\r
428                         set { useEncryption = value; }\r
429                 }\r
430 \r
431                 [DefaultValue (true)]\r
432                 [MessagingDescription ("MsgUseJournalQueue")]\r
433                 public bool UseJournalQueue\r
434                 {\r
435                         get { return useJournalQueue; }\r
436                         set { useJournalQueue = value; }\r
437                 }\r
438 \r
439                 [DefaultValue (false)]\r
440                 [MessagingDescription ("MsgUseTracing")]\r
441                 public bool UseTracing\r
442                 {\r
443                         get { return useTracing; }\r
444                         set { useTracing = value; }\r
445                 }\r
446 \r
447                 public void ClearAll ()\r
448                 {\r
449                         acknowledgeType = false;\r
450                         acknowledgment = false;\r
451                         administrationQueue = false;\r
452                         appSpecific = false;\r
453                         arrivedTime = false;\r
454                         attachSenderId = false;\r
455                         authenticated = false;\r
456                         authenticationProviderName = false;\r
457                         authenticationProviderType = false;\r
458                         body = false;\r
459                         connectorType = false;\r
460                         correlationId = false;\r
461                         destinationQueue = false;\r
462                         destinationSymmetricKey = false;\r
463                         digitalSignature = false;\r
464                         encryptionAlgorithm = false;\r
465                         extension = false;\r
466                         hashAlgorithm = false;\r
467                         id = false;\r
468                         isFirstInTransaction = false;\r
469                         isLastInTransaction = false;\r
470                         label = false;\r
471                         messageType = false;\r
472                         priority = false;\r
473                         recoverable = false;\r
474                         responseQueue = false;\r
475                         senderCertificate = false;\r
476                         senderId = false;\r
477                         senderVersion = false;\r
478                         sentTime = false;\r
479                         sourceMachine = false;\r
480                         timeToBeReceived = false;\r
481                         timeToReachQueue = false;\r
482                         transactionId = false;\r
483                         transactionStatusQueue = false;\r
484                         useAuthentication = false;\r
485                         useDeadLetterQueue = false;\r
486                         useEncryption = false;\r
487                         useJournalQueue = false;\r
488                         useTracing = false;\r
489                 }\r
490 \r
491                 public void SetAll ()\r
492                 {\r
493                         acknowledgeType = true;\r
494                         acknowledgment = true;\r
495                         administrationQueue = true;\r
496                         appSpecific = true;\r
497                         arrivedTime = true;\r
498                         attachSenderId = true;\r
499                         authenticated = true;\r
500                         authenticationProviderName = true;\r
501                         authenticationProviderType = true;\r
502                         body = true;\r
503                         connectorType = true;\r
504                         correlationId = true;\r
505                         destinationQueue = true;\r
506                         destinationSymmetricKey = true;\r
507                         digitalSignature = true;\r
508                         encryptionAlgorithm = true;\r
509                         extension = true;\r
510                         hashAlgorithm = true;\r
511                         id = true;\r
512                         isFirstInTransaction = true;\r
513                         isLastInTransaction = true;\r
514                         label = true;\r
515                         messageType = true;\r
516                         priority = true;\r
517                         recoverable = true;\r
518                         responseQueue = true;\r
519                         senderCertificate = true;\r
520                         senderId = true;\r
521                         senderVersion = true;\r
522                         sentTime = true;\r
523                         sourceMachine = true;\r
524                         timeToBeReceived = true;\r
525                         timeToReachQueue = true;\r
526                         transactionId = true;\r
527                         transactionStatusQueue = true;\r
528                         useAuthentication = true;\r
529                         useDeadLetterQueue = true;\r
530                         useEncryption = true;\r
531                         useJournalQueue = true;\r
532                         useTracing = true;\r
533                 }\r
534 \r
535                 [MonoTODO]\r
536                 public void SetDefaults ()\r
537                 {\r
538                         acknowledgeType = false;\r
539                         acknowledgment = false;\r
540                         administrationQueue = true;                     //\r
541                         appSpecific = false;\r
542                         arrivedTime = true;                             //\r
543                         attachSenderId = false;\r
544                         authenticated = false;\r
545                         authenticationProviderName = false;\r
546                         authenticationProviderType = false;\r
547                         body = true;                                            //\r
548                         connectorType = false;\r
549                         correlationId = true;                           //\r
550                         defaultBodySize = 1024;\r
551                         defaultExtensionSize = 255;\r
552                         defaultLabelSize = 255;\r
553                         destinationQueue = false;\r
554                         destinationSymmetricKey = false;\r
555                         digitalSignature = false;\r
556                         encryptionAlgorithm = false;\r
557                         extension = false;\r
558                         hashAlgorithm = false;\r
559                         id = true;                                                      //\r
560                         isFirstInTransaction = false;\r
561                         isLastInTransaction = false;\r
562                         label = true;                                           //\r
563                         messageType = false;\r
564                         priority = false;\r
565                         recoverable = false;\r
566                         responseQueue = true;                           //\r
567                         senderCertificate = false;\r
568                         senderId = false;\r
569                         senderVersion = false;\r
570                         sentTime = true;                                        //\r
571                         sourceMachine = false;\r
572                         timeToBeReceived = false;\r
573                         timeToReachQueue = false;\r
574                         transactionId = false;\r
575                         transactionStatusQueue = false;\r
576                         useAuthentication = false;\r
577                         useDeadLetterQueue = false;\r
578                         useEncryption = false;\r
579                         useJournalQueue = false;\r
580                         useTracing = false;\r
581                 }\r
582         }\r
583 }\r