Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET
Apache Qpid Documentation
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
qpid
framing
Xid.h
Go to the documentation of this file.
1
#ifndef QPID_FRAMING_XID_H
2
#define QPID_FRAMING_XID_H
3
/*
4
*
5
* Licensed to the Apache Software Foundation (ASF) under one
6
* or more contributor license agreements. See the NOTICE file
7
* distributed with this work for additional information
8
* regarding copyright ownership. The ASF licenses this file
9
* to you under the Apache License, Version 2.0 (the
10
* "License"); you may not use this file except in compliance
11
* with the License. You may obtain a copy of the License at
12
*
13
* http://www.apache.org/licenses/LICENSE-2.0
14
*
15
* Unless required by applicable law or agreed to in writing,
16
* software distributed under the License is distributed on an
17
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18
* KIND, either express or implied. See the License for the
19
* specific language governing permissions and limitations
20
* under the License.
21
*
22
*/
23
28
29
30
31
#include <ostream>
32
#include "
qpid/framing/amqp_types_full.h
"
33
#include "
qpid/framing/reply_exceptions.h
"
34
#include "
qpid/CommonImportExport.h
"
35
36
namespace
qpid {
37
namespace
framing {
38
39
class
QPID_COMMON_CLASS_EXTERN
Xid
{
40
uint32_t
format;
41
std::string globalId;
42
std::string branchId;
43
uint16_t
flags;
44
public
:
45
static
const
uint16_t
TYPE = 1540;
46
Xid
(
47
uint32_t
_format,
48
const
std::string& _globalId,
49
const
std::string& _branchId) :
50
format(_format),
51
globalId(_globalId),
52
branchId(_branchId),
53
flags(0){
54
flags |= (1 << 8);
55
flags |= (1 << 9);
56
flags |= (1 << 10);
57
if
(globalId.size() >= 256)
throw
IllegalArgumentException
(
"Value for globalId is too large"
);
58
if
(branchId.size() >= 256)
throw
IllegalArgumentException
(
"Value for branchId is too large"
);
59
}
60
Xid
() : format(0), flags(0) {}
61
62
QPID_COMMON_EXTERN
void
setFormat(
uint32_t
_format);
63
QPID_COMMON_EXTERN
uint32_t
getFormat()
const
;
64
QPID_COMMON_EXTERN
bool
hasFormat()
const
;
65
QPID_COMMON_EXTERN
void
clearFormatFlag();
66
QPID_COMMON_EXTERN
void
setGlobalId(
const
std::string& _globalId);
67
QPID_COMMON_EXTERN
const
std::string& getGlobalId()
const
;
68
QPID_COMMON_EXTERN
bool
hasGlobalId()
const
;
69
QPID_COMMON_EXTERN
void
clearGlobalIdFlag();
70
QPID_COMMON_EXTERN
void
setBranchId(
const
std::string& _branchId);
71
QPID_COMMON_EXTERN
const
std::string& getBranchId()
const
;
72
QPID_COMMON_EXTERN
bool
hasBranchId()
const
;
73
QPID_COMMON_EXTERN
void
clearBranchIdFlag();
74
QPID_COMMON_EXTERN
friend
std::ostream&
operator<<
(std::ostream&,
const
Xid
&);
75
QPID_COMMON_EXTERN
void
encode
(
Buffer
&)
const
;
76
QPID_COMMON_EXTERN
void
decode
(
Buffer
&,
uint32_t
=0);
77
QPID_COMMON_EXTERN
void
encodeStructBody(
Buffer
&)
const
;
78
QPID_COMMON_EXTERN
void
decodeStructBody(
Buffer
&,
uint32_t
=0);
79
QPID_COMMON_EXTERN
uint32_t
encodedSize()
const
;
80
QPID_COMMON_EXTERN
uint32_t
bodySize()
const
;
81
QPID_COMMON_EXTERN
void
print(std::ostream& out)
const
;
82
};
/* class Xid */
83
84
}}
85
#endif
Qpid C++ API Reference
Generated on Thu Nov 15 2012 for Qpid C++ Client API by
1.8.1.2