提交 135e14e6af022fa7cb72a9041bbe141fbd118963

作者 LJH 李佳桓
1 个父辈 ca677aaa

add

正在显示 1 个修改的文件 包含 112 行增加0 行删除
  1 +/*
  2 + * Copyright 2007 Stephen Liu
  3 + * For license terms, see the file COPYING along with this library.
  4 + */
  5 +
  6 +
  7 +#ifndef __spresponse_hpp__
  8 +#define __spresponse_hpp__
  9 +
  10 +#include <sys/types.h>
  11 +#include "spporting.hpp"
  12 +
  13 +class SP_Buffer;
  14 +struct evbuffer;
  15 +class SP_ArrayList;
  16 +class SP_MsgBlockList;
  17 +
  18 +typedef struct tagSP_Sid {
  19 + uint16_t mKey;
  20 + uint16_t mSeq;
  21 +
  22 + enum {
  23 + eTimerKey = 0,
  24 + eTimerSeq = 65535,
  25 +
  26 + ePushKey = 1,
  27 + ePushSeq = 65535
  28 + };
  29 +} SP_Sid_t;
  30 +
  31 +class SP_SidList {
  32 +public:
  33 + SP_SidList();
  34 + ~SP_SidList();
  35 +
  36 + void reset();
  37 +
  38 + int getCount() const;
  39 + void add( SP_Sid_t sid );
  40 + SP_Sid_t get( int index ) const;
  41 + SP_Sid_t take( int index );
  42 +
  43 + int find( SP_Sid_t sid ) const;
  44 +
  45 +private:
  46 + SP_SidList( SP_SidList & );
  47 + SP_SidList & operator=( SP_SidList & );
  48 +
  49 + SP_ArrayList * mList;
  50 +};
  51 +
  52 +class SP_Message {
  53 +public:
  54 + SP_Message( int completionKey = 0 );
  55 + ~SP_Message();
  56 +
  57 + void reset();
  58 +
  59 + SP_SidList * getToList();
  60 +
  61 + size_t getTotalSize();
  62 +
  63 + SP_Buffer * getMsg();
  64 + SP_MsgBlockList * getFollowBlockList();
  65 +
  66 + SP_SidList * getSuccess();
  67 + SP_SidList * getFailure();
  68 +
  69 + void setCompletionKey( int completionKey );
  70 + int getCompletionKey();
  71 +
  72 +private:
  73 + SP_Message( SP_Message & );
  74 + SP_Message & operator=( SP_Message & );
  75 +
  76 + SP_Buffer * mMsg;
  77 + SP_MsgBlockList * mFollowBlockList;
  78 +
  79 + SP_SidList * mToList;
  80 + SP_SidList * mSuccess;
  81 + SP_SidList * mFailure;
  82 +
  83 + int mCompletionKey;
  84 +};
  85 +
  86 +class SP_Response {
  87 +public:
  88 + SP_Response( SP_Sid_t fromSid );
  89 + ~SP_Response();
  90 +
  91 + SP_Sid_t getFromSid() const;
  92 + SP_Message * getReply();
  93 +
  94 + void addMessage( SP_Message * msg );
  95 + SP_Message * peekMessage();
  96 + SP_Message * takeMessage();
  97 +
  98 + SP_SidList * getToCloseList();
  99 +
  100 +private:
  101 + SP_Response( SP_Response & );
  102 + SP_Response & operator=( SP_Response & );
  103 +
  104 + SP_Sid_t mFromSid;
  105 + SP_Message * mReply;
  106 + SP_SidList * mToCloseList;
  107 +
  108 + SP_ArrayList * mList;
  109 +};
  110 +
  111 +#endif
  112 +
... ...
注册登录 后发表评论