Change license header, remove stale pkg files.
[shibboleth/cpp-opensaml.git] / saml / saml2 / binding / SAML2ArtifactType0004.h
1 /**
2  * Licensed to the University Corporation for Advanced Internet
3  * Development, Inc. (UCAID) under one or more contributor license
4  * agreements. See the NOTICE file distributed with this work for
5  * additional information regarding copyright ownership.
6  *
7  * UCAID licenses this file to you under the Apache License,
8  * Version 2.0 (the "License"); you may not use this file except
9  * in compliance with the License. You may obtain a copy of the
10  * License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
17  * either express or implied. See the License for the specific
18  * language governing permissions and limitations under the License.
19  */
20
21 /**
22  * @file saml/saml2/binding/SAML2ArtifactType0004.h
23  * 
24  * Type 0x0004 SAML 2.0 artifact class.
25  */
26
27 #ifndef __saml_artifacttype0004_h__
28 #define __saml_artifacttype0004_h__
29
30 #include <saml/saml2/binding/SAML2Artifact.h>
31
32 namespace opensaml {
33     namespace saml2p {
34         
35         /**
36          * Type 0x0004 SAML 2.0 artifact class.
37          */
38         class SAML_API SAML2ArtifactType0004 : public SAML2Artifact
39         {
40             SAML2ArtifactType0004& operator=(const SAML2ArtifactType0004& src);
41         public:
42             /**
43              * Decodes a base64-encoded type 0x0004 artifact
44              * 
45              * @param s NULL-terminated base64-encoded string 
46              */        
47             SAML2ArtifactType0004(const char* s);
48
49             /**
50              * Constructs an artifact with the specified source ID and index, but a random message handle.
51              * 
52              * @param sourceid  SOURCEID_LENGTH bytes of binary data
53              * @param index     endpoint index
54              */        
55             SAML2ArtifactType0004(const std::string& sourceid, int index);
56
57             /**
58              * Constructs an artifact with the specified source ID and assertion handle.
59              * 
60              * @param sourceid  SOURCEID_LENGTH bytes of binary data
61              * @param index     endpoint index
62              * @param handle    HANDLE_LENGTH bytes of binary data 
63              */        
64             SAML2ArtifactType0004(const std::string& sourceid, int index, const std::string& handle);
65     
66             virtual ~SAML2ArtifactType0004();
67             
68             // Virtual function overrides.
69             SAML2ArtifactType0004* clone() const;
70             std::string getSource() const;
71             std::string getMessageHandle() const;
72
73             /**
74              * Returns the binary data that identifies the source.
75              * The result MAY contain embedded null characters.
76              * 
77              * @return the binary source ID
78              */
79             virtual std::string getSourceID() const;
80             
81             /** Length of source ID */            
82             static const unsigned int SOURCEID_LENGTH;
83
84             /** Length of message handle */            
85             static const unsigned int HANDLE_LENGTH;
86     
87         protected:
88             /**
89              * Copy constructor.
90              * 
91              * @param src   object to copy
92              */
93             SAML2ArtifactType0004(const SAML2ArtifactType0004& src);
94         };
95         
96     };
97 };
98
99 #endif /* __saml_artifacttype0004_h__ */