\hypertarget{classCXXGRAPH_1_1Graph__TS}{}\doxysection{CXXGRAPH\+::Graph\+\_\+\+TS$<$ T $>$ Class Template Reference}
\label{classCXXGRAPH_1_1Graph__TS}\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}


Class that implement the Thread Safe \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}}.  




{\ttfamily \#include $<$Graph\+\_\+\+TS.\+hpp$>$}



Inheritance diagram for CXXGRAPH\+::Graph\+\_\+\+TS$<$ T $>$\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/db9/classCXXGRAPH_1_1Graph__TS__inherit__graph}
\end{center}
\end{figure}


Collaboration diagram for CXXGRAPH\+::Graph\+\_\+\+TS$<$ T $>$\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/d57/classCXXGRAPH_1_1Graph__TS__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a3b0246e4e51398138751851a6530b9f0}\label{classCXXGRAPH_1_1Graph__TS_a3b0246e4e51398138751851a6530b9f0}} 
{\bfseries Graph\+\_\+\+TS} (const std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \&edge\+Set)
\item 
\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a45b9c05a40bb887b39a379b964b9f4cf}\label{classCXXGRAPH_1_1Graph__TS_a45b9c05a40bb887b39a379b964b9f4cf}} 
{\bfseries Graph\+\_\+\+TS} (const \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}}$<$ T $>$ \&graph)
\item 
const std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \& \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_aa71357e59aabf422cf1578b94336f7e7}{get\+Edge\+Set}} () const override
\begin{DoxyCompactList}\small\item\em Function that return the \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} set of the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a2fc8067ede63880fd645206ef9a23380}{set\+Edge\+Set}} (std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \&edge\+Set) override
\begin{DoxyCompactList}\small\item\em Function set the \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set of the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a5bdacfe9db0d77fec01c46420d7d7024}{add\+Edge}} (const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$edge) override
\begin{DoxyCompactList}\small\item\em Function add an \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} to the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set Note\+: Thread Safe. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a47b042e4911cd39e0bb78f190e7a454d}{remove\+Edge}} (unsigned long long edge\+Id) override
\begin{DoxyCompactList}\small\item\em Function remove an \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} from the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set Note\+: Thread Safe. \end{DoxyCompactList}\item 
const std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ $\ast$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a2c9873692bef042d5f94ab8e7018bf95}{get\+Node\+Set}} () const override
\begin{DoxyCompactList}\small\item\em Function that return the \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} Set of the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. \end{DoxyCompactList}\item 
const std\+::optional$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a8b4c5d50f2095eed68d11b4bef01b35f}{get\+Edge}} (unsigned long long edge\+Id) const override
\begin{DoxyCompactList}\small\item\em Function that return an \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} with specific ID if Exist in the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_af42c143312089b1b62945a0958041ad1}\label{classCXXGRAPH_1_1Graph__TS_af42c143312089b1b62945a0958041ad1}} 
const Adjacency\+Matrix$<$ T $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_af42c143312089b1b62945a0958041ad1}{get\+Adj\+Matrix}} () const override
\begin{DoxyCompactList}\small\item\em This function generate a list of adjacency matrix with every element of the matrix contain the node where is directed the link and the \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} corrispondent to the link Note\+: Thread Safe. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{structCXXGRAPH_1_1DijkstraResult__struct}{Dijkstra\+Result}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a423f7d958e9c758682178ad6204b81af}{dijkstra}} (const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&source, const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&target) const override
\begin{DoxyCompactList}\small\item\em Function runs the dijkstra algorithm for some source node and target node in the graph and returns the shortest distance of target from the source. Note\+: Thread Safe. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{structCXXGRAPH_1_1BellmanFordResult__struct}{Bellman\+Ford\+Result}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_aa20e497824c23f6c7ed4074ce83e83ec}{bellmanford}} (const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&source, const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&target) const override
\begin{DoxyCompactList}\small\item\em Function runs the bellmanford algorithm for some source node and target node in the graph and returns the shortest distance of target from the source if there is no negative cycle in the graph. Note\+: Thread Safe. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{structCXXGRAPH_1_1FWResult__struct}{FWResult}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_ac8a6fd3000941159525092acc612a34a}{floyd\+Warshall}} () const override
\begin{DoxyCompactList}\small\item\em Function runs the floyd-\/\+Warshall algorithm for every node in the graph and returns the shortest distance of each node from another node if there is no negative cycle in the graph. Note\+: Thread Safe. \end{DoxyCompactList}\item 
const std\+::vector$<$ \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a88122ab10e34ecb9aae4c64c907a82b9}{breadth\+\_\+first\+\_\+search}} (const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&start) const override
\begin{DoxyCompactList}\small\item\em Function performs the breadth first search algorithm over the graph Note\+: Thread Safe. \end{DoxyCompactList}\item 
const std\+::vector$<$ \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_aa8844339395cc7e6cecd1a4e0ab57804}{depth\+\_\+first\+\_\+search}} (const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&start) const override
\begin{DoxyCompactList}\small\item\em Function performs the depth first search algorithm over the graph Note\+: Thread Safe. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_af2c7ac7142b3de0d088a8af736b26f33}{is\+Cyclic\+Directed\+Graph\+DFS}} () const override
\begin{DoxyCompactList}\small\item\em This function uses DFS to check for cycle in the graph. Pay Attention, this function work only with directed \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a71b397271c5157bab1778e5e9341d793}{is\+Cyclic\+Directed\+Graph\+BFS}} () const override
\begin{DoxyCompactList}\small\item\em This function uses BFS to check for cycle in the graph. Pay Attention, this function work only with directed \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a39cf608717962cd84e4a3606135ee1f4}{is\+Directed\+Graph}} () const override
\begin{DoxyCompactList}\small\item\em This function checks if a graph is directed Note\+: Thread Safe. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{structCXXGRAPH_1_1DialResult__struct}{Dial\+Result}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_aec71b7cd4b3460b032806c0b870cdbef}{dial}} (const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&source, int max\+Weight) const override
\begin{DoxyCompactList}\small\item\em This function write the graph in an output file Note\+: Thread Safe. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a5a14ae46f7b1476f03439e7910237948}{write\+To\+File}} (Input\+Output\+Format format=Input\+Output\+Format\+::\+STANDARD\+\_\+\+CSV, const std\+::string \&working\+Dir=\char`\"{}.\char`\"{}, const std\+::string \&OFile\+Name=\char`\"{}graph\char`\"{}, bool compress=false, bool write\+Node\+Feat=false, bool write\+Edge\+Weight=false) const override
\begin{DoxyCompactList}\small\item\em This function write the graph in an output file Note\+: Thread Safe. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a7e43a7d1fa001375edce51d801d6a94f}{read\+From\+File}} (Input\+Output\+Format format=Input\+Output\+Format\+::\+STANDARD\+\_\+\+CSV, const std\+::string \&working\+Dir=\char`\"{}.\char`\"{}, const std\+::string \&OFile\+Name=\char`\"{}graph\char`\"{}, bool compress=false, bool read\+Node\+Feat=false, bool read\+Edge\+Weight=false) override
\begin{DoxyCompactList}\small\item\em This function read the graph from an input file Note\+: Thread Safe. \end{DoxyCompactList}\item 
Partition\+Map$<$ T $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS_a4377de905685f5b82e5326b4708790c0}{partition\+Graph}} (PARTITIONING\+::\+Partition\+Algorithm algorithm, unsigned int number\+Of\+Partitions, double param1=0.\+0, double param2=0.\+0, double param3=0.\+0, unsigned int number\+Ofthreads=std\+::thread\+::hardware\+\_\+concurrency()) const override
\begin{DoxyCompactList}\small\item\em This function partition a graph in a set of partitions Note\+: Thread Safe. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename T$>$\newline
class CXXGRAPH\+::\+Graph\+\_\+\+TS$<$ T $>$}

Class that implement the Thread Safe \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}}. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a5bdacfe9db0d77fec01c46420d7d7024}\label{classCXXGRAPH_1_1Graph__TS_a5bdacfe9db0d77fec01c46420d7d7024}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!addEdge@{addEdge}}
\index{addEdge@{addEdge}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{addEdge()}{addEdge()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::add\+Edge (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$}]{edge }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function add an \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} to the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em edge} & The \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} to insert \\
\hline
\end{DoxyParams}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a95fc676b51609323126e1d6f2366c4bb}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_aa20e497824c23f6c7ed4074ce83e83ec}\label{classCXXGRAPH_1_1Graph__TS_aa20e497824c23f6c7ed4074ce83e83ec}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!bellmanford@{bellmanford}}
\index{bellmanford@{bellmanford}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{bellmanford()}{bellmanford()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const \mbox{\hyperlink{structCXXGRAPH_1_1BellmanFordResult__struct}{Bellman\+Ford\+Result}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::bellmanford (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{source,  }\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{target }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function runs the bellmanford algorithm for some source node and target node in the graph and returns the shortest distance of target from the source if there is no negative cycle in the graph. Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em source} & source vertex \\
\hline
{\em target} & target vertex\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
shortest distance if target is reachable from source else ERROR in case if target is not reachable from source or there is negative cycle or there is error in the computation. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_ae88da3d693fb461b53435d94e12e166c}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a88122ab10e34ecb9aae4c64c907a82b9}\label{classCXXGRAPH_1_1Graph__TS_a88122ab10e34ecb9aae4c64c907a82b9}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!breadth\_first\_search@{breadth\_first\_search}}
\index{breadth\_first\_search@{breadth\_first\_search}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{breadth\_first\_search()}{breadth\_first\_search()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::vector$<$ \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::breadth\+\_\+first\+\_\+search (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{start }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function performs the breadth first search algorithm over the graph Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em start} & \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} from where traversing starts \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a vector of \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} indicating which \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} were visited during the search. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_ae94a68dc57331c26070c3aec035264ef}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_aa8844339395cc7e6cecd1a4e0ab57804}\label{classCXXGRAPH_1_1Graph__TS_aa8844339395cc7e6cecd1a4e0ab57804}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!depth\_first\_search@{depth\_first\_search}}
\index{depth\_first\_search@{depth\_first\_search}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{depth\_first\_search()}{depth\_first\_search()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::vector$<$ \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::depth\+\_\+first\+\_\+search (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{start }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function performs the depth first search algorithm over the graph Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em start} & \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} from where traversing starts \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a vector of \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} indicating which \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} were visited during the search. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a05d230bd6185b99b624227c4c82b7811}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_aec71b7cd4b3460b032806c0b870cdbef}\label{classCXXGRAPH_1_1Graph__TS_aec71b7cd4b3460b032806c0b870cdbef}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!dial@{dial}}
\index{dial@{dial}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{dial()}{dial()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const \mbox{\hyperlink{structCXXGRAPH_1_1DialResult__struct}{Dial\+Result}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::dial (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{source,  }\item[{int}]{max\+Weight }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function write the graph in an output file Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em format} & The Output format of the file \\
\hline
{\em working\+Dir} & The path to the directory in which will be placed the output file \\
\hline
{\em OFile\+Name} & The Output File Name ( ) \\
\hline
{\em compress} & Indicates if the output will be compressed \\
\hline
{\em write\+Node\+Feat} & Indicates if export also \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} Features \\
\hline
{\em write\+Edge\+Weight} & Indicates if export also \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Weights \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if all OK, else return a negative value
\end{DoxyReturn}
Function runs the Dial algorithm (Optimized Dijkstra for small range weights) for some source node and target node in the graph and returns the shortest distance of target from the source. Note\+: Thread Safe


\begin{DoxyParams}{Parameters}
{\em source} & source vertex \\
\hline
{\em max\+Weight} & maximum weight of the edge\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
shortest distance for all nodes reachable from source else ERROR in case there is error in the computation. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a662a0e15cd997252639e7a257b830190}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a423f7d958e9c758682178ad6204b81af}\label{classCXXGRAPH_1_1Graph__TS_a423f7d958e9c758682178ad6204b81af}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!dijkstra@{dijkstra}}
\index{dijkstra@{dijkstra}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{dijkstra()}{dijkstra()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const \mbox{\hyperlink{structCXXGRAPH_1_1DijkstraResult__struct}{Dijkstra\+Result}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::dijkstra (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{source,  }\item[{const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ \&}]{target }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function runs the dijkstra algorithm for some source node and target node in the graph and returns the shortest distance of target from the source. Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em source} & source vertex \\
\hline
{\em target} & target vertex\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
shortest distance if target is reachable from source else ERROR in case if target is not reachable from source or there is error in the computation. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a8d655cd624cedf47ee366d8c0ab31921}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_ac8a6fd3000941159525092acc612a34a}\label{classCXXGRAPH_1_1Graph__TS_ac8a6fd3000941159525092acc612a34a}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!floydWarshall@{floydWarshall}}
\index{floydWarshall@{floydWarshall}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{floydWarshall()}{floydWarshall()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const \mbox{\hyperlink{structCXXGRAPH_1_1FWResult__struct}{FWResult}} \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::floyd\+Warshall\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function runs the floyd-\/\+Warshall algorithm for every node in the graph and returns the shortest distance of each node from another node if there is no negative cycle in the graph. Note\+: Thread Safe. 

\begin{DoxyReturn}{Returns}
shortest distance if any node is reachable from other node else ERROR in case if target is not reachable from source or there is negative cycle or there is error in the computation. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a00b6780a5167547fe05db00e01011223}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a8b4c5d50f2095eed68d11b4bef01b35f}\label{classCXXGRAPH_1_1Graph__TS_a8b4c5d50f2095eed68d11b4bef01b35f}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!getEdge@{getEdge}}
\index{getEdge@{getEdge}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{getEdge()}{getEdge()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::optional$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::get\+Edge (\begin{DoxyParamCaption}\item[{unsigned long long}]{edge\+Id }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function that return an \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} with specific ID if Exist in the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em edge\+Id} & The \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Id to return \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} if exist 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a5ebab9011fe6155743eaa989c2bf7860}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_aa71357e59aabf422cf1578b94336f7e7}\label{classCXXGRAPH_1_1Graph__TS_aa71357e59aabf422cf1578b94336f7e7}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!getEdgeSet@{getEdgeSet}}
\index{getEdgeSet@{getEdgeSet}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{getEdgeSet()}{getEdgeSet()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \& \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::get\+Edge\+Set\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function that return the \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} set of the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. 

\begin{DoxyReturn}{Returns}
a list of Edges of the graph 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a1d00ee150e0876b4edb10616e052021a}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a2c9873692bef042d5f94ab8e7018bf95}\label{classCXXGRAPH_1_1Graph__TS_a2c9873692bef042d5f94ab8e7018bf95}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!getNodeSet@{getNodeSet}}
\index{getNodeSet@{getNodeSet}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{getNodeSet()}{getNodeSet()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
const std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}}$<$ T $>$ $\ast$ $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::get\+Node\+Set\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function that return the \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} Set of the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. 

\begin{DoxyReturn}{Returns}
a list of Nodes of the graph 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_ae68cf3b1eb04907935c032755bd81004}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a71b397271c5157bab1778e5e9341d793}\label{classCXXGRAPH_1_1Graph__TS_a71b397271c5157bab1778e5e9341d793}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!isCyclicDirectedGraphBFS@{isCyclicDirectedGraphBFS}}
\index{isCyclicDirectedGraphBFS@{isCyclicDirectedGraphBFS}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{isCyclicDirectedGraphBFS()}{isCyclicDirectedGraphBFS()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::is\+Cyclic\+Directed\+Graph\+BFS\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function uses BFS to check for cycle in the graph. Pay Attention, this function work only with directed \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. 

\begin{DoxyReturn}{Returns}
true if a cycle is detected, else false. ( false is returned also if the graph in indirected) 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a4f76bb7230c1654dd6b1ec24d0291875}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_af2c7ac7142b3de0d088a8af736b26f33}\label{classCXXGRAPH_1_1Graph__TS_af2c7ac7142b3de0d088a8af736b26f33}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!isCyclicDirectedGraphDFS@{isCyclicDirectedGraphDFS}}
\index{isCyclicDirectedGraphDFS@{isCyclicDirectedGraphDFS}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{isCyclicDirectedGraphDFS()}{isCyclicDirectedGraphDFS()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::is\+Cyclic\+Directed\+Graph\+DFS\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function uses DFS to check for cycle in the graph. Pay Attention, this function work only with directed \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. 

\begin{DoxyReturn}{Returns}
true if a cycle is detected, else false. ( false is returned also if the graph in indirected) 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a91a818601c0df0e5abfbaf4da5918afa}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a39cf608717962cd84e4a3606135ee1f4}\label{classCXXGRAPH_1_1Graph__TS_a39cf608717962cd84e4a3606135ee1f4}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!isDirectedGraph@{isDirectedGraph}}
\index{isDirectedGraph@{isDirectedGraph}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{isDirectedGraph()}{isDirectedGraph()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
bool \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::is\+Directed\+Graph\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function checks if a graph is directed Note\+: Thread Safe. 

\begin{DoxyReturn}{Returns}
true if the graph is directed, else false. 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a5c7ddb5c91f3ab7456c8203a740f52c9}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a4377de905685f5b82e5326b4708790c0}\label{classCXXGRAPH_1_1Graph__TS_a4377de905685f5b82e5326b4708790c0}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!partitionGraph@{partitionGraph}}
\index{partitionGraph@{partitionGraph}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{partitionGraph()}{partitionGraph()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
Partition\+Map$<$ T $>$ \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::partition\+Graph (\begin{DoxyParamCaption}\item[{PARTITIONING\+::\+Partition\+Algorithm}]{algorithm,  }\item[{unsigned int}]{number\+Of\+Partitions,  }\item[{double}]{param1 = {\ttfamily 0.0},  }\item[{double}]{param2 = {\ttfamily 0.0},  }\item[{double}]{param3 = {\ttfamily 0.0},  }\item[{unsigned int}]{number\+Ofthreads = {\ttfamily std\+:\+:thread\+:\+:hardware\+\_\+concurrency()} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function partition a graph in a set of partitions Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em algorithm} & The partition algorithm \\
\hline
{\em number\+Of\+Partition} & The number of partitions \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The partiton Map of the partitioned graph 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a70da23746ecfd20c8b5b226322813af2}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a7e43a7d1fa001375edce51d801d6a94f}\label{classCXXGRAPH_1_1Graph__TS_a7e43a7d1fa001375edce51d801d6a94f}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!readFromFile@{readFromFile}}
\index{readFromFile@{readFromFile}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{readFromFile()}{readFromFile()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::read\+From\+File (\begin{DoxyParamCaption}\item[{Input\+Output\+Format}]{format = {\ttfamily InputOutputFormat\+:\+:STANDARD\+\_\+CSV},  }\item[{const std\+::string \&}]{working\+Dir = {\ttfamily \char`\"{}.\char`\"{}},  }\item[{const std\+::string \&}]{OFile\+Name = {\ttfamily \char`\"{}graph\char`\"{}},  }\item[{bool}]{compress = {\ttfamily false},  }\item[{bool}]{read\+Node\+Feat = {\ttfamily false},  }\item[{bool}]{read\+Edge\+Weight = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function read the graph from an input file Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em format} & The Input format of the file \\
\hline
{\em working\+Dir} & The path to the directory in which is placed the Input file \\
\hline
{\em OFile\+Name} & The Input File Name ( ) \\
\hline
{\em compress} & Indicates if the Input is compressed \\
\hline
{\em read\+Node\+Feat} & Indicates if import also \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} Features \\
\hline
{\em read\+Edge\+Weight} & Indicates if import also \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Weights \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if all OK, else return a negative value 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_abd5baeb88c2b588c14383155fff4ec3e}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a47b042e4911cd39e0bb78f190e7a454d}\label{classCXXGRAPH_1_1Graph__TS_a47b042e4911cd39e0bb78f190e7a454d}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!removeEdge@{removeEdge}}
\index{removeEdge@{removeEdge}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{removeEdge()}{removeEdge()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::remove\+Edge (\begin{DoxyParamCaption}\item[{unsigned long long}]{edge\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function remove an \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} from the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em edge\+Id} & The \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Id to remove \\
\hline
\end{DoxyParams}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_ac1b14104add48bad5524e31b47411d36}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a2fc8067ede63880fd645206ef9a23380}\label{classCXXGRAPH_1_1Graph__TS_a2fc8067ede63880fd645206ef9a23380}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!setEdgeSet@{setEdgeSet}}
\index{setEdgeSet@{setEdgeSet}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{setEdgeSet()}{setEdgeSet()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::set\+Edge\+Set (\begin{DoxyParamCaption}\item[{std\+::list$<$ const \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}}$<$ T $>$ $\ast$ $>$ \&}]{edge\+Set }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Function set the \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set of the \mbox{\hyperlink{classCXXGRAPH_1_1Graph}{Graph}} Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em edge\+Set} & The \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Set \\
\hline
\end{DoxyParams}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_af2cd256d3638bf15ea926b6da6bc6097}{CXXGRAPH\+::\+Graph$<$ T $>$}}.

\mbox{\Hypertarget{classCXXGRAPH_1_1Graph__TS_a5a14ae46f7b1476f03439e7910237948}\label{classCXXGRAPH_1_1Graph__TS_a5a14ae46f7b1476f03439e7910237948}} 
\index{CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}!writeToFile@{writeToFile}}
\index{writeToFile@{writeToFile}!CXXGRAPH::Graph\_TS$<$ T $>$@{CXXGRAPH::Graph\_TS$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{writeToFile()}{writeToFile()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int \mbox{\hyperlink{classCXXGRAPH_1_1Graph__TS}{CXXGRAPH\+::\+Graph\+\_\+\+TS}}$<$ T $>$\+::write\+To\+File (\begin{DoxyParamCaption}\item[{Input\+Output\+Format}]{format = {\ttfamily InputOutputFormat\+:\+:STANDARD\+\_\+CSV},  }\item[{const std\+::string \&}]{working\+Dir = {\ttfamily \char`\"{}.\char`\"{}},  }\item[{const std\+::string \&}]{OFile\+Name = {\ttfamily \char`\"{}graph\char`\"{}},  }\item[{bool}]{compress = {\ttfamily false},  }\item[{bool}]{write\+Node\+Feat = {\ttfamily false},  }\item[{bool}]{write\+Edge\+Weight = {\ttfamily false} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



This function write the graph in an output file Note\+: Thread Safe. 


\begin{DoxyParams}{Parameters}
{\em format} & The Output format of the file \\
\hline
{\em working\+Dir} & The path to the directory in which is placed the Output file \\
\hline
{\em OFile\+Name} & The Output File Name ( ) \\
\hline
{\em compress} & Indicates if the Output will be compressed ( Pay Attention if compress flag is true, not compressed files will be deleted \mbox{[} \#48 \mbox{]} ) \\
\hline
{\em write\+Node\+Feat} & Indicates if export also \mbox{\hyperlink{classCXXGRAPH_1_1Node}{Node}} Features \\
\hline
{\em write\+Edge\+Weight} & Indicates if export also \mbox{\hyperlink{classCXXGRAPH_1_1Edge}{Edge}} Weights \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if all OK, else return a negative value 
\end{DoxyReturn}


Reimplemented from \mbox{\hyperlink{classCXXGRAPH_1_1Graph_a5a1ffeb9ef3b62b38c10bd84b44170a0}{CXXGRAPH\+::\+Graph$<$ T $>$}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/github/workspace/include/\+Graph/Graph\+\_\+\+TS.\+hpp\end{DoxyCompactItemize}
