00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
#ifndef Tag_CLASS
00028
#define Tag_CLASS
00029
00030
#include <vector>
00031
#include <iostream>
00032
#include <string>
00033
#include <sstream>
00034
#include <vector>
00035
using namespace std;
00036
00037
#ifndef WITHOUT_ACS
00038
#include <asdmIDLTypesC.h>
00039
using asdmIDLTypes::IDLTag;
00040
#endif
00041
00042
#include <StringTokenizer.h>
00043
#include <InvalidArgumentException.h>
00044
#include <TagFormatException.h>
00045
#include "TagType.h"
00046
#include "Integer.h"
00047
00048
00049
using asdm::StringTokenizer;
00050
using asdm::InvalidArgumentException;
00051
00052
#include "EndianStream.h"
00053
using asdm::EndianOSStream;
00054
using asdm::EndianISStream;
00055
00056
namespace asdm {
00057
00058
class Tag;
00075 class Tag {
00076
00077
public:
00081
Tag();
00082
00089
Tag(
unsigned int i);
00090
00098
Tag(
unsigned int i,
const TagType* t) ;
00099
00103
Tag(
const Tag &t);
00104
00105
00106
00107
#ifndef WITHOUT_ACS
00108
00114
Tag(IDLTag &t);
00115
#endif
00116
00122
static Tag parseTag (string s);
00123
00130 string
toString()
const;
00131
00135
void toBin(EndianOSStream& eoss);
00136
00142
static void toBin(
const vector<Tag>& tag, EndianOSStream& eoss) ;
00143
00151
static Tag fromBin(EndianISStream& eiss);
00152
00160
static vector<Tag>
from1DBin(EndianISStream & eiss);
00161
00165
virtual ~Tag();
00166
00174
TagType*
getTagType();
00175
00183
unsigned int getTagValue();
00184
00185
#ifndef WITHOUT_ACS
00186
00191 IDLTag
toIDLTag()
const;
00192
#endif
00193
00199 string
getTag()
const;
00200
00204
Tag&
operator = (
const Tag &);
00205
00209
bool equals(
const Tag & t)
const;
00210
00217
bool operator == (
const Tag& t)
const;
00218
00222
bool operator != (
const Tag& t)
const;
00223
00229
bool operator < (
const Tag& t)
const;
00230
00235
bool isNull()
const;
00236
00237
protected:
00238 string tag;
00239
TagType* type;
00240 };
00241
00242
00243 }
00244
#endif