Documentation ¶
Index ¶
- Constants
- Variables
- func FriendOplogsToOplogs(typedLogs []*FriendOplog) []*pkgservice.BaseOplog
- func InitFriend(dataDir string) error
- func MessagesToObjs(typedObjs []*Message) []pkgservice.Object
- func NewEmptyApproveJoinFriend() *pkgservice.ApproveJoinEntity
- func TeardownFriend()
- type ApproveJoin
- type Backend
- func (b *Backend) APIs() []rpc.API
- func (b *Backend) CreateMessage(entityIDBytes []byte, message [][]byte, mediaIDStrs []string) (*BackendCreateMessage, error)
- func (b *Backend) DeleteFriend(entityIDBytes []byte) (bool, error)
- func (b *Backend) ForceSyncFriendMerkle(entityIDBytes []byte) (bool, error)
- func (b *Backend) GetFriend(entityIDBytes []byte) (*BackendGetFriend, error)
- func (b *Backend) GetFriendByFriendID(friendIDBytes []byte) (*BackendGetFriend, error)
- func (b *Backend) GetFriendList(startIDBytes []byte, limit int, listOrder pttdb.ListOrder) ([]*BackendGetFriend, error)
- func (b *Backend) GetFriendListByMsgCreateTS(theTS int64, nanoTS uint32, limit int, listOrder pttdb.ListOrder) ([]*BackendGetFriend, error)
- func (b *Backend) GetFriendListSeen() (types.Timestamp, error)
- func (b *Backend) GetFriendOplogList(entityIDBytes []byte, logIDBytes []byte, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
- func (b *Backend) GetFriendOplogMerkleNodeList(entityIDBytes []byte, level pkgservice.MerkleTreeLevel, startKey []byte, ...) ([]*pkgservice.BackendMerkleNode, error)
- func (b *Backend) GetMessageBlockList(entityIDBytes []byte, msgIDBytes []byte, limit uint32) ([]*BackendMessageBlock, error)
- func (b *Backend) GetMessageList(entityIDBytes []byte, startIDBytes []byte, limit int, ...) ([]*BackendGetMessage, error)
- func (b *Backend) GetPendingFriendOplogInternalList(entityIDBytes []byte, logIDBytes []byte, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
- func (b *Backend) GetPendingFriendOplogMasterList(entityIDBytes []byte, logIDBytes []byte, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
- func (b *Backend) GetRawFriend(entityIDBytes []byte) (*Friend, error)
- func (b *Backend) MarkFriendListSeen() (types.Timestamp, error)
- func (b *Backend) MarkFriendSeen(entityIDBytes []byte) (types.Timestamp, error)
- func (b *Backend) Name() string
- func (b *Backend) Start() error
- func (b *Backend) Stop() error
- type BackendCreateMessage
- type BackendGetFriend
- type BackendGetMessage
- type BackendMessageBlock
- type Config
- type CreateMessage
- type Friend
- func (f *Friend) GetByFriendID(friendID *types.PttID) error
- func (f *Friend) GetUpdateTS() types.Timestamp
- func (f *Friend) Idx2Key() ([]byte, error)
- func (f *Friend) IdxKey() ([]byte, error)
- func (f *Friend) Init(ptt pkgservice.Ptt, service pkgservice.Service, ...) error
- func (f *Friend) InitPM(ptt pkgservice.Ptt, service pkgservice.Service) error
- func (f *Friend) LoadLastSeen() (types.Timestamp, error)
- func (f *Friend) LoadMessageCreateTS() (types.Timestamp, error)
- func (f *Friend) LoadMessageCreateTS2() (types.Timestamp, error)
- func (f *Friend) Marshal() ([]byte, error)
- func (f *Friend) MarshalKey() ([]byte, error)
- func (f *Friend) MarshalLastSeenKey() ([]byte, error)
- func (f *Friend) MarshalMessageCreateTSIdxKey() ([]byte, error)
- func (f *Friend) MarshalMessageCreateTSKey() ([]byte, error)
- func (f *Friend) MarshalMessageCreateTSKey2(ts types.Timestamp) ([]byte, error)
- func (f *Friend) Save(isLocked bool) error
- func (f *Friend) SaveLastSeen(ts types.Timestamp) error
- func (f *Friend) SaveMessageCreateTS(ts types.Timestamp) error
- func (f *Friend) SaveMessageCreateTS2(ts types.Timestamp) error
- func (f *Friend) SetUpdateTS(ts types.Timestamp)
- func (f *Friend) Unmarshal(theBytes []byte) error
- type FriendOpCreateFriend
- type FriendOpCreateMedia
- type FriendOpCreateMessage
- type FriendOpDeleteFriend
- type FriendOplog
- type InitFriendInfo
- type InitFriendInfoAck
- type Message
- func (m *Message) DeleteAll(isLocked bool) error
- func (m *Message) Get(isLocked bool) error
- func (m *Message) GetByID(isLocked bool) error
- func (m *Message) GetNewObjByID(id *types.PttID, isLocked bool) (pkgservice.Object, error)
- func (m *Message) GetSyncInfo() pkgservice.SyncInfo
- func (m *Message) GetUpdateTS() types.Timestamp
- func (m *Message) Marshal() ([]byte, error)
- func (m *Message) MarshalKey() ([]byte, error)
- func (m *Message) NewEmptyObj() pkgservice.Object
- func (m *Message) Save(isLocked bool) error
- func (m *Message) SetSyncInfo(theSyncInfo pkgservice.SyncInfo) error
- func (m *Message) SetUpdateTS(ts types.Timestamp)
- func (m *Message) Unmarshal(theBytes []byte) error
- type PrivateAPI
- func (api *PrivateAPI) CountPeers(entityID string) (int, error)
- func (api *PrivateAPI) CreateMessage(entityID string, message [][]byte, mediaIDs []string) (*BackendCreateMessage, error)
- func (api *PrivateAPI) DeleteFriend(entityID string) (bool, error)
- func (api *PrivateAPI) ForceOpKey(entityID string) (bool, error)
- func (api *PrivateAPI) ForceSync(entityID string) (bool, error)
- func (api *PrivateAPI) ForceSyncFriendMerkle(entityID string) (bool, error)
- func (api *PrivateAPI) ForceSyncMasterMerkle(entityID string) (bool, error)
- func (api *PrivateAPI) ForceSyncMemberMerkle(entityID string) (bool, error)
- func (api *PrivateAPI) GetFriend(entityID string) (*BackendGetFriend, error)
- func (api *PrivateAPI) GetFriendByFriendID(friendID string) (*BackendGetFriend, error)
- func (api *PrivateAPI) GetFriendList(startingFriendID string, limit int) ([]*BackendGetFriend, error)
- func (api *PrivateAPI) GetFriendListByMsgCreateTS(ts int64, nanoTS uint32, limit int, listOrder pttdb.ListOrder) ([]*BackendGetFriend, error)
- func (api *PrivateAPI) GetFriendListSeen() (types.Timestamp, error)
- func (api *PrivateAPI) GetFriendOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
- func (api *PrivateAPI) GetFriendOplogMerkleNodeList(entityID string, level uint8, startKey []byte, limit int, ...) ([]*pkgservice.BackendMerkleNode, error)
- func (api *PrivateAPI) GetMasterList(entityID string, startID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.Master, error)
- func (api *PrivateAPI) GetMasterListFromCache(entityID string) ([]*pkgservice.Master, error)
- func (api *PrivateAPI) GetMasterOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MasterOplog, error)
- func (api *PrivateAPI) GetMasterOplogMerkleNodeList(entityID string, level uint8, startKey []byte, limit int, ...) ([]*pkgservice.BackendMerkleNode, error)
- func (api *PrivateAPI) GetMemberList(entityID string, startID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.Member, error)
- func (api *PrivateAPI) GetMemberOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MemberOplog, error)
- func (api *PrivateAPI) GetMemberOplogMerkleNodeList(entityID string, level uint8, startKey []byte, limit int, ...) ([]*pkgservice.BackendMerkleNode, error)
- func (api *PrivateAPI) GetMessageBlockList(entityID string, messageID string, dummy0 string, ...) ([]*BackendMessageBlock, error)
- func (api *PrivateAPI) GetMessageList(entityID string, startingMessageID string, limit int, ...) ([]*BackendGetMessage, error)
- func (api *PrivateAPI) GetMyMemberLog(entityID string) (*pkgservice.BaseOplog, error)
- func (api *PrivateAPI) GetOpKeyInfos(entityID string) ([]*pkgservice.KeyInfo, error)
- func (api *PrivateAPI) GetOpKeyInfosFromDB(entityID string) ([]*pkgservice.KeyInfo, error)
- func (api *PrivateAPI) GetOpKeyOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.OpKeyOplog, error)
- func (api *PrivateAPI) GetPeers(entityID string) ([]*pkgservice.BackendPeer, error)
- func (api *PrivateAPI) GetPendingFriendOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
- func (api *PrivateAPI) GetPendingFriendOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
- func (api *PrivateAPI) GetPendingMasterOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MasterOplog, error)
- func (api *PrivateAPI) GetPendingMasterOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MasterOplog, error)
- func (api *PrivateAPI) GetPendingMemberOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MemberOplog, error)
- func (api *PrivateAPI) GetPendingMemberOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MemberOplog, error)
- func (api *PrivateAPI) GetPendingOpKeyOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.OpKeyOplog, error)
- func (api *PrivateAPI) GetPendingOpKeyOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.OpKeyOplog, error)
- func (api *PrivateAPI) GetRawFriend(entityID string) (*Friend, error)
- func (api *PrivateAPI) MarkFriendListSeen() (types.Timestamp, error)
- func (api *PrivateAPI) MarkFriendSeen(entityID string) (types.Timestamp, error)
- func (api *PrivateAPI) RevokeOpKey(entityID string, keyID string, myKey string) (bool, error)
- func (api *PrivateAPI) ShowValidateKey() (*types.PttID, error)
- func (api *PrivateAPI) ValidateValidateKey(key string) (bool, error)
- type ProcessFriendInfo
- type ProtocolManager
- func (pm *ProtocolManager) ApproveJoinFriend(joinEntity *pkgservice.JoinEntity, keyInfo *pkgservice.KeyInfo, ...) (*pkgservice.KeyInfo, interface{}, error)
- func (pm *ProtocolManager) BroadcastFriendOplog(oplog *FriendOplog) error
- func (pm *ProtocolManager) BroadcastFriendOplogs(opKeyLogs []*FriendOplog) error
- func (pm *ProtocolManager) CleanObject() error
- func (pm *ProtocolManager) CreateFriendOplog(objID *types.PttID, ts types.Timestamp, op pkgservice.OpType, data interface{}) (*FriendOplog, error)
- func (pm *ProtocolManager) CreateMessage(msg [][]byte, mediaIDs []*types.PttID) (*Message, error)
- func (pm *ProtocolManager) DeleteFriend() error
- func (pm *ProtocolManager) Fix141MasterOplog() error
- func (pm *ProtocolManager) ForceSyncFriendMerkle() (bool, error)
- func (pm *ProtocolManager) GetFriendOplogList(logID *types.PttID, limit int, listOrder pttdb.ListOrder, status types.Status) ([]*FriendOplog, error)
- func (pm *ProtocolManager) GetFriendOplogMerkleNodeList(level pkgservice.MerkleTreeLevel, startKey []byte, limit int, ...) ([]*pkgservice.MerkleNode, error)
- func (pm *ProtocolManager) GetMessageBlockList(msgID *types.PttID, limit uint32) (*Message, []*pkgservice.ContentBlock, error)
- func (pm *ProtocolManager) GetMessageList(startID *types.PttID, limit int, listOrder pttdb.ListOrder, isLocked bool) ([]*Message, error)
- func (pm *ProtocolManager) GetUserNodeID() (*discover.NodeID, error)
- func (pm *ProtocolManager) HandleAddFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleAddFriendOplogs(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleAddPendingFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleAddPendingFriendOplogs(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleFailedFriendOplog(oplog *pkgservice.BaseOplog) (err error)
- func (pm *ProtocolManager) HandleFailedValidFriendOplog(oplog *pkgservice.BaseOplog, processInfo pkgservice.ProcessInfo) (err error)
- func (pm *ProtocolManager) HandleForceSyncFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleForceSyncFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleForceSyncFriendOplogByMerkle(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleForceSyncFriendOplogByMerkleAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleForceSyncFriendOplogByOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleFriendOplogs(oplogs []*pkgservice.BaseOplog, peer *pkgservice.PttPeer, ...) error
- func (pm *ProtocolManager) HandleInitFriendInfo(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleInitFriendInfoAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleInitFriendInfoAckCore(initFriendInfoAck *InitFriendInfoAck, oplog *pkgservice.BaseOplog, ...) error
- func (pm *ProtocolManager) HandleMessage(op pkgservice.OpType, dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleNonRegisteredMessage(op pkgservice.OpType, dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandlePendingFriendOplogs(oplogs []*pkgservice.BaseOplog, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncCreateMessage(dataBytes []byte, peer *pkgservice.PttPeer, syncAckMsg pkgservice.OpType) error
- func (pm *ProtocolManager) HandleSyncCreateMessageAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncCreateMessageBlockAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncFriendOplogInvalid(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncMessageBlock(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncNewFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncNewFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncPendingFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) HandleSyncPendingFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) InitFriendInfo(peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) InitFriendInfoAck(peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) InitFriendInfoAckCore(peer *pkgservice.PttPeer) (*InitFriendInfoAck, error)
- func (pm *ProtocolManager) LoadPeers() error
- func (pm *ProtocolManager) NewFriendOplog(objID *types.PttID, op pkgservice.OpType, opData pkgservice.OpData) (pkgservice.Oplog, error)
- func (pm *ProtocolManager) NewFriendOplogWithTS(objID *types.PttID, ts types.Timestamp, op pkgservice.OpType, ...) (pkgservice.Oplog, error)
- func (pm *ProtocolManager) NewMessage(theData pkgservice.CreateData) (pkgservice.Object, pkgservice.OpData, error)
- func (pm *ProtocolManager) SaveLastSeen(ts types.Timestamp) (types.Timestamp, error)
- func (pm *ProtocolManager) SetFriendDB(oplog *pkgservice.BaseOplog)
- func (pm *ProtocolManager) SetFriendOplogIsSync(oplog *FriendOplog, isBroadcast bool) (bool, error)
- func (pm *ProtocolManager) SetMessageDB(m *Message)
- func (pm *ProtocolManager) SetNewestFriendOplog(oplog *pkgservice.BaseOplog) (err error)
- func (pm *ProtocolManager) Start() error
- func (pm *ProtocolManager) Stop() error
- func (pm *ProtocolManager) Sync(peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) SyncFriendOplog(peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) SyncMessage(op pkgservice.OpType, syncIDs []*pkgservice.SyncID, peer *pkgservice.PttPeer) error
- func (pm *ProtocolManager) SyncMessageBlock(op pkgservice.OpType, syncBlockIDs []*pkgservice.SyncBlockID, ...) error
- func (pm *ProtocolManager) SyncPendingFriendOplog(peer *pkgservice.PttPeer) error
- type ServiceProtocolManager
- func (spm *ServiceProtocolManager) CreateFriend(friendID *types.PttID) (*Friend, error)
- func (spm *ServiceProtocolManager) GetFriendByFriendID(friendID *types.PttID) (*Friend, error)
- func (spm *ServiceProtocolManager) GetFriendEntityByFriendID(friendID *types.PttID) (*Friend, error)
- func (spm *ServiceProtocolManager) GetFriendList(startingFriendID *types.PttID, limit int, listOrder pttdb.ListOrder) ([]*Friend, error)
- func (spm *ServiceProtocolManager) GetFriendListByMsgCreateTS(startingTS types.Timestamp, limit int, listOrder pttdb.ListOrder) ([]*Friend, error)
- func (spm *ServiceProtocolManager) NewEmptyEntity() pkgservice.Entity
- func (spm *ServiceProtocolManager) NewFriend(theData pkgservice.CreateData, ptt pkgservice.Ptt, service pkgservice.Service) (pkgservice.Entity, pkgservice.OpData, error)
- func (spm *ServiceProtocolManager) NewFriendOplogWithTS(entityID *types.PttID, ts types.Timestamp, op pkgservice.OpType, ...) (pkgservice.Oplog, error)
- type SyncMessageAck
Constants ¶
View Source
const ( FriendOpTypeInvalid pkgservice.OpType = iota FriendOpTypeCreateFriend FriendOpTypeDeleteFriend FriendOpTypeCreateMessage FriendOpTypeCreateMedia NFriendOpType )
optype
View Source
const ( // friend-oplog AddFriendOplogMsg pkgservice.OpType //30 AddFriendOplogsMsg AddPendingFriendOplogMsg AddPendingFriendOplogsMsg SyncFriendOplogMsg SyncFriendOplogAckMsg SyncFriendOplogNewOplogsMsg SyncFriendOplogNewOplogsAckMsg InvalidSyncFriendOplogMsg ForceSyncFriendOplogMsg ForceSyncFriendOplogAckMsg ForceSyncFriendOplogByMerkleMsg ForceSyncFriendOplogByMerkleAckMsg ForceSyncFriendOplogByOplogAckMsg SyncPendingFriendOplogMsg SyncPendingFriendOplogAckMsg SyncCreateMessageMsg SyncCreateMessageAckMsg SyncCreateMessageBlockMsg SyncCreateMessageBlockAckMsg // init friend info InitFriendInfoMsg InitFriendInfoAckMsg )
protocol
View Source
const (
MaxMasters = 2
)
max-masters
View Source
const (
NFirstLineInBlock = 20
)
message
Variables ¶
View Source
var ( DBFriendIdxPrefix = []byte(".frix") DBFriendIdx2Prefix = []byte(".fri2") DBFriendPrefix = []byte(".frdb") DBFriendOplogPrefix = []byte(".frlg") DBFriendIdxOplogPrefix = []byte(".frig") DBFriendMerkleOplogPrefix = []byte(".frmk") DBMessagePrefix = []byte(".mgdb") DBMessageIdxPrefix = []byte(".mgix") DBLastSeenPrefix = []byte(".frls") DBMessageCreateTSPrefix = []byte(".frmc") DBMessageCreateTSIdxPrefix = []byte(".mcix") DBMessageCreateTS2Prefix = []byte(".mcdb") DBFriendListSeenPrefix = []byte(".frsn") )
db
View Source
var ( MaxSyncRandomSeconds = 20 MinSyncRandomSeconds = 10 )
sync
View Source
var ( RenewOpKeySeconds int64 = 86400 ExpireOpKeySeconds int64 = 259200 )
op-key
View Source
var ( DefaultConfig = Config{ DataDir: filepath.Join(node.DefaultDataDir(), "friend"), MaxSyncRandomSeconds: 20, MinSyncRandomSeconds: 10, } )
config
View Source
var (
ErrInvalidFriend = errors.New("invalid friend")
)
Functions ¶
func FriendOplogsToOplogs ¶
func FriendOplogsToOplogs(typedLogs []*FriendOplog) []*pkgservice.BaseOplog
func InitFriend ¶
func MessagesToObjs ¶
func MessagesToObjs(typedObjs []*Message) []pkgservice.Object
func NewEmptyApproveJoinFriend ¶
func NewEmptyApproveJoinFriend() *pkgservice.ApproveJoinEntity
func TeardownFriend ¶
func TeardownFriend()
Types ¶
type ApproveJoin ¶
type ApproveJoin struct { Friend *Friend `json:"f"` Oplog0 *pkgservice.BaseOplog `json:"0"` MasterLogs []*pkgservice.BaseOplog `json:"M"` MemberLogs []*pkgservice.BaseOplog `json:"m"` OpKey *pkgservice.KeyInfo `json:"O"` OpKeyLog *pkgservice.BaseOplog `json:"o"` }
type Backend ¶
type Backend struct { *pkgservice.BaseService // contains filtered or unexported fields }
func NewBackend ¶
func NewBackend(ctx *pkgservice.ServiceContext, cfg *Config, id *types.PttID, ptt pkgservice.Ptt, accountBackend *account.Backend, contentBackend *content.Backend) (*Backend, error)
func (*Backend) CreateMessage ¶
func (*Backend) ForceSyncFriendMerkle ¶
func (*Backend) GetFriend ¶
func (b *Backend) GetFriend(entityIDBytes []byte) (*BackendGetFriend, error)
func (*Backend) GetFriendByFriendID ¶
func (b *Backend) GetFriendByFriendID(friendIDBytes []byte) (*BackendGetFriend, error)
func (*Backend) GetFriendList ¶
func (*Backend) GetFriendListByMsgCreateTS ¶
func (*Backend) GetFriendOplogList ¶
func (*Backend) GetFriendOplogMerkleNodeList ¶
func (b *Backend) GetFriendOplogMerkleNodeList(entityIDBytes []byte, level pkgservice.MerkleTreeLevel, startKey []byte, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.BackendMerkleNode, error)
func (*Backend) GetMessageBlockList ¶
func (*Backend) GetMessageList ¶
func (*Backend) GetPendingFriendOplogInternalList ¶
func (*Backend) GetPendingFriendOplogMasterList ¶
func (*Backend) GetRawFriend ¶
func (*Backend) MarkFriendListSeen ¶
func (*Backend) MarkFriendSeen ¶
type BackendCreateMessage ¶
type BackendGetFriend ¶
type BackendGetFriend struct { ID *types.PttID FriendID *types.PttID `json:"FID"` Name []byte `json:"N"` BoardID *types.PttID `json:"BID"` Status types.Status `json:"S"` ArticleCreateTS types.Timestamp //`json:"ACT"` LastSeen types.Timestamp `json:"LT"` }
BackendGetFriend provides just UserName and nothing else for saving the bandwidth
type BackendGetMessage ¶
type BackendMessageBlock ¶
type BackendMessageBlock struct { V types.Version ID *types.PttID MessageID *types.PttID `json:"AID"` ObjID *types.PttID `json:"RID"` BlockID uint32 `json:"BID"` Status types.Status `json:"S"` CreateTS types.Timestamp `json:"CT"` UpdateTS types.Timestamp `json:"UT"` CreatorID *types.PttID `json:"CID"` UpdaterID *types.PttID `json:"UID"` Buf [][]byte `json:"B"` }
type CreateMessage ¶
type Friend ¶
type Friend struct { *pkgservice.BaseEntity `json:"e"` UpdateTS types.Timestamp `json:"UT"` Friend0ID *types.PttID `json:"f0"` Friend1ID *types.PttID `json:"f1"` FriendID *types.PttID `json:"f"` BoardID *types.PttID `json:"BID,omitempty"` Board *content.Board `json:"-"` ProfileID *types.PttID `json:"PID,omitempty"` Profile *account.Profile `json:"-"` // get from other dbs LastSeen types.Timestamp `json:"-"` MessageCreateTS types.Timestamp `json:"-"` }
func NewEmptyFriend ¶
func NewEmptyFriend() *Friend
func NewFriend ¶
func NewFriend(friendID *types.PttID, ptt pkgservice.Ptt, service pkgservice.Service, spm pkgservice.ServiceProtocolManager, dbLock *types.LockMap) (*Friend, error)
func (*Friend) GetUpdateTS ¶
func (*Friend) Init ¶
func (f *Friend) Init(ptt pkgservice.Ptt, service pkgservice.Service, spm pkgservice.ServiceProtocolManager) error
func (*Friend) InitPM ¶
func (f *Friend) InitPM(ptt pkgservice.Ptt, service pkgservice.Service) error
func (*Friend) LoadMessageCreateTS ¶
func (*Friend) LoadMessageCreateTS2 ¶
func (*Friend) MarshalKey ¶
func (*Friend) MarshalLastSeenKey ¶
func (*Friend) MarshalMessageCreateTSIdxKey ¶
func (*Friend) MarshalMessageCreateTSKey ¶
func (*Friend) MarshalMessageCreateTSKey2 ¶
func (*Friend) SaveMessageCreateTS2 ¶
func (*Friend) SetUpdateTS ¶
type FriendOpCreateFriend ¶
type FriendOpCreateMedia ¶
type FriendOpCreateMessage ¶
type FriendOpDeleteFriend ¶
type FriendOpDeleteFriend struct { }
type FriendOplog ¶
type FriendOplog struct {
*pkgservice.BaseOplog `json:"O"`
}
func NewFriendOplog ¶
func OplogToFriendOplog ¶
func OplogToFriendOplog(oplog *pkgservice.BaseOplog) *FriendOplog
func OplogsToFriendOplogs ¶
func OplogsToFriendOplogs(logs []*pkgservice.BaseOplog) []*FriendOplog
func (*FriendOplog) GetBaseOplog ¶
func (o *FriendOplog) GetBaseOplog() *pkgservice.BaseOplog
type InitFriendInfo ¶
type InitFriendInfo struct { ProfileData *account.ApproveJoinEntity `json:"P"` BoardData *pkgservice.ApproveJoinEntity `json:"b"` }
type InitFriendInfoAck ¶
type InitFriendInfoAck struct { FriendData *pkgservice.ApproveJoinEntity `json:"F"` ProfileData *account.ApproveJoinEntity `json:"P"` BoardData *pkgservice.ApproveJoinEntity `json:"b"` }
type Message ¶
type Message struct { *pkgservice.BaseObject `json:"b"` UpdateTS types.Timestamp `json:"UT"` SyncInfo *pkgservice.BaseSyncInfo `json:"s,omitempty"` }
func AliveMessages ¶
func NewEmptyMessage ¶
func NewEmptyMessage() *Message
func NewMessage ¶
func ObjsToMessages ¶
func ObjsToMessages(objs []pkgservice.Object) []*Message
func (*Message) GetNewObjByID ¶
func (*Message) GetSyncInfo ¶
func (m *Message) GetSyncInfo() pkgservice.SyncInfo
func (*Message) GetUpdateTS ¶
func (*Message) MarshalKey ¶
func (*Message) NewEmptyObj ¶
func (m *Message) NewEmptyObj() pkgservice.Object
func (*Message) SetSyncInfo ¶
func (m *Message) SetSyncInfo(theSyncInfo pkgservice.SyncInfo) error
func (*Message) SetUpdateTS ¶
type PrivateAPI ¶
type PrivateAPI struct {
// contains filtered or unexported fields
}
func NewPrivateAPI ¶
func NewPrivateAPI(b *Backend) *PrivateAPI
func (*PrivateAPI) CountPeers ¶
func (api *PrivateAPI) CountPeers(entityID string) (int, error)
func (*PrivateAPI) CreateMessage ¶
func (api *PrivateAPI) CreateMessage(entityID string, message [][]byte, mediaIDs []string) (*BackendCreateMessage, error)
func (*PrivateAPI) DeleteFriend ¶
func (api *PrivateAPI) DeleteFriend(entityID string) (bool, error)
func (*PrivateAPI) ForceOpKey ¶
func (api *PrivateAPI) ForceOpKey(entityID string) (bool, error)
func (*PrivateAPI) ForceSyncFriendMerkle ¶
func (api *PrivateAPI) ForceSyncFriendMerkle(entityID string) (bool, error)
func (*PrivateAPI) ForceSyncMasterMerkle ¶
func (api *PrivateAPI) ForceSyncMasterMerkle(entityID string) (bool, error)
func (*PrivateAPI) ForceSyncMemberMerkle ¶
func (api *PrivateAPI) ForceSyncMemberMerkle(entityID string) (bool, error)
func (*PrivateAPI) GetFriend ¶
func (api *PrivateAPI) GetFriend(entityID string) (*BackendGetFriend, error)
func (*PrivateAPI) GetFriendByFriendID ¶
func (api *PrivateAPI) GetFriendByFriendID(friendID string) (*BackendGetFriend, error)
func (*PrivateAPI) GetFriendList ¶
func (api *PrivateAPI) GetFriendList(startingFriendID string, limit int) ([]*BackendGetFriend, error)
func (*PrivateAPI) GetFriendListByMsgCreateTS ¶
func (api *PrivateAPI) GetFriendListByMsgCreateTS(ts int64, nanoTS uint32, limit int, listOrder pttdb.ListOrder) ([]*BackendGetFriend, error)
func (*PrivateAPI) GetFriendListSeen ¶
func (api *PrivateAPI) GetFriendListSeen() (types.Timestamp, error)
func (*PrivateAPI) GetFriendOplogList ¶
func (api *PrivateAPI) GetFriendOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
func (*PrivateAPI) GetFriendOplogMerkleNodeList ¶
func (api *PrivateAPI) GetFriendOplogMerkleNodeList(entityID string, level uint8, startKey []byte, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.BackendMerkleNode, error)
func (*PrivateAPI) GetMasterList ¶
func (api *PrivateAPI) GetMasterList(entityID string, startID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.Master, error)
func (*PrivateAPI) GetMasterListFromCache ¶
func (api *PrivateAPI) GetMasterListFromCache(entityID string) ([]*pkgservice.Master, error)
func (*PrivateAPI) GetMasterOplogList ¶
func (api *PrivateAPI) GetMasterOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MasterOplog, error)
func (*PrivateAPI) GetMasterOplogMerkleNodeList ¶
func (api *PrivateAPI) GetMasterOplogMerkleNodeList(entityID string, level uint8, startKey []byte, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.BackendMerkleNode, error)
func (*PrivateAPI) GetMemberList ¶
func (api *PrivateAPI) GetMemberList(entityID string, startID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.Member, error)
func (*PrivateAPI) GetMemberOplogList ¶
func (api *PrivateAPI) GetMemberOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MemberOplog, error)
func (*PrivateAPI) GetMemberOplogMerkleNodeList ¶
func (api *PrivateAPI) GetMemberOplogMerkleNodeList(entityID string, level uint8, startKey []byte, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.BackendMerkleNode, error)
func (*PrivateAPI) GetMessageBlockList ¶
func (api *PrivateAPI) GetMessageBlockList(entityID string, messageID string, dummy0 string, dummy1 pkgservice.ContentType, dummy2 uint32, limit uint32) ([]*BackendMessageBlock, error)
func (*PrivateAPI) GetMessageList ¶
func (api *PrivateAPI) GetMessageList(entityID string, startingMessageID string, limit int, listOrder pttdb.ListOrder) ([]*BackendGetMessage, error)
func (*PrivateAPI) GetMyMemberLog ¶
func (api *PrivateAPI) GetMyMemberLog(entityID string) (*pkgservice.BaseOplog, error)
func (*PrivateAPI) GetOpKeyInfos ¶
func (api *PrivateAPI) GetOpKeyInfos(entityID string) ([]*pkgservice.KeyInfo, error)
func (*PrivateAPI) GetOpKeyInfosFromDB ¶
func (api *PrivateAPI) GetOpKeyInfosFromDB(entityID string) ([]*pkgservice.KeyInfo, error)
func (*PrivateAPI) GetOpKeyOplogList ¶
func (api *PrivateAPI) GetOpKeyOplogList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.OpKeyOplog, error)
func (*PrivateAPI) GetPeers ¶
func (api *PrivateAPI) GetPeers(entityID string) ([]*pkgservice.BackendPeer, error)
func (*PrivateAPI) GetPendingFriendOplogInternalList ¶
func (api *PrivateAPI) GetPendingFriendOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
func (*PrivateAPI) GetPendingFriendOplogMasterList ¶
func (api *PrivateAPI) GetPendingFriendOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*FriendOplog, error)
func (*PrivateAPI) GetPendingMasterOplogInternalList ¶
func (api *PrivateAPI) GetPendingMasterOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MasterOplog, error)
func (*PrivateAPI) GetPendingMasterOplogMasterList ¶
func (api *PrivateAPI) GetPendingMasterOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MasterOplog, error)
func (*PrivateAPI) GetPendingMemberOplogInternalList ¶
func (api *PrivateAPI) GetPendingMemberOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MemberOplog, error)
func (*PrivateAPI) GetPendingMemberOplogMasterList ¶
func (api *PrivateAPI) GetPendingMemberOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MemberOplog, error)
func (*PrivateAPI) GetPendingOpKeyOplogInternalList ¶
func (api *PrivateAPI) GetPendingOpKeyOplogInternalList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.OpKeyOplog, error)
func (*PrivateAPI) GetPendingOpKeyOplogMasterList ¶
func (api *PrivateAPI) GetPendingOpKeyOplogMasterList(entityID string, logID string, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.OpKeyOplog, error)
func (*PrivateAPI) GetRawFriend ¶
func (api *PrivateAPI) GetRawFriend(entityID string) (*Friend, error)
func (*PrivateAPI) MarkFriendListSeen ¶
func (api *PrivateAPI) MarkFriendListSeen() (types.Timestamp, error)
func (*PrivateAPI) MarkFriendSeen ¶
func (api *PrivateAPI) MarkFriendSeen(entityID string) (types.Timestamp, error)
func (*PrivateAPI) RevokeOpKey ¶
func (*PrivateAPI) ShowValidateKey ¶
func (api *PrivateAPI) ShowValidateKey() (*types.PttID, error)
func (*PrivateAPI) ValidateValidateKey ¶
func (api *PrivateAPI) ValidateValidateKey(key string) (bool, error)
type ProcessFriendInfo ¶
type ProcessFriendInfo struct { CreateMessageInfo map[types.PttID]*pkgservice.BaseOplog CreateMediaInfo map[types.PttID]*pkgservice.BaseOplog BlockInfo map[types.PttID]*pkgservice.BaseOplog FriendInfo map[types.PttID]*pkgservice.BaseOplog }
func NewProcessFriendInfo ¶
func NewProcessFriendInfo() *ProcessFriendInfo
type ProtocolManager ¶
type ProtocolManager struct { *pkgservice.BaseProtocolManager // contains filtered or unexported fields }
func NewProtocolManager ¶
func NewProtocolManager(f *Friend, ptt pkgservice.Ptt, svc pkgservice.Service) (*ProtocolManager, error)
func (*ProtocolManager) ApproveJoinFriend ¶
func (pm *ProtocolManager) ApproveJoinFriend(joinEntity *pkgservice.JoinEntity, keyInfo *pkgservice.KeyInfo, peer *pkgservice.PttPeer) (*pkgservice.KeyInfo, interface{}, error)
func (*ProtocolManager) BroadcastFriendOplog ¶
func (pm *ProtocolManager) BroadcastFriendOplog(oplog *FriendOplog) error
func (*ProtocolManager) BroadcastFriendOplogs ¶
func (pm *ProtocolManager) BroadcastFriendOplogs(opKeyLogs []*FriendOplog) error
func (*ProtocolManager) CleanObject ¶
func (pm *ProtocolManager) CleanObject() error
func (*ProtocolManager) CreateFriendOplog ¶
func (pm *ProtocolManager) CreateFriendOplog(objID *types.PttID, ts types.Timestamp, op pkgservice.OpType, data interface{}) (*FriendOplog, error)
func (*ProtocolManager) CreateMessage ¶
func (*ProtocolManager) DeleteFriend ¶
func (pm *ProtocolManager) DeleteFriend() error
func (*ProtocolManager) Fix141MasterOplog ¶
func (pm *ProtocolManager) Fix141MasterOplog() error
func (*ProtocolManager) ForceSyncFriendMerkle ¶
func (pm *ProtocolManager) ForceSyncFriendMerkle() (bool, error)
func (*ProtocolManager) GetFriendOplogList ¶
func (pm *ProtocolManager) GetFriendOplogList(logID *types.PttID, limit int, listOrder pttdb.ListOrder, status types.Status) ([]*FriendOplog, error)
GetFriendOplogList gets the FriendOplogs.
func (*ProtocolManager) GetFriendOplogMerkleNodeList ¶
func (pm *ProtocolManager) GetFriendOplogMerkleNodeList(level pkgservice.MerkleTreeLevel, startKey []byte, limit int, listOrder pttdb.ListOrder) ([]*pkgservice.MerkleNode, error)
func (*ProtocolManager) GetMessageBlockList ¶
func (pm *ProtocolManager) GetMessageBlockList(msgID *types.PttID, limit uint32) (*Message, []*pkgservice.ContentBlock, error)
func (*ProtocolManager) GetMessageList ¶
func (*ProtocolManager) GetUserNodeID ¶
func (pm *ProtocolManager) GetUserNodeID() (*discover.NodeID, error)
func (*ProtocolManager) HandleAddFriendOplog ¶
func (pm *ProtocolManager) HandleAddFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleAddFriendOplogs ¶
func (pm *ProtocolManager) HandleAddFriendOplogs(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleAddPendingFriendOplog ¶
func (pm *ProtocolManager) HandleAddPendingFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleAddPendingFriendOplogs ¶
func (pm *ProtocolManager) HandleAddPendingFriendOplogs(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleFailedFriendOplog ¶
func (pm *ProtocolManager) HandleFailedFriendOplog(oplog *pkgservice.BaseOplog) (err error)
func (*ProtocolManager) HandleFailedValidFriendOplog ¶
func (pm *ProtocolManager) HandleFailedValidFriendOplog(oplog *pkgservice.BaseOplog, processInfo pkgservice.ProcessInfo) (err error)
func (*ProtocolManager) HandleForceSyncFriendOplog ¶
func (pm *ProtocolManager) HandleForceSyncFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleForceSyncFriendOplogAck ¶
func (pm *ProtocolManager) HandleForceSyncFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleForceSyncFriendOplogByMerkle ¶
func (pm *ProtocolManager) HandleForceSyncFriendOplogByMerkle(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleForceSyncFriendOplogByMerkleAck ¶
func (pm *ProtocolManager) HandleForceSyncFriendOplogByMerkleAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleForceSyncFriendOplogByOplogAck ¶
func (pm *ProtocolManager) HandleForceSyncFriendOplogByOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleFriendOplogs ¶
func (pm *ProtocolManager) HandleFriendOplogs(oplogs []*pkgservice.BaseOplog, peer *pkgservice.PttPeer, isUpdateSyncTime bool) error
func (*ProtocolManager) HandleInitFriendInfo ¶
func (pm *ProtocolManager) HandleInitFriendInfo(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleInitFriendInfoAck ¶
func (pm *ProtocolManager) HandleInitFriendInfoAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleInitFriendInfoAckCore ¶
func (pm *ProtocolManager) HandleInitFriendInfoAckCore( initFriendInfoAck *InitFriendInfoAck, oplog *pkgservice.BaseOplog, peer *pkgservice.PttPeer, isNew bool, isLocked bool, ) error
func (*ProtocolManager) HandleMessage ¶
func (pm *ProtocolManager) HandleMessage(op pkgservice.OpType, dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleNonRegisteredMessage ¶
func (pm *ProtocolManager) HandleNonRegisteredMessage(op pkgservice.OpType, dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandlePendingFriendOplogs ¶
func (pm *ProtocolManager) HandlePendingFriendOplogs(oplogs []*pkgservice.BaseOplog, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncCreateMessage ¶
func (pm *ProtocolManager) HandleSyncCreateMessage(dataBytes []byte, peer *pkgservice.PttPeer, syncAckMsg pkgservice.OpType) error
func (*ProtocolManager) HandleSyncCreateMessageAck ¶
func (pm *ProtocolManager) HandleSyncCreateMessageAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncCreateMessageBlockAck ¶
func (pm *ProtocolManager) HandleSyncCreateMessageBlockAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncFriendOplog ¶
func (pm *ProtocolManager) HandleSyncFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncFriendOplogAck ¶
func (pm *ProtocolManager) HandleSyncFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncFriendOplogInvalid ¶
func (pm *ProtocolManager) HandleSyncFriendOplogInvalid(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncMessageBlock ¶
func (pm *ProtocolManager) HandleSyncMessageBlock(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncNewFriendOplog ¶
func (pm *ProtocolManager) HandleSyncNewFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncNewFriendOplogAck ¶
func (pm *ProtocolManager) HandleSyncNewFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncPendingFriendOplog ¶
func (pm *ProtocolManager) HandleSyncPendingFriendOplog(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) HandleSyncPendingFriendOplogAck ¶
func (pm *ProtocolManager) HandleSyncPendingFriendOplogAck(dataBytes []byte, peer *pkgservice.PttPeer) error
func (*ProtocolManager) InitFriendInfo ¶
func (pm *ProtocolManager) InitFriendInfo(peer *pkgservice.PttPeer) error
func (*ProtocolManager) InitFriendInfoAck ¶
func (pm *ProtocolManager) InitFriendInfoAck(peer *pkgservice.PttPeer) error
func (*ProtocolManager) InitFriendInfoAckCore ¶
func (pm *ProtocolManager) InitFriendInfoAckCore(peer *pkgservice.PttPeer) (*InitFriendInfoAck, error)
func (*ProtocolManager) LoadPeers ¶
func (pm *ProtocolManager) LoadPeers() error
func (*ProtocolManager) NewFriendOplog ¶
func (pm *ProtocolManager) NewFriendOplog(objID *types.PttID, op pkgservice.OpType, opData pkgservice.OpData) (pkgservice.Oplog, error)
func (*ProtocolManager) NewFriendOplogWithTS ¶
func (pm *ProtocolManager) NewFriendOplogWithTS(objID *types.PttID, ts types.Timestamp, op pkgservice.OpType, opData pkgservice.OpData) (pkgservice.Oplog, error)
func (*ProtocolManager) NewMessage ¶
func (pm *ProtocolManager) NewMessage(theData pkgservice.CreateData) (pkgservice.Object, pkgservice.OpData, error)
func (*ProtocolManager) SaveLastSeen ¶
func (*ProtocolManager) SetFriendDB ¶
func (pm *ProtocolManager) SetFriendDB(oplog *pkgservice.BaseOplog)
func (*ProtocolManager) SetFriendOplogIsSync ¶
func (pm *ProtocolManager) SetFriendOplogIsSync(oplog *FriendOplog, isBroadcast bool) (bool, error)
func (*ProtocolManager) SetMessageDB ¶
func (pm *ProtocolManager) SetMessageDB(m *Message)
func (*ProtocolManager) SetNewestFriendOplog ¶
func (pm *ProtocolManager) SetNewestFriendOplog(oplog *pkgservice.BaseOplog) (err error)
func (*ProtocolManager) Start ¶
func (pm *ProtocolManager) Start() error
func (*ProtocolManager) Stop ¶
func (pm *ProtocolManager) Stop() error
func (*ProtocolManager) Sync ¶
func (pm *ProtocolManager) Sync(peer *pkgservice.PttPeer) error
func (*ProtocolManager) SyncFriendOplog ¶
func (pm *ProtocolManager) SyncFriendOplog(peer *pkgservice.PttPeer) error
func (*ProtocolManager) SyncMessage ¶
func (pm *ProtocolManager) SyncMessage(op pkgservice.OpType, syncIDs []*pkgservice.SyncID, peer *pkgservice.PttPeer) error
func (*ProtocolManager) SyncMessageBlock ¶
func (pm *ProtocolManager) SyncMessageBlock(op pkgservice.OpType, syncBlockIDs []*pkgservice.SyncBlockID, peer *pkgservice.PttPeer) error
func (*ProtocolManager) SyncPendingFriendOplog ¶
func (pm *ProtocolManager) SyncPendingFriendOplog(peer *pkgservice.PttPeer) error
type ServiceProtocolManager ¶
type ServiceProtocolManager struct {
*pkgservice.BaseServiceProtocolManager
}
func NewServiceProtocolManager ¶
func NewServiceProtocolManager(ptt pkgservice.Ptt, service pkgservice.Service) (*ServiceProtocolManager, error)
func (*ServiceProtocolManager) CreateFriend ¶
func (spm *ServiceProtocolManager) CreateFriend(friendID *types.PttID) (*Friend, error)
func (*ServiceProtocolManager) GetFriendByFriendID ¶
func (spm *ServiceProtocolManager) GetFriendByFriendID(friendID *types.PttID) (*Friend, error)
func (*ServiceProtocolManager) GetFriendEntityByFriendID ¶
func (spm *ServiceProtocolManager) GetFriendEntityByFriendID(friendID *types.PttID) (*Friend, error)
func (*ServiceProtocolManager) GetFriendList ¶
func (*ServiceProtocolManager) GetFriendListByMsgCreateTS ¶
func (*ServiceProtocolManager) NewEmptyEntity ¶
func (spm *ServiceProtocolManager) NewEmptyEntity() pkgservice.Entity
func (*ServiceProtocolManager) NewFriend ¶
func (spm *ServiceProtocolManager) NewFriend(theData pkgservice.CreateData, ptt pkgservice.Ptt, service pkgservice.Service) (pkgservice.Entity, pkgservice.OpData, error)
func (*ServiceProtocolManager) NewFriendOplogWithTS ¶
func (spm *ServiceProtocolManager) NewFriendOplogWithTS(entityID *types.PttID, ts types.Timestamp, op pkgservice.OpType, opData pkgservice.OpData) (pkgservice.Oplog, error)
type SyncMessageAck ¶
type SyncMessageAck struct {
Objs []*Message `json:"o"`
}
Source Files ¶
- api.go
- backend.go
- backend_core.go
- backend_types.go
- config.go
- errors.go
- friend.go
- friend_oplog.go
- friend_oplog_types.go
- globals.go
- message.go
- protocol_approve_join_friend.go
- protocol_clean_object.go
- protocol_create_friend.go
- protocol_create_message.go
- protocol_create_message_logs.go
- protocol_delete_friend.go
- protocol_delete_friend_logs.go
- protocol_fix_141_master_oplog.go
- protocol_friend_oplog.go
- protocol_get_friend_by_friend_id.go
- protocol_get_friend_list.go
- protocol_get_friend_list_by_msg_create_ts.go
- protocol_get_friend_oplog_list.go
- protocol_get_message_block_list.go
- protocol_get_message_list.go
- protocol_handle_friend_oplog.go
- protocol_handle_friend_oplogs.go
- protocol_init_friend_info.go
- protocol_init_friend_info_ack.go
- protocol_manager.go
- protocol_manager_utils_handle_message.go
- protocol_manager_utils_peer.go
- protocol_save_last_seen.go
- protocol_sync_create_message.go
- protocol_sync_create_message_ack.go
- protocol_sync_friend_oplog.go
- service_protocol_manager.go
Click to show internal directories.
Click to hide internal directories.