Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • J jami-daemon
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 111
    • Issues 111
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • savoirfairelinux
  • jami-daemon
  • Issues
  • #28
Closed
Open
Created Apr 17, 2017 by RingBot@RingBotOwner

"Blob" class split for increased clarity

Issue generated from Tuleap's migration script. Originally submitted by: Macony Gautradis (teamlog8430)

The Account class is showing the first signs of becoming a monolithic "Blob" antipattern. Our solution is to split the "Blob" class into multiple separate subclasses, by issues, used to ease maintenance and upgrades of the code by separating relevant and linked methods into more descriptive subclasses. This initial work splits some functions of Account into the CodecContainer subclass.

The other modifications were made throughout the project to reflect the changes to Account. The makefile was updated to automake using our new class.

Here is a more thorough list of changes:
CHANGED FILES:
(all in daemon/)
MAJOR CHANGES:
src/account.h
src/account.cpp
description: Removed ALL codec-related functions, added CodecContainer class to
replace said functions,
added std::shared_ptr codecContainer_; and
std::shared_ptr getCodecContainer(); definitions
Removed #include "media_codec.h" because it makes no sense to have
it here anymore

    src/codeccontainer.h  
    src/codeccontainer.cpp  
    description: Created these two files and moved all codec-related code in   
				 account.h/account.cpp to these respective files, creating   
				 the CodecContainer class  
                 in the process  
                 Migrated code was cleaned up a bit - references to getSystemCodecContainer()   
				 changed to already existing member systemCodecContainer\_  

MINOR CHANGES:  
    src/Makefile.am  
    description: Updated automake makefile to compile the new codeccontainer.\* files  

    src/client/configurationmanager.cpp  
    description: Updated references to codec-calling functions  

    src/media/video/video\_sender.cpp  
    description: Added \#include "media\_codec.h" that was implicitly included in account.h   
				 but removed due to codec separation  

    src/sip/sipaccount.cpp  
    description: Updated references to codec-calling functions  

    src/sip/sipcall.cpp  
    description: Updated references to codec-calling functions  

    src/sip/sipvoiplink.cpp  
    description: Updated references to codec-calling functions  

    src/ringdht/ringaccount.cpp  
    description: Updated references to codec-calling functions  

* Was only tested on Mint

RingChanges.zip

Assignee
Assign to
Time tracking