blob: c768cb4bdea6da8dc11fc6d7468e5a663835ec30 [file] [log] [blame]
Christian Lavoieafc6d8f2011-02-20 02:39:19 +00001/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20package thrift
21
22/**
23 * Helper class that encapsulates struct metadata.
24 *
25 */
26type TMessage interface {
27 Name() string
28 TypeId() TMessageType
29 SeqId() int
30 Equals(other TMessage) bool
31}
32type tMessage struct {
33 name string
34 typeId TMessageType
35 seqid int
36}
37
38func NewTMessageDefault() TMessage {
39 return NewTMessage("", STOP, 0)
40}
41
42func NewTMessage(n string, t TMessageType, s int) TMessage {
43 return &tMessage{name: n, typeId: t, seqid: s}
44}
45
46func (p *tMessage) Name() string {
47 return p.name
48}
49
50func (p *tMessage) TypeId() TMessageType {
51 return p.typeId
52}
53
54func (p *tMessage) SeqId() int {
55 return p.seqid
56}
57
58func (p *tMessage) String() string {
59 return "<TMessage name:'" + p.name + "' type: " + string(p.typeId) + " seqid:" + string(p.seqid) + ">"
60}
61
62func (p *tMessage) Equals(other TMessage) bool {
63 return p.name == other.Name() && p.typeId == other.TypeId() && p.seqid == other.SeqId()
64}
65
66var EMPTY_MESSAGE TMessage
67
68func init() {
69 EMPTY_MESSAGE = NewTMessageDefault()
70}